【发布时间】:2016-04-04 01:10:33
【问题描述】:
我最近在我的服务器上安装了 Nginx 1.8 和 PHP7,试图让它为我的应用程序服务。
当我将我的 webroot 文件夹索引文件设为 HTML 文件并返回 Hey 时,我可以看到加载了该文本的页面。
但是,当我尝试将 index.html 文件替换为 index.php 文件时,我只看到一个空白页,并且没有发生错误。
我试图查看/var/log/nginx/access.log 和/var/log/nginx/error.log 以及我的站点错误日志:/var/log/nginx/my-website-error.log。在那里找不到任何错误。
我尝试查看在/var/log/php7.0-fpm.log 找到的 PHP7.0-FPM 错误日志,但那里也没有。
我确保编辑了我的/etc/php/7.0/fpm/php.ini 文件并设置了display_erorrs = On 和error_reporting=E_ALL。
我仍然看不到任何错误,也无法执行任何 PHP 代码。
将 php 执行传递给 FPM 的我的 Nginx 配置文件如下所示:
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
知道发生了什么吗?
【问题讨论】:
-
index.php的内容是什么?
-
@MaxP。嘿。我已经尝试了几件事。我尝试了
phpinfo()一个,然后只是一个普通的echo "hey";。我也尝试过使用框架 Laravel,我得到了相同的空白页。就好像 .php 文件只是被忽略或没有正确传递给 FPM。 -
尝试添加
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; -
@MaxP。我将在一个小时后到家,并且能够对其进行测试。但是,我应该把它放在哪里?在包含参数文件之前?另外,是什么让您认为它会解决问题?我什至不知道 FPM 对那个参数做了什么
-
是的,在包含 params 文件之前。这个参数定义了 php 应该执行的脚本。我还将您的配置与我的(php5)进行了比较,发现了这种差异。