コンテナ仮想化ソフト「Docker」(laradock)を使って、その上で「nginx」を動かし、「Laravel」によるアプリケーション開発をしています。
Laravelアプリを複数開発する際、「laradock」の「.env」の「APP_CODE_PATH_HOST」をアプリ先に書き換え、nginxを再起動してましたが、面倒なので複数のポート(8888ポートを追加)にて運用する事にしました。
目次
Dockerの設定変更
「laradock」にある「docker-compose.yml」の設定を変更します。
「nginx」の設定項目があるので、「– “8888:8888”」を追記します。
### NGINX Server #########################################
⌇
<中略>
⌇
ports:
- "${NGINX_HOST_HTTP_PORT}:80"
- "8888:8888"
- "${NGINX_HOST_HTTPS_PORT}:443"
- "${VARNISH_BACKEND_PORT}:81"
nginxの設定変更
「laradock」にある「nginx」のconfを変更します。
まずは「laradock/nginx/sites/default.conf」にあるroot設定を変更します。
コメントアウト:#root /var/www/public;
追記:root /var/www/Laravel-appA/public;
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name localhost;
#root /var/www/public;
root /var/www/Laravel-appA/public;
index index.php index.html index.htm;
今度は 「laradock/nginx/sites/」 に新しいく追加するサイト設定を作成します。
基本的には「default.conf」の設定をコピーして、ポート番号を8888、rootをLaravelアプリBにします。
server {
listen 8888;
listen [::]:8888 ipv6only=on;
server_name localhost;
root /var/www/Laravel-appB/public;
index index.php index.html index.htm;
nginxのイメージを再起動する事で、ブラウザからアプリ毎アクセスが可能です。
■LaravelアプリA
http://localhost/
■LaravelアプリB
http://localhost:8888/