概要
ローカルで作成したLaravelアプリを公開サーバーのサブディレクトリに設置して動かそうとしたところ、うまくいかずはまってしまいました。
ひとまず、動作するようになったため、設定内容を共有いたします。
サーバー環境
- centos 6.9
- nginx 1.10
- laravel 5.7
nginxに設定しているドキュメントルートは
/usr/share/nginx/html/
laravelアプリ配置先は
/usr/share/nginx/html/apps/kus/
アプリのURLは
https://www.mydomain.com/kus/
となります。
設定内容
いろいろな方の設定例をつぎはぎして作成したため、ベストプラクティスにはなりえないかと思いますが、ご了承ください。
設定ファイル名がkus.conf
となっていますが、kusはアプリの名前です。
下記設定ファイルはnginxの別設定ファイルからincludeされることを前提に記述されています。
nginx設定ファイルのlocationディレクティブ
が指定可能な箇所でincludeして下さい。
kus.conf
location /kus {
alias /usr/share/nginx/html/apps/kus/public;
try_files $uri $uri/ @nested;
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/apps/kus/public/index.php;
fastcgi_param PATHINFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED /usr/share/nginx/html/apps/kus/public/$fastcgi_path_info;
fastcgi_split_path_info ^(.+?.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
}
}
location @nested {
rewrite /kus/(.*)$ /kus/index.php?/$1 last;
}