我已将一些代码从开发转移到生产,但它无法运行,所以我试图调试,但就我而言,我无法访问错误来找出问题所在。
我已尝试在 Plesk 仪表板中设置error_reporting
、、、CodeIngniter 的引导程序以及我正在调用的函数,但仍然没有显示任何错误。display_errors
log_errors
php.ini
.htaccess
index.php
服务器是 VPS Red Hat/CentOS,使用 Apache 的 Plesk。网站基于 CodeIgniter 和 Doctrine 构建。
我是否遗漏了什么?
答案1
执行which
apache,对于 plesk apache,我猜测它位于 /usr/local/psa/
答案2
你基本上问错了问题。
正确的问题不是如何从 Apache 获取错误消息,而是如何从 CodeIgniter / PHP 获取错误消息。
我不知道 CodeIgniter,但类似的框架是这样工作的:它会检测它是在本地主机(开发)机器上运行还是在服务器(生产机器)上运行。如果它在开发机器上运行,它会启用错误报告,否则它会禁用它。因此它会覆盖您的设置(无论它在哪里(php.ini
等等.htaccess
)。
因此你应该检查如何在 CodeIgniter 中启用生产机器上的错误报告或者如何在 CodeIgniter 中的生产机器上手动将环境设置为“开发”反而。
例如检查StackOverflow 上的这个问题。确实有我所描述的内容。也许(暂时)将环境设置为“开发”就足够了。
解决问题后,不要忘记将其设置回“生产”!(或者不要忘记根据您要执行的操作禁用错误报告)
答案3
我弄清楚了问题所在。我设法在 Plesk 深处找到了更多日志,我不知道它们在文件系统的什么位置,但它们指出了进程超时。
Plesk 使用 Nginx 和 fastcgi,它超时并通过 Apache 抛出错误。我增加了 fastcgi 和 Nginx 的超时时间,这样错误就不会再出现了。
感谢大家的帮助。
答案4
重新启动 Apache 服务器并检查
/sbin/service httpd restart