gpt4 book ai didi

python - FastCGI 在 stderr : "Primary script unknown" - nginx and silex 中发送

转载 作者:行者123 更新时间:2023-11-28 21:18:20 25 4
gpt4 key购买 nike

我在部署了 Silex 项目的服务器上遇到此错误。

在这个服务器中,我已经让 nginx 将请求从 / 传递到在端口 5000 上运行的 Flask 应用程序。

因此,在将新项目从我的存储库拉到 /var/www/newproject 之后,我试图配置 nginx,以便向 http://xxx.xxx.xxx 发出请求。 xxx/newproject 将根目录到 /var/www/newproject 这是一个 silex 应用程序。

我在网上搜索过,发现的所有配置都不能解决我的问题。访问任意路由,返回404。

我的整个配置是这样的:

server {
listen 80;
server_name xxx.xxx.xxx.xxx;

access_log /var/log/myproject/nginx_access.log;
error_log /var/log/myproject/nginx_error.log;

proxy_connect_timeout 300s;
proxy_read_timeout 300s;

location /newproject {
root /var/www;
try_files $uri $uri/ =404;
index index.php;
fastcgi_pass unix:/var/run/php5-fpm.sock;
#fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/newproject/index.php;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
#fastcgi_param SCRIPT_FILENAME /var/www/newproject$fastcgi_script_name;
include fastcgi_params;
}

location / {
root /opt/myproject;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://xxx.xxx.xxx.xxx:5000;
break;
}
}
}

我在这里错过了什么?

谢谢。

更新:

尝试了一个新的配置(如下所示)并且现在正在访问 http://xxx.xxx.xxx.xxx/newproject/SOME_PATH我有一个 404。

open() "/var/www/newproject/SOME_PATH" failed (20: Not a directory)
open() "/var/www/newproject/index.php/SOME_PATH" failed (20: Not a directory)

location /newproject {
root /var/www/;
index index.php index.html index.htm;
location ~ ^/newproject/(.+\.php)$ {
try_files $uri =404;
root /var/www/;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param HTTPS off;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include /etc/nginx/fastcgi_params;
}
location ~* ^/newproject/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /var/www/;
}

}

最佳答案

所以,我已经设法解决了这个 Site Configuration for Nginx Sub-Folder 之后的问题

现在我的配置是:

server {
listen 80;
server_name xxx.xxx.xxx.xxx;

root /opt/myproject;

access_log /var/log/myproject/nginx_access.log;
error_log /var/log/myproject/nginx_error.log;

proxy_connect_timeout 300s;
proxy_read_timeout 300s;

location /newproject {
root /var/www;
index index.php index.html index.htm;
rewrite ^/newproject/(.*)$ /newproject/$1 break;
try_files $uri $uri/ /newproject/index.php?q=$uri&$args;

location ~ .*\.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}

location / {
root /opt/myproject/;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://xxx.xxx.xxxx.xxx:5000;
break;
}
}
}

由于 newproject 依赖于 myproject,我将它们的配置保存在同一个文件以及相同的 nginx 访问和错误日​​志文件中。

关于python - FastCGI 在 stderr : "Primary script unknown" - nginx and silex 中发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26722482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com