【问题标题】:Laravel blank white screen - Centos 7, NGINX and PHP7.1Laravel 空白白屏 - Centos 7、NGINX 和 PHP7.1
【发布时间】:2018-07-05 06:40:41
【问题描述】:

我在 Eclipse 中使用 PDT 开发了一个 Laravel 应用程序。一切都在我的开发机器上完美运行。我已经部署到运行 PHP 7.1、套接字模式下的 PHP-FPM 和 NGINX 的 Centos 7 服务器,我得到的只是一个空白的白色屏幕。如果我只使用 phpinfo() 脚本设置另一个虚拟 NGINX 站点,那么它可以工作,所以我知道 PHP 工作正常。

我已经研究了我能找到的所有答案,并尝试了所有与存储目录和引导/缓存目录等权限相关的常见方法。

没有任何内容写入 storage/logs 目录,NGINX 日志或 PHP-FPM 日志中也没有错误。没有任何迹象表明发生了什么,我现在不知道如何继续找到错误的根源

如果我使用以下方式启动服务器:

php artisan serve 

然后应用程序运行没有任何问题!

我可以使用哪些其他调试/跟踪方法来查找问题的根源?

谢谢

【问题讨论】:

  • 白屏死机:错误检查\显示已关闭,打开它们以查看错误。在您的 php 页面顶部添加:ini_set('display_errors', 'On'); ini_set('html_errors', 0); error_reporting(-1);
  • 你应该添加所有“常用的东西”,这样没有人会再次建议它。
  • 谢谢@commonsense - 我在这里提出的第一个问题,欢迎任何关于构建它以获得更好响应的建议。

标签: php laravel nginx laravel-5


【解决方案1】:

对于以后遇到这个问题的人,经过一番摸索,我终于解决了我的问题。

问题在于我对虚拟主机的 NGINX 配置。我使用了Laravel Deployment guide 中给出的示例配置(根据我的本地配置进行了调整)。与PHP文件相关的部分显示为:

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
}

我决定按照我找到的on howtoforge 教程尝试安装基本安装。这非常有效,我可以看到该过程与我的虚拟主机之间的唯一区别是与 PHP 文件相关的部分。一旦我更改了虚拟主机以匹配教程,我的应用程序立即工作。更新的部分是:

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

这两个配置之间的唯一区别是添加了以下行:

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

这让所有与众不同

查看 NGINX 站点,我在 PHP Fast CGI 页面上找到了这个注释(我的服务器是 CentOS 7:

SCRIPT_FILENAME 参数是必需的,因为它被传递给 PHP FPM 以确定脚本名称。

在许多 Linux 发行版的 NGINX 构建中,该参数已添加到 fastcgi_params 文件中,即 /etc/nginx/fastcgi_params 以便用户可以通过 include 指令导入所有 CGI 参数,即包含 fastcgi_params 。 但对于某些发行版,例如 CentOS,fastcgi_params 文件中不存在此参数。

如果不设置此参数,PHP FPM 会以空内容响应 200 OK,并且不会出现错误或警告。有关 CGI 参数的更多信息,请参阅 nginx 初学者指南、PHP 中的 $_SERVER 和 RFC3875。

希望这对将来的其他人有所帮助。

【讨论】:

  • 救了我的命。老兄
  • 这个 anwser 对 laravel 5.7 仍然有效(它仍然有效,并且官方文档没有显示它。嘿@Steve H.,也许在laravel 停靠以更新文档。或者也许下一个来到这里并让这个 SO anwser 进行正确更改的人
  • 非常感谢,对我来说也是同样的问题
猜你喜欢
  • 2016-07-05
  • 2018-03-05
  • 1970-01-01
  • 2017-07-20
  • 2021-09-14
  • 1970-01-01
  • 2021-07-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多