Я не мог найти на это ответа. Установлен PHP5 + NGINX + PHP-FPM, и он не может запускать файлы php, появляется сообщение «Упс! Эта ссылка не работает». ошибка в ХРОМЕ. У меня нет какого-либо ценного отчета об ошибках, у меня есть index.php в корне, я пытался создать собственный файл phpinfo.php, но ничего не вышло.
Я могу загружать файлы HTML, но не могу загружать PHP.
Вот конфигурация моего локального сайта в NGINX:
server {
listen 80;
server_name im;
access_log /var/www/website/access.log;
error_log /var/www/website/error.log;
location / {
root /var/www/website;
index index.html index.htm index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/website$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
Сменил владельца всего каталога на www-data: www-data, сделал 777 в файле php, ничего. Перезапустил nginx, FPM, ничего.
Помогите? :(
он получает сообщение «Упс! Эта ссылка не работает». ошибка в ХРОМЕ.
Chrome показывает собственную страницу ошибки, если размер страницы ошибки меньше 512 байт.
Я подозреваю, что у вас есть следующая строка в fastcgi_params
:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
и если так, потому что root
директива определена в location /
никогда не будет применяться к location ~ \.php$
, Таким образом SCRIPT_FILENAME
становится URI.
Это можно решить, переместив root
директива к server
контекст уровня:
server {
listen 80;
server_name im;
access_log /var/www/website/access.log;
error_log /var/www/website/error.log;
root /var/www/website;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
В моем случае отсутствовал пакет php-zip. Чтобы исправить это, я запустил:
yum install -y php-zip
systemctl restart php-fpm nginx
fastcgi_pass unix:/var/run/php5-fpm.sock;