我找不到答案。安装了 PHP5 + NGINX + PHP-FPM 并且无法执行 php 文件,它在 CHROME 中出现“哎呀!此链接似乎已损坏。”错误。我没有任何有价值的错误日志报告,我在根目录中有一个 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,在 php 文件上设置 777,没有任何效果。重新启动 nginx、FPM,没有任何效果。
帮助? :(
答案1
在 CHROME 中会出现“哎呀!此链接似乎已损坏。”错误。
如果错误页面小于 512 字节,Chrome 将显示其自己的错误页面。
我怀疑您有以下几行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;
}
}
答案2
在我的例子中,缺少 php-zip 包。为了解决这个问题,我运行了:
yum install -y php-zip
systemctl restart php-fpm nginx