お世話になっております。
LaravelをNginxのサブディレクトリで動かしたいのですが、うまくいきません。
やりたいこと
ドメイン直下のサブディレクトリ"admin"でhttp://localhost:19080/admin のようにしてLaravelを動かしたい
環境
Laravelのソースは以下に配置。Laravelプロジェクトはcomposer create-project ~
で自動生成されたものそのまま。
/var/www/html/admin/ `-- my-laravel-app |-- app |-- public ...(略)...
※ Docker for Windows で nginxとphp-fpmの2コンテナを作って連携
※ nginxのポート設定は、コンテナ側が80番、ホスト側は19080番で接続
サブディレクトリではなく http://localhost:19080 で表示するようにNginxの設定をした場合は、意図通りLaravelのトップ画面が表示されたので、Nginxの設定が間違っていると思ってます。
Nginxの設定
前提として、/etc/nginx/nginx.conf はデフォルトのままで include /etc/nginx/conf.d/*.conf;
でサーバ設定を読み込む形にしてあります。
# /etc/nginx/conf.d/default.conf; server { listen 80; server_name localhost; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; index index.php; location ^~ /admin { root /var/www/html/admin/my-laravel-app/public; try_files $uri /admin/index.php?$query_string; location ~* .php$ { fastcgi_split_path_info ^(.+.php)(/.+)$; fastcgi_pass phpapp:9000; # phpappはphp-fpmコンテナの名称 fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME /var/www/html/admin/my-laravel-app/public/index.php; fastcgi_param PATH_INFO $fastcgi_path_info; } } }
現状の動作
URL | 結果 |
---|---|
http://localhost:19080/admin | Laravelのnot found画面が表示される |
http://localhost:19080/admin/ | http://localhost/adminにリダイレクトされる(19080番ポートしか接続できないので「このサイトにアクセスできません」エラー |
http://localhost:19080/admin/index.php | Laravelトップが表示される |
http://localhost:19080/admin でlaravelが表示されるようにしたいのですが、どこを見直したらよいのか分かりません。。
アドバイスいただけますとありがたいです。よろしくお願いいたします。
あなたの回答
tips
プレビュー