首页 > 解决方案 > 为什么 nginx 在访问“index.php”文件时显示“找不到文件”消息?

问题描述

我在网上遇到了许多类似的问题,但没有一个解决方案有效。诚然,我对内部工作的理解是有限的,但我知道我当前的 nginx 配置已经工作了几个月,直到昨晚。

server {
    index index.html index.php;
    server_name XXX.xxx;
    root /var/www/ZZZ/;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~\.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.3-fpm.sock;
    }
    
    ...

}

fastcgi-php.conf 包含以下内容:

# regex to split $uri to $fastcgi_script_name and $fastcgi_path
fastcgi_split_path_info ^(.+?\.php)(/.*)$;

# Check that the PHP script exists before passing it
try_files $fastcgi_script_name =404;

# Bypass the fact that try_files resets $fastcgi_path_info
# see: http://trac.nginx.org/nginx/ticket/321
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;

fastcgi_index index.php;
include fastcgi.conf;

标签: phpnginxfpm

解决方案


推荐阅读