Laravel + Apache:ドキュメントルートの設定方法(シンプル解説)

コンニチハ

パンに塗り塗りジャム太郎です!

今回のテーマは

「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 を使うと複数アプリの管理も便利

では、また次の記事で〜

投稿者 パンに塗り塗りジャム太郎

コンニチハ! Z世代のパンに塗り塗りジャム太郎です。 Web系自社開発企業でポンコツエンジニアをしております。 このブログでは最低1人にでもタメになってくれたらいいなぁ〜ぐらいの内容を発信しています。 お手柔らかによろしくお願いいたします。