Nginx + PHP:当我尝试在包含的文件中调用函数时,脚本死了

Posted

技术标签:

【中文标题】Nginx + PHP:当我尝试在包含的文件中调用函数时,脚本死了【英文标题】:Nginx + PHP: When I try to call a function in an included file the script dies 【发布时间】:2014-08-04 07:13:58 【问题描述】:

我有一个安装了 nginx 而不是 Apache 的新服务器。在该服务器上,我有一个 functions.php 脚本,其中包含我的代码中常见的 PHP 函数列表。我的代码如下所示:

<?php
ini_set('error_reporting', E_ALL);
echo "1";
include_once('../functions.php');
echo "2";
echo getHelloWorld(); // this is found in functions.php, simply returns "hello world"
echo "3";

但是,当我在浏览器上点击该页面时,打印的都是12,这表明两件事:

    脚本在尝试调用 getHelloWorld() 和时死了 错误报告似乎什么也没做

我尝试了各种不同类型的错误报告,但均未成功(如在此处找到:http://www.php.net//manual/en/function.error-reporting.php),并且我还(多次)确认getHelloWorld() 函数拼写正确、无错误等.

我对 Nginx 很陌生,所以如果有人能给我任何关于可能发生的事情的线索,我将不胜感激。谢谢!

【问题讨论】:

您应该检查错误日志或尝试直接在脚本中显示错误:ini_set('display_errors',1); 老实说,我认为这是 ini_set('error_reporting', E_ALL); 应该做的。这就是我凌晨 2 点编码所得到的... 不,您只是设置错误报告的级别/记录的内容,但“标准”错误报告是针对错误日志,而不是针对屏幕。 如果您想提交它作为答案,我会接受。它引导我解决了这个问题(导入文件中的简单错字),现在解决了其他问题!谢谢! 【参考方案1】:

使用ini_set('error_reporting', E_ALL);,您可以设置错误报告的级别/记录的内容。

如果你想在你的脚本中显示错误,你需要设置:

ini_set('display_errors',1);

否则错误将仅记录到错误日志中(通常...)。

【讨论】:

以上是关于Nginx + PHP:当我尝试在包含的文件中调用函数时,脚本死了的主要内容,如果未能解决你的问题,请参考以下文章

从数据库中提取id后包含PHP文件名

nginx 位置包含字符串 + 以结尾

PHP - 函数[重复]

在cpanel中调用php文件

尝试在具有代理缓存的 nginx 服务器中添加另一个位置指令

nginx 和 PHP GeoIP 模块的内部错误 500