さくらのレンタルーサーバで運用していたものをChonohaVPSに移管しようとしたらハマりまくったので、覚えていることをメモ。
コンポーザの入れ忘れ
プロジェクトフォルダだけ持っていってもLaravelは動かない。
開発は手元のローカル端末でやってGitにアップロードしたものをCloneするだけだから、サーバ側にはコンポーザはいらないかと勘違いしていた。
公開して閲覧できるようにするためにもコンポーザは必要なので、インストールする。
なんだかわからないけど500
500だからファイルはあるんだろうけど、ブラウザにはそれしか書いていないし、開発ツール開いても何もヒントがない。
付近のフォルダで、フレームワークのない単独のphpファイルが動いているのでlaravelの何かがおかしいと思うんだけどエラー内容がわからなくて途方にくれた。
最終的にはアパッチのエラーログをtail -fしてブラウザをリロードしたら問題のパスがログに出てきたので修正したら治った。
/var/log/httpd/ に ログがあるのでそれのどっかにあった。どれか忘れたけど、とにかく謎の500でハマったらこの辺のログを tail -f で監視するとヒントがあるかも。
アプリ名/public/index.php の中にララベルのpublic以外のフォルダへのパスが書いてあるのでそれを合わせる。
参考にしたページの通りに書いたのだが、ディレクトリ構成が自分と違ったのでパスがズレた。
その方の場合はpublicフォルダを公開フォルダの/var/www/html へ mv で移動して読めるようにするやり方だったのでindex.phpをいじる形になっていたけど、自分は ln -sで 公開フォルダからソフトリンクでパスをつなぐやり方にしたので、デフォルトのまま触ったらダメだった。
DBの設定が間違っている
ここで、見慣れたLaravelの綺麗なエラー画面になった。
whoops!とか出るやつ。
ここまできたら後一息って感じ。
.envの設定が間違っていた。
ホスト名にサーバのipアドレスを書いたけど、localhostが正しかった。
ただし私の場合はってだけで必ずしもそうではない。
私の場合、同じサーバにDBを構築しているので、そこのサーバ側から見るとlocalhostになるってことで、決して手元の操作端末という意味ではない。
phpMyAdminでDBを見ると接続しているホスト名が表示されているので、これに合わせると多分繋がるはず。
私の場合はここがlocalhostと表示されているのがヒントになって上記の対応をした。
トップページしか表示されない
紆余曲折してやっとトップページが表示できたと思ったら、今度はそこしか見れない。
/etc/httpd/conf を vi で開いて
/var/www/ と /var/www/html/
のところにある
AllowOverride None を AllowOverride All に変更する。
オーバーライドを許可するだから、多分 web.php でルーティングできるようにするって事かな?
あれが多分URLを上書きしているって事だろう。
これで動いた。
丸一日かかった・・