【发布时间】:2018-01-05 00:28:23
【问题描述】:
当我开始我的最新项目时,我学会了如何使用 xdebug 扩展,从那时起我就一直在使用它。现在我已准备好启动服务器并使用该项目投入生产,但我的网站无法完全正常工作。前端页面似乎也可以工作,它们也是基于 php 的,但是查询数据库并向前端返回一些数据的后端端点总是返回 500 状态代码。所以我附上了 xdebug 并弄清楚如何远程运行它,并且页面都开始工作而无需任何代码更改。我进入 php.ini 文件并将其关闭,页面继续工作。由于这是一台 AWS EC2 服务器,我删除了该实例并创建了一个新实例,该实例运行我为安装所有软件而编写的相同初始化脚本,但我遇到了完全相同的问题。在我按照 xdebug 安装说明重新启动 apache2 之前,服务器无法工作。和以前一样,即使我通过 php.ini 文件取消附加 xdebug 扩展,代码仍然可以工作。即使在系统重新启动后,它仍然可以继续工作,因此任何正在修复的东西似乎都是永久性的。
构建和附加 xdebug 扩展并重新启动 Apache2 会对 LAMP 堆栈执行哪些操作以使我的代码工作,即使在扩展已关闭后也是如此?我的服务器是用运行各种 apt-get install 命令的脚本构建的,而我没有提供任何二进制文件,因为它们都是社区提供的程序。就像发条一样,每次我重建机器时它都会中断,直到我应用扩展。如果必须的话,我可以将它自动化到我的构建脚本中,但这让我有点发疯,我不明白发生了什么。
【问题讨论】:
-
查看错误日志。在 Ubuntu 上,默认情况下它位于
/var/log/apache2/error.log,您需要 root 才能访问它。您可以运行如下命令:sudo tail -f /var/log/apache2/error.log将其打开并保持打开状态以进行监控。然后重新加载出现错误的页面几次,看看会出现什么。我想如下所示,您正在调用一些没有扩展名就不存在的内部 xdebug 函数。或者安装了 xdebug 时,它会覆盖一些 php.ini 错误值,并且错误总是发生,你只是看不到它。 -
谢谢,这对这个问题和未来的问题非常有用,我敢肯定。我需要更好地了解 Linux 服务器上可用的日志。
标签: php apache ubuntu-16.04 xdebug php-7