Я знаю, что это популярный вопрос, но я не нашел никого с моей похожей проблемой. Я могу обслуживать файлы PHP, если расширение .php отсутствует в URL. Например:
Если я иду в, localhost
мне подают мой файл index.php. Если я иду в localhost/index.php
я скачать файл. Вот мой конфиг:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.php index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
# Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
#location /RequestDenied {
# proxy_pass http://127.0.0.1:8080;
#}
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
Я довольно смущен этой проблемой, и мне интересно, есть ли у кого-то опыт в этом вопросе.
php.ini
?Ответы:
Если это иногда работает (так что вы знаете, что PHP-FPM работает и работает), я был бы вполне уверен, что это проблема nginx. Я подозреваю пару правил в вашем блоке локаций PHP. Они могут ломаться в определенных URL, вызывая сброс nginx.
Вам нужно всего 2 строки для отлова каталогов:
Уберите это место обратно, перезагрузите nginx и посмотрите, что получится.
Если вам нужно переписать (красивые URL в Wordpress и т. Д.), Вы хотите добавить что-то вроде этого
Но делайте это только тогда, когда у вас работают стандартные URL.
источник
Если бы у меня была такая же проблема, мне также понадобилась эта строка
У меня тоже было
и должен был убедиться, что это пошло после местоположения
~ \.php$ {..}
источник
include fastcgi.conf;
, почти то же самое,include fastcgi_params;
но дополнительно включает в себя то,fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
что некоторые пользователи включают,include fastcgi_params;
а не.conf
включают вручную в конфигурацию своих сайтов.