[再インストールメモ1]-Laravel Homestead + phpMyAdmin 環境構築
0 から 1 へ Laravel 開発環境の構築と phpMyAdmin GUI を使った MySql データベース管理

最近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';
$cfg['Servers'][$i]['password'] = 'secret';
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/ にアクセスして、正常に開けるか確認してください。

成功しました!データベースを操作する必要がある箇所は、ここに直接アクセスして変更すればOKです。
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のバージョンが更新されると、ハッシュチェックコードも変わります。

composer -V を入力してバージョンとインストールの成功を確認してください!

参考資料
Post は ZMediumToMarkdown によって Medium から変換されました。



コメント