有StackOverflow上多個問題如何使用不同的FastCGI後端或類似的問題,但沒有子正在正確的 - 和嘗試,閱讀文檔(也許缺少了一個小細節小時後)我放棄了。的nginx服務器
我有以下要求:
- 上
/
一個PHP 5.6的應用程序運行(FastCGI的後端127.0.0.1:9000
) - 上
/crm
一個PHP 7.0應用程序正在運行的有相信這是對/
運行(FastCGI的後端127.0.0.1:9001
) - 事實上有幾個後端,但有了這兩個我可以讓我自己的
我試圖定義位置前綴的第一個單獨的PHP環境中,試圖刪除/crm
前綴之前。但看來我是每次使用的/
php的情況下做一些錯誤的,因爲/crm
。
我的實際精簡配置,刪除一切不相關的所有失敗的測試:
server {
listen 80;
server_name myapp.localdev;
location /crm {
root /var/www/crm/public;
index index.php;
try_files $uri /index.php$is_args$args;
location ~ \.php$ {
# todo: strip /crm from REQUEST_URI
fastcgi_pass 127.0.0.1:9001; # 9001 = PHP 7.0
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
location/{
root /var/www/intranet;
index index.php;
try_files $uri /index.php$is_args$args;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000; # 9000 = PHP 5.6
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
這不是你想要的答案 - 但我寫了一個類似的問題[這裏](http://serverfault.com/questions/766222/nginx-reverse-proxy-making-root-webapp-into-custom-路徑/ 766225#766225) –
感謝您的評論,但它不是同一個問題。您的第三個問題,這是唯一無法解決的問題,可以通過使用crm應用程序的html基本標記輕鬆解決。 –
你有幾個';'缺少,並且你的一個'try_files'的默認動作是錯誤的。這是問題嗎?那'/ crm'要去'/ index.php'而不是'/ crm/index.php'? –