Laravelで構築したサイトをUbuntu20+Apache2環境にデプロイする際に色々と時間がかかったので今後のためにメモしておきます。
今回の環境はこちらです。
Ubuntu
$ cat /etc/issue
Ubuntu 20.04.5 LTS \n \l
Apache
$ apachectl -v
Server version: Apache/2.4.41 (Ubuntu)
Server built: 2022-06-14T13:30:55
Apache2のドキュメントルート変更
修正する2つのファイル
/etc/apache2/apache2.conf
/etc/apache2/sites-available/000-default.conf
/etc/apache2/apache2.conf
/etc/apache2/sites-available/000-default.conf
$ sudo vi /etc/apache2/apache2.conf
下記を追加します。
Laravelをインストールしたパスを記載します。
AllowoverrideをAllにしてインストールしたLaravelのpublicフォルダにある.htaccessを許可します。
<Directory /home/ユーザ名/アプリ名/public/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
$ sudo vi /etc/apache2/sites-available/000-default.conf
ドキュメントルートに先ほどと同じくLaravelをインストールしたパスを記載します。
<VirtualHost *:80>
:
:
:
DocumentRoot /home/ユーザ名/アプリ名/public
:
:
</VirtualHost>
mod_rewrite有効化
今までの設定でブラウザでサイトにアクセスしてみると404エラーになってしまいました。
原因はmod_rewriteが有効になっていなかったからでした。
デフォルトでは有効になっていないことに気付くのに時間がかかりました。
$ sudo a2enmod rewrite
Apache2を再起動します。
$ sudo systemctl restart apache2