nginx 1.10でサブディレクトリ毎に別々のphpを動かしたい
Ubuntu 14.04 LTSのnginx(1.4.6)で以下のようなlocationのネストを行ったコンフィグで運用していたのですが、Ubuntu 16.04 LTS(nginx 1.10.0)に更新した所、fastcgi_passをphp7.0-fpm用に差し替えてもうまく動かなくなってしまいました。
動かない原因はSCRIPT_NAME
へ/monitorがついたままSCRIPT_FILENAME
のパスが作られているためという所まではわかったのですが、fastcgi_split_path_info
を^/monitor(.+\.php)(/.+)$
のように設定してもSCRIPT_NAME
の値が変化せず正しいパスを取得させることができません。
できればシンボリックリンクを使わずnginx側だけでうまく設定したいのですが良い知恵はありますでしょうか。
location /monitor { # cacti用
alias /usr/share/cacti/site;
index index.php;
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
include fastcgi.conf;
}
}
location /phpmyadmin { # LAN内専用phpmyadmin
alias /usr/share/phpmyadmin/;
index index.php;
# もろもろ省略
}