有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'? –