Nginx + php-fpm file not found почему?

Установил nginx + php-fpm, настроил файл для nginx и создал в нем правило для перенаправления на index.php:
upstream php-handler {
         server unix:/run/php/php7.0-fpm.sock;
        }

server{
        listen  80;
        server_name  education.clouder.xyz;
        root   /var/www/education/;
        index index.php;

        location / {
                try_files $uri $uri/ =404;
                rewrite ^(.+)$ /index.php?url=$1;

        }

        location ~ \.php(?:$|/) {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param PATH_INFO $fastcgi_path_info;
                fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
                fastcgi_pass php-handler;
                fastcgi_intercept_errors on;
        }
}


Когда в браузере пытаюсь открыть любой файл php (например education.clouder.xyz/index2.php), отличный от index.php то выдает ошибку file not found. Все остальное отлично перенаправляется на index.php. Почему так? В чем ошибка?
  • Вопрос задан
  • 11423 просмотра
Пригласить эксперта
Ответы на вопрос 2
denistu10
@denistu10
Linux System Administrator/SRE Engineer
Уберите апстрим
и в location пропишите
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
Перезапустите nginx и проверьте
Ответ написан
@ipdesign
UI/UX ДИЗАЙНЕР
Попробуйте так:

server{
        listen  80;
        server_name  education.clouder.xyz;
        root   /var/www/education/;
        index index.php;

        location / {
                try_files $uri $uri/ =404;
                rewrite ^(.+)$ /index.php?url=$1;

        }

        location ~ \.php(?:$|/) {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass  127.0.0.1:9000; # listen for a port
                include  /etc/nginx/fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param PATH_INFO $fastcgi_path_info;
                fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
                fastcgi_pass php-handler;
                fastcgi_intercept_errors on;
        }
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы