この前Laravel6をインストールする環境づくりを一先ず終えて、Laravel6をインストールしてトップ画面が出ることは確認できました。
そうなれば次は先方からもらったソースコードをこの環境に入れて動かすことが次の課題。
さっそくソースコードをXAMPPの公開ディレクトリに入れ、composerコマンドで必要なファイルを生成します。
php composer update
次にデータベースを準備。phpMyAdminでこのLaravel6用のデータベース、ユーザー、パスワードを一先ず適当に作り準備。
.envというドット頭のファイルをテキストエディタで開き、データベース関連のところにphpMyAdminで作ったアカウント情報を入力します。本来はMySQLのポート番号は3306だけど、サブXAMPPに入れたためにカスタムした番号に変更します。
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3307
DB_DATABASE=laravel
DB_USERNAME=hogehoge
DB_PASSWORD=hokuhoku
次に、config / database.php をテキストエディタで開き、こちらもデータベース関連の情報を入力します。
'mysql' => [
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3307'), // サブXAMPPのMySQLポート番号(本来は3306)
'database' => env('DB_DATABASE', 'laravel),
'username' => env('DB_USERNAME', 'hogehoge'),
'password' => env('DB_PASSWORD', 'hokuhoku'),
これでartisan serveとコマンド入力して簡易サーバーを立ち上げ、localhost:8000を見に行ってみると・・・
500エラー
真っ白じゃなくLaravel6側で用意されている500エラーが表示しているという事は一先ずは簡易サーバーは動くまではきた。
もしかすると.envをいじったら反映させるための何かが必要なのかな?と思い、artisan migrate というコマンドを入力してみた。
SQLSTATE[HY000] [2002] 対象のコンピューターによって拒否されたため、接続できませんでした。
(SQL: select * from information_schema.tables where table_schema = bbmvjmd and table_name = migrations and table_type = 'BASE TABLE')
なるほど、MySQLに接続できていないというエラーが原因だったわけですね。先ほどの設定では接続できなかったのか。
何が悪いのか設定情報を確認しても良く分かりませんでしたが、ネットで調べると.env側で設定間違えるとおきる症状とのこと。
.env.sample を見てみると
DB_HOST=127.0.0.1
おぅ・・・
.env のDB_HOSTを書き換え、artisan migrate を入力すると、なんと設定通過!
その後は簡易サーバー立ち上げるコマンド入力し起動させ、ブラウザで確認すると表示しました!