一部のPHP URLがNginxによって実行される代わりにダウンロードされています。私は正常に機能している既存のWebアプリケーションを持っています。私は、プライマリアプリケーションのフォルダ内に追加のマウントされたアプリケーションを追加することが任されています。これらのアプリケーションのそれぞれには、独自のフロントコントローラindex.php
スクリプトがあります。実行中ではなくダウンロードとしてPHP URLを提供するnginx
この設定では、$document_root/app
の中にシンボリックリンクを作成しました。シンボリックリンクは、index.php
フロントコントローラを含むフォルダを指しています。
ほとんどのURLに移動すると、すべて正常に動作し、プライマリアプリケーションのフロントコントローラが実行され、予期した結果が得られます。存在しないアプリに移動すると、nginxから404 Not Found
が得られます。しかし、アプリケーションの1つに移動すると、ブラウザはアプリケーションフロントコントローラをダウンロードします。
root /my/web/root;
location/{
try_files $uri
/$server_name$uri
/shared$uri
/index.php$is_args$args;
}
location ~ [^/]\.php(/|$) {
disable_symlinks off;
fastcgi_split_path_info ^(.+\.php\b)(.*)$;
fastcgi_param SERVER_NAME $host;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME /index.php;
fastcgi_index index.php;
include fastcgi.conf;
fastcgi_pass php-fpm;
}
location ~ ^/app/([a-z-]+)(/.*)?$ {
try_files $uri
/app/$1/index.php$is_args$args
=404;
}
ダウンロードをトリガするURL:/app/my-app/
(存在)404エラー
URL:/app/foo/
(存在しない)を実行
URL:/foo
phpの場所を[location〜[^ /] \。php(/ | $) ' –
に設定しようとしました。同じ結果.... –