Назад | Перейти на главную страницу

NGINX не выполняет файлы PHP

Я не мог найти на это ответа. Установлен 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;