python — FastCGI, отправленный в stderr: «Основной сценарий неизвестен» — Nginx и Silex

Я получаю эту ошибку на сервере, где я развернул проект Silex.

На этом сервере nginx уже передавал запросы от / к приложению Flask, работающему в порту 5000.

Итак, после вытащить новый проект из моего хранилища в /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/;
}

}

2

Решение

Итак, мне удалось решить мою проблему после этого Конфигурация сайта для подпапки Nginx

Теперь мой конфиг:

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 и журнала ошибок.

4

Другие решения

не забудьте проверить user: group на nginx && PHP-FPM

Сообщение об ошибке будет таким же, если php-fpm все еще работает с пользователем «apache» и вы уже переключили пользователя «nginx» на nginx и в каталог http!

и перезагрузите и то и другое

2

По вопросам рекламы [email protected]