
コンニチハ
パンに塗り塗りジャム太郎です!
今回のテーマは
「LaravelとApache環境でのドキュメントルート設定方法」
についてです。
1.はじめに
Laravel を Apache で動かすとき、よく出てくる疑問が「ドキュメントルートはどこにすればいいの?」という点。この記事では、Laravelプロジェクトの public
ディレクトリを正しく Apache に設定する方法をシンプルに解説します。※バージョンはLaravel10をベースにしております!
2.Laravelの構成をざっくり確認
Laravel をインストールすると、以下のようなディレクトリ構成になります:
home
├──mantap
├──mantap/
├── app/
├── bootstrap/
├── config/
├── public/ ← ここ
├── resources/
├── routes/
└── ...
public/
の中にindex.php
や.htaccess
があり、ここが Apache の「公開入り口」となります。
3.Apacheのドキュメントルート設定
●VirtualHostを使う場合
Apache の設定ファイル(例:/etc/httpd/conf/httpd.conf
など)を開いて、以下のように書きます。
<VirtualHost *:80>
ServerName example.com
DocumentRoot /home/mantap/mantap/app/public
<Directory /home/mantap/mantap/app/public>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
DocumentRoot
→ Laravelのpublic/
を指定<Directory>
→AllowOverride All
で.htaccess
を有効に
VirtualHostを使わないデメリット:
項目 | 内容 |
---|---|
複数サイト管理 | 難しい(1つのApache設定で1つのドメイン) |
ドメインごとの設定 | できない(ServerNameなどが使えない) |
CI/CDや本番移行 | 拡張性が乏しい |
今回はVirtualHostを使ったやり方ですが、Apache の全体設定でDocumentRootを直接設定することも可能です。開発する環境に合わせてやりやすい方で進めてください。
4.Apacheを再起動
設定を反映させるには Apache を再起動します。
# Ubuntu/Debian 系
sudo systemctl restart apache2
# CentOS/RHEL 系
sudo systemctl restart httpd
5.動作確認
ブラウザで http://example.com
にアクセスし、Laravel のトップページが表示されれば成功です。
※URLは環境や設定に合わせて各自調整してください
6.まとめ
- Laravel のドキュメントルートは必ず
public/
を指定 .htaccess
を有効にするためにAllowOverride All
を忘れずに- VirtualHost を使うと複数アプリの管理も便利
では、また次の記事で〜