2022/06/30
Ubuntu に Laravel をインストールするとルート以外のページが Not found となる現象が発生しました。
今回はこの原因と解決策についてエントリーしたいと思います。
【 500 エラーの場合】
storage と cache の書き込み権限を付与すると解決するケースが多いです。
storage と cache の書き込み権限を付与すると解決するケースが多いです。
原因
原因は2つあります。
1)Apacheの設定ファイル(AllowOverride All)
2)mod_rewrite を有効にする
解決策
1)Apacheの設定ファイル(AllowOverride All)
Ubuntu + Apache2 の構成はちょっと独特です。
設定ファイルの場所は以下になります。
/etc/apache2/apache2.conf
【 ポイント 】
Ubuntu のリポジトリから取得出来る Apache2 はオリジナルの Apache2 とはディレクトリの構成や設定の方法が違います。
Ubuntu のリポジトリから取得出来る Apache2 はオリジナルの Apache2 とはディレクトリの構成や設定の方法が違います。
それを以下のように変更。
上記のように AllowOverride の値が None になっていると .htaccess が効かずにルーティングができなくて Not Found になってしまいます。
AllowOverride を All に書き換えてやると、各ディレクトリにある .htaccess の上書きが効くようになります。
設定ファイルを書き換えたら Apache を再起動するのを忘れないようにしましょう。
2)mod_rewrite を有効にする
.htaccessファイルを有効化する上で mod_rewrite.so モジュールが必要です。
1.まずはmod_rewriteが利用可能となっているかを確認
上記のコマンドを打って以下が表示されればOK
使えることが確認できたら a2enmod というコマンドを実行します。
a2enmod はUbuntuで Apache2 のモジュールを有効にするコマンドです。
a2enmodを実行すると以下の様なメッセージが出てきます。
忘れずに restart しましょう。
以上です。

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。