[nginx]サブディレクトリでlaravelを動作させるために

laravel, nginx, PHP, インフラ, フレムワークlaravel, nginx

以前もnginxを使ってサブディレクトリでlaravelを動作させるということで記事を書きました。その時は、サブディレクトリ直下では動作していていたが、一つ下の階層になると適切に動作していなかったことが判明して、解決するためにしばらく時間がかかってしまっていました。

aliasとroot

これまでaliasを使っていましたが、rootに書き直しました。rootだとlocationに記述した内容とrootで指定したパスが連結される。
aliasだとaliasに指定したものがパスになるようです。

実際の記述


location ^~ /app {
    root /var/www/html/○○○/public;
index index.php index.html index.html;
    try_files $uri $uri/ /app/index.php?$query_string;
    location ~ \.php$ {
        fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index  index.php;
        include        fastcgi_params;
        fastcgi_param            SCRIPT_FILENAME /var/www/html/○○○/public/index.php;
        fastcgi_param            PATHINFO        $fastcgi_path_info;

    }
location /app/css/ {
        alias /var/www/html/○○○/public/css/;
    }
    location /app/js/ {
        alias /var/www/html/○○○/public/js/;
    }
    location /app/images/ {
        alias /var/www/html/○○○/public/images/;
    }
}
ひとまず動いたので、安心。しかし、記述が汚く、不要な箇所とかもたくさんありそうですので、開発が落ち着き次第改善をしたいと思います。