【问题标题】:Can't load any PHP file or see any error in the logs using nginx and php7使用 nginx 和 php7 无法加载任何 PHP 文件或在日志中看到任何错误
【发布时间】: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 = Onerror_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)进行了比较,发现了这种差异。

标签: php ubuntu nginx server


【解决方案1】:

尝试在包含参数文件之前添加fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;。这个参数定义了php应该执行的脚本。

【讨论】:

    猜你喜欢
    • 2019-02-11
    • 2017-08-27
    • 2019-01-24
    • 1970-01-01
    • 2022-01-04
    • 2022-10-08
    • 1970-01-01
    • 2016-11-15
    • 1970-01-01
    相关资源
    最近更新 更多