ZhgChg.Li

Laravel Homestead|phpMyAdminでMySQL管理を簡単構築 — 開発環境を0からセットアップ

Laravel開発者向けにHomesteadとphpMyAdminを使ったMySQL環境構築法を解説。GUI操作でデータベース管理が効率化し、開発スピードを大幅アップします。

Laravel Homestead|phpMyAdminでMySQL管理を簡単構築 — 開発環境を0からセットアップ
本記事は AI による翻訳です。お気づきの点があればお知らせください。

[再インストールメモ1] - Laravel Homestead + phpMyAdmin 環境構築

0から1へ Laravel開発環境を構築し、phpMyAdmin GUIでMySqlデータベースを管理する

Laravel

Laravel

最近Macをリセットしたので、Laravel開発環境を再構築した手順を記録します。

環境要件

  • Vagrant :仮想環境構築ツール

  • VirtualBox :無料の仮想マシンソフトウェアです。すでにParallelsを購入している場合は、Parallelsを直接使用できます(ただし、プラグインのインストールが必要です)。

ダウンロードとインストールが完了したら、次の設定に進みます。

VirtualBoxのインストール時に再起動が必要で、「設定」->「セキュリティとプライバシー」->「VirtualBoxを許可」を有効にして、すべてのサービスを起動する必要があります。

Homestead 環境の設定

git clone https://github.com/laravel/homestead.git ~/Homestead
cd ~/Homestead
git checkout release
bash init.sh

phpMyAdmin

phpMyAdminはPHPをベースにした、Web上で動作するMySQLデータベース管理ツールで、管理者はWebインターフェースを使ってMySQLデータベースを管理できます。このインターフェースにより、複雑なSQL文の入力が簡単になり、特に大量データのインポート・エクスポートが便利です。 — Wiki

  • [phpMyAdmin

phpMyAdmin](https://www.phpmyadmin.net/){:target=”_blank”} の公式サイトから最新バージョンをダウンロードしてください。

解凍 .zip -> フォルダ -> フォルダ名の変更 -> 「phpMyAdmin」:

phpMyAdmin フォルダを ~/Homestead フォルダに移動する:

phpMyAdmin 設定

phpMyAdmin フォルダ内の config.sample.inc.php を見つけて、config.inc.php に名前を変更し、エディタで開いて以下の設定に変更してください。

<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
 * phpMyAdminのサンプル設定です。手動設定のベースとして使用できます。
 * より簡単に設定するにはsetup/を使用してください。
 *
 * すべてのディレクティブはdoc/フォルダ内のドキュメント
 * または<https://docs.phpmyadmin.net/>で説明されています。
 *
 * @package PhpMyAdmin
 */
declare(strict_types=1);

/**
 * クッキー認証でパスワードを暗号化するために必要です。
 * 32文字である必要があります。
 */
$cfg['blowfish_secret'] = ''; /* クッキー認証のために必ず入力してください! */

/**
 * サーバー設定
 */
$i = 0;

/**
 * 最初のサーバー
 */
$i++;
/* 認証タイプ */
$cfg['Servers'][$i]['auth_type'] = 'config';
/* サーバーのパラメータ */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['user'] = 'homestead';
$cfg['Servers'][$i]['password'] = 'secret';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;

/**
 * phpMyAdminの設定ストレージ設定。
 */

/* ストレージ操作に使用するユーザー */
// $cfg['Servers'][$i]['controlhost'] = '';
// $cfg['Servers'][$i]['controlport'] = '';
// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';

/* ストレージ用データベースとテーブル */
// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
// $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
// $cfg['Servers'][$i]['relation'] = 'pma__relation';
// $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
// $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
// $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
// $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
// $cfg['Servers'][$i]['history'] = 'pma__history';
// $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
// $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
// $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
// $cfg['Servers'][$i]['recent'] = 'pma__recent';
// $cfg['Servers'][$i]['favorite'] = 'pma__favorite';
// $cfg['Servers'][$i]['users'] = 'pma__users';
// $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
// $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
// $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
// $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
// $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
// $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

/**
 * サーバー設定の終了
 */

/**
 * サーバーからのファイルの保存/読み込み用ディレクトリ
 */
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';

/**
 * テーブル行の操作セグメントでアイコン、テキスト、またはその両方を表示するかどうか。
 * 値は 'icons', 'text', 'both' のいずれか。
 * デフォルト = 'both'
 */
//$cfg['RowActionType'] = 'icons';

/**
 * ブラウズモードで「すべて表示(レコード)」ボタンを表示するかどうか。
 * デフォルト = false
 */
//$cfg['ShowAll'] = true;

/**
 * 結果セットをブラウズするときに表示する行数。
 * 結果セットにそれ以上の行がある場合、「前へ」と「次へ」が表示される。
 * 指定可能な値: 25, 50, 100, 250, 500
 * デフォルト = 25
 */
//$cfg['MaxRows'] = 50;

/**
 * バイナリフィールドの編集を禁止する設定
 * 有効な値は以下の通り:
 *   false    編集を許可
 *   'blob'   BLOBフィールドを除き編集を許可
 *   'noblob' BLOBフィールドを除き編集禁止
 *   'all'    編集禁止
 * デフォルト = 'blob'
 */
//$cfg['ProtectBinary'] = false;

/**
 * ブラウザやユーザーで定義されていない場合のデフォルト言語
 * (localeフォルダ内にすべての言語があります)
 * 使用したい行のコメントを外してください:
 * デフォルト = 'en'
 */
//$cfg['DefaultLang'] = 'en';
//$cfg['DefaultLang'] = 'de';

/**
 * データベースのテーブル表示に使用する列数
 * (1より大きい値は一部情報が隠れることがあります)
 * デフォルト = 1
 */
//$cfg['PropertiesNumColumns'] = 2;

/**
 * DBベースのクエリ履歴を使用する場合はtrueに設定。
 * falseの場合はJSルーチンでクエリ履歴を表示(ウィンドウを閉じると消失)
 *
 * これには設定ストレージの有効化が必要、上記参照。
 * デフォルト = false
 */
//$cfg['QueryHistoryDB'] = true;

/**
 * DBベースのクエリ履歴で保持するエントリ数
 * デフォルト = 25
 */
//$cfg['QueryHistoryMax'] = 100;

/**
 * JavaScriptエラー発生時にphpMyAdminチームへエラー報告を送信する前に
 * ユーザーに確認するかどうか
 *
 * 選択肢
 * ('ask' \\| 'always' \\| 'never')
 * デフォルト = 'ask'
 */
//$cfg['SendErrorReports'] = 'always';

/**
 * その他の設定オプションは
 * doc/フォルダ内のドキュメントまたは<https://docs.phpmyadmin.net/>で確認できます。
 */

主に以下の3つの設定を追加・変更します:

$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'homestead';

homestead のデフォルトMySQLユーザー名とパスワードは homestead / secret です。

Homesteadの設定配置

エディタで ~/Homestead/Homestead.yaml 設定ファイルを開きます。

---
ip: "192.168.10.10"
memory: 2048
cpus: 2
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: ~/Projects/Web
      to: /home/vagrant/code
    - map: ~/Homestead/phpMyAdmin
      to: /home/vagrant/phpMyAdmin

sites:
    - map: phpMyAdmin.test
      to: /home/vagrant/phpMyAdmin

databases:
    - homestead

features:
    - mysql: false
    - mariadb: false
    - postgresql: false
    - ohmyzsh: false
    - webdriver: false

#services:
#    - enabled:
#        - "postgresql@12-main"
#    - disabled:
#        - "postgresql@11-main"

# ports:
#     - send: 50000
#       to: 5000
#     - send: 7777
#       to: 777
#       protocol: udp
  • IP : デフォルトは 192.168.10.10 で、変更してもそのままでも問題ありません。

  • provider :デフォルトは virtualbox です。Parallelsを使用する場合のみ変更してください。

  • folders: に以下を追加
    • map: ~/Homestead/phpMyAdmin
      to: /home/vagrant/phpMyAdmin
  • sites: に以下を追加
    • map: phpMyAdmin.test
      to: /home/vagrant/phpMyAdmin

既にLaravelプロジェクトがある場合も、ここに追加できます。例えば、私のプロジェクトはすべて ~/Projects/Web にあるので、先にディレクトリマッピングを追加しました。

sites はローカルの仮想ドメインとディレクトリのマッピングを設定しますが、ローカルの Hosts ファイルを編集してドメインと仮想マシンのマッピングも追加する必要があります:

Finder -> 移動 -> /etc/hosts を開き、hosts ファイルを見つける;直接編集できないためデスクトップにコピーする

ドメイン名は自由に設定でき、自分のローカルマシンからのみアクセス可能です。

コピーした Hosts ファイルを開き、sites の記録を追加します:

<homestead IP アドレス> <ドメイン名>

修正したら保存し、その後コピーして /etc/hosts に貼り付けて上書きしてください。

Homestead バーチャルマシンのインストール&起動

cd ~/Homestead
vagrant up --provision

⚠️ご注意ください --provision オプションを付けないと設定ファイルが更新されず、URLにアクセスすると no input file specified エラーが表示されます。

初回起動時は、Homestead環境パッケージのダウンロードが必要で、時間がかかります。

特別なエラーが表示されなければ起動成功です。以下を実行してください:

vagrant ssh

sshで仮想マシンに接続します。

phpMyAdminが正しく接続されているか確認する

http://phpmyadmin.test/ にアクセスして、正常に開けるか確認してください。

成功!データベースを操作する必要がある場合は、ここで直接変更してください。

新しい Laravel プロジェクトの作成

既存のプロジェクトがある場合は、この段階でブラウザからローカルで動作確認ができます。もしない場合は、ここで新しい Laravel プロジェクトの作成方法を補足します。

~/Homestead
vagrant ssh

vagrant ssh でVMに入り、codeディレクトリに移動します:

cd ./code

下 laravel new プロジェクト名 を実行し、Laravelプロジェクトを作成します:(例として blog)

laravel new blog

blog プロジェクトの作成に成功しました!

次にプロジェクトの設定でローカルマシンからテスト用ドメインにアクセスできるようにします:

改めて ~/Homestead/Homestead.yaml 設定ファイルを開きます。

sites に新しいレコードを追加します:

sites:
  - map: myblog.test
  to: /home/vagrant/code/blog/public

hostsにも対応する記録を追加することを忘れないでください:

192.168.10.10.   myblog.test

最後に homestead を再起動します:

vagrant reload --provision

ブラウザに http://myblog.test を入力して、正しく構築&動作しているかテストします:

完了!

補足 — MacでのComposerインストール

Homesteadを使えばComposerを別途インストールする必要はありませんが、PHPプロジェクトの中にはLaravelを使わないものもあるため、ローカル環境にComposerをインストールしておく必要があります。

ダウンロードセクションのコマンドをコピーし、php composer-setup.php を以下に置き換えてください:

php composer-setup.php - install-dir=/usr/local/bin - filename=composer

Composer v2.0.9 の例:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'インストーラーが確認されました'; } else { echo 'インストーラーが破損しています'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
php -r "unlink('composer-setup.php');"

そして順番にターミナルでコマンドを入力します。

⚠️ご注意ください 上記の例をそのままコピーして使用しないでください。Composerのバージョンが更新されると、hashチェックコードも変わるためです。

composer -V を入力してバージョンとインストールの成功を確認しましょう!

参考資料

PostZMediumToMarkdown によって Medium から変換されました。

GitHub で編集
この記事を改善
本記事は Medium で初公開
オリジナルを読む
この記事をシェア
リンクをコピー · SNS でシェア
ZhgChgLi
著者

ZhgChgLi

An iOS, web, and automation developer from Taiwan 🇹🇼 who also loves sharing, traveling, and writing.

コメント