laradock の 公式ドキュメントでは、nginxを起動するサンプルコードが多いですが、laradock には apache を使う仕組みも用意されています。
操作手順
面倒なトラブルを防ぐため、まずは起動しているサービスがあれば、 down させましょう
docker-compose down
ホストOS側の laradock/apache2/sites
フォルダに、以下のlocalhost.conf
ファイルを新しく作成します。
laradock/apache2/sites/localhost.conf
<VirtualHost *:80>
ServerName localhost
DocumentRoot /var/www/public/
Options Indexes FollowSymLinks
<Directory "/var/www/public/">
AllowOverride All
<IfVersion < 2.4>
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
</Directory>
</VirtualHost>
次に、以下のコマンドで localhost.conf ファイルを Dockerイメージに記録します。
docker-compose build apache2
これで準備は完了です。
nginxの時と同じ要領でコンテナを起動しますが、nginx
サービスではなく apache2
サービスを指定します
docker-compose up -d apache2 mysql
もっと詳しく
laradock では nginx と apache2 の初期設定に違いがあります。
laradock の nginx の初期設定
laradock の nginx の初期設定 には、http://localhost でアクセスした場合に、コンテナ内のOS の /var/www/public
フォルダを公開させる記述があります。
https://github.com/laradock/laradock/blob/master/nginx/sites/default.conf#L13
laradock の apache2 の初期設定
一方、 laradock の apache2 では、http://localhost でアクセスした場合は、コンテナ内のOSの /var/www
フォルダを公開する設定となっています。
これを、 nginx と同様に /var/www/public フォルダを公開するように修正すれば、 nginx を利用していた時と同じ使い勝手で laravel を開発できます。
/laradock/apache2/sites フォルダ
laradock/apache2/sites/
フォルダには sample.conf.example
というファイルが用意されています。
https://github.com/laradock/laradock/blob/master/apache2/sites/sample.conf.example
このファイルをコピーして、新しく localhost.conf
というファイルを追加し、以下の3つのディレクトリを書き換えました。
- ServerName
- DocumentRoot
- Directory
なお、localhost.conf というファイル名でなくても動作はしますが、ファイル名の末尾は、.confで終わる必要があります。
laradock では、 ホスト OS側の laradock/apache2/sites/
フォルダの中に、*.conf ファイルを保存すると、apacheによって認識されるように設定されているようです。