Laravel HomesteadにphpMyAdminをインストールし、環境を作成したので、忘れないようにメモとして記録します。
環境
- OS : windows11 pro
- VirtualBox (5.2.44)
- vagrant (2.2.5)
- laravel(v9.3.7)
- PHP(v8.1.8)
- MySQL(v8.0)
phpMyAdminをローカル環境に設置
phpMyAdmin公式から自身の環境にあったものをインストール。
2022年9月21日現在の情報は以下
PHP 7.2 以降および MySQL/MariaDB 5.5 以降:phpMyAdmin5.2.0
PHP 5.5 から 7.4 および MySQL/MariaDB 5.5 以降:phpMyAdmin4.9.10
phpMyAdminをダウンロード後、解凍し、ローカル上のHomesteadファルダ内のcodeファルダの中に解凍したphpMyAdminファルダを格納する。
Homestead.yamlファイルにデータベース情報を記載
sitesに下記のようにphpmyadminの情報を追記
sites:
- map: phpmyadmin.localhost → 任意の名前で可
to: /home/vagrant/code/phpMyAdmin → phpMyAdminは任意の名前で可
sites: Homesteadのサーバーアプリで公開するサイト
map: プロジェクトを表示させるためのブラウザに入力するURL
to: 仮想環境上でのプロジェクトが表示されるパス
hostsに設定を追加する
C:\Windows\System32\drivers\etc\hostsを
管理者権限としてファイルを開き、下記の内容を追記。
192.168.10.10 phpmyadmin.localhost
仮想環境上にphpMyAdminを反映
CLIにて、ローカル上のプロジェクトの場所へ移動する。
1.vagrant up
を実行し、vagrantを起動
2.Homestead.yamlのファイル設定変更を反映を下記のコマンドを実行
$ vagrant reload –provision
※ vagrant provision(設定反映) と vagrant reload(再起動)を同時に行うコマンド
3.Vagrant sshにて、仮想環境に接続する
4.Homestead.yamlのsites toで設定した場所に、phpMyAdminが入っていることを確認できる
to: /home/vagrant/code/
上記のcodeファルダ内に、設定したphpMyAdminがあればOK。
ブラウザを起動し、URLを入力
Homestead.yamlで下記の設定したものに、ポート(8000)を入力
sites:
- map: phpmyadmin.localhost
Laravelの.envファイルで設定したDB_USERNAMEとDB_PASSWORDを入力し、ログインするとphpMyAdmin内に入ることができる。
仮想環境内のプロジェクトフォルダへ移動し、マイグレーション(php artisan migrate
)を実行
テーブルが作成される。
DB作成の注意点
MySQL接続情報
Homesteadでは、初期ユーザーとして、下記のデータベースが作成されている。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
MySQLを変更
変更前に、phpMyAdmin内で、DB_USERNAMEは作成しておくこと。
作成していなければ、マイグレーション実行時、下記のようなエラーが発生する
SQLSTATE[HY000] [1045] Access denied for user '(ユーザ名)'@'localhost' (using password: YES)
変更後のデータを下記のように修正し、マイグレーションを行うとDBが更新される。
.env
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=Homestead →任意のDB名
DB_USERNAME=(任意のユーザ名)
DB_PASSWORD=(任意のパスワード)
Homestead.yaml
databases:
- Homestead →任意のDB名
※ Homestead.yamlのdatabasesと.envのDB_DATABASEは、必ず同じDB名にする
全部ロールバックして、マイグレーションし直したいときのコマンド
$ php artisan migrate:refresh