我有一个非常常见但令人讨厌的错误,经典的:“找不到文件”。我有以下 nginx.conf :
server {
listen 80;
server_name aperophp;
root /home/gline/mysite/web;
location = / {
try_files @site @site;
}
location / {
try_files $uri $uri/ @site;
}
location ~ \.php$ {
return 404;
}
location @site {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_param PATH_INFO $fastcgi_script_name;
}
}
但我有这个文件:
$ ls -ld /home/gline/mysite/web/index.php
-rw------- 1 gline gline 66 Jan 5 13:25 /home/gline/mysite/web/index.php
如果你有什么想法。
感谢您的帮助,提前致谢。
PHP 进程无法读取您的文件。
您可以看到脚本的权限仅允许用户
gline
读取(或写入)文件,但 PHP 默认情况下在不同的用户 ID(例如nobody
或www-data
)下运行。要解决此问题,请使文件全局可读。您可能还需要使包含目录及其父目录可搜索。
你应该检查 php-fpm 是否可以读取这个 php 文件,检查你是否有
在关于池的 php-fpm conf 文件中。
这个会议中发生了很多奇怪的事情。
它返回 404,因为你告诉它。以 .php 结尾的任何内容都将匹配该
location ~ \.php$
块。另外,为什么你有两个
/
位置块?很难从 conf 文件中判断你想要实现什么,但这是一个非常标准的 nginx/php conf: