技术解析

nginx+php7.0 提示 File not found.还有可能是哪里的问题?
0
2021-05-20 19:29:06
idczone

转移了三个 WP 到新的服务器,另外两个都没事,有个网站访问提示 File not found.搜了一圈,感觉我的配置也没啥问题啊,想问下出现这种情况还有可能是哪里的问题?

  1 
  2 server {
  3   listen 80;
  4   server_name www.abc.com abc.com;
  5   root /srv/www/abc.com/public_html;
  6   access_log /var/log/www/abc.com.access.log;
  7   error_log /var/log/www/abc.com.error.log;
  8   location / {
  9     index index.php index.html index.htm;
 10     if (-f $request_filename) {
 11       expires 30d;
 12       break;
 13     }
 14     if (!-e $request_filename) {
 15       rewrite ^(.+)$ /index.php?q=$1 last;
 16     }
 17   }
 18   location /nginx-status {
 19      stub_status on;
 20      access_log  off;
 21   }
 22   lo抗投诉服务器cation ~ \.php$ {
 23     fastcgi_pass unix:/var/run/php/php7.0-fpm.abc.com.sock;
 24     fastcgi_index  index.php;
 25     fastcgi_param  SCRIPT_FILENAME    /srv/www/abc.com/public_html$fastcgi_script_na    me;
 26     fastcgi_param PATH_INFO               $fastcgi_script_name;
 27     include fastcgi_params;
 28   }
 29 }
~      

两个点.
1. 确认 php sock 文件路径是否存在
2. 去掉 PATH_INFO 看看! 应该是这个引起的
试试?

查看了, sock 文件存在, PATH-INFO 删除了也不行。 同一批有三个 WP ,其他两个都没问题,就这个网站出现了这个邪门的问题...

同样遇到这种问题 不知道原因
service 启动 php-fpm 就会出现
直接 php-fpm -D 运行 一切正常了


strace -p 看一下到底访问的哪个文件就知道错误是什么了

你这个应该是 selinux 的问题之类,看一下 selinux troubleshooter 的提示吧

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name

$document_root$ 这个要改成自己的路径才行啊。

啊 谢谢

为啥我输入 strace 直接提示成 _strace 了... 然后我 install strace 之后
strace -p 3051
Process 3051 attached
accept(0,
变成这样,啥信息都没有?

你前面设置了  root 这里直接$document_root

反正可以试一试。。错了没关系。。我之前也碰到 file not found 搜索下很多都这么说。。
如果还不行 注意文件目录读取权限。。。

哎妈...终于搞定了...马大哈,创建网站根目录的时候,少了域名后缀,一直没发现...

file not found 都是没有找到入口脚本文件而报的错误。所以要去找路径问题

fastcgi_param SCRIPT_FILENAME /srv/www/abc.com/public_html$fastcgi_script_na me;
是你复制问题吗,为什么后面的 name 分开了 na me

哦,这个仅仅是复制过来的问题。

xiao zong 说的都对

这个时候你得请求一下你那个页面啊

php 配置文件里的 include_path 设置问题?

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服