【问题标题】:Code only works if I use the Xdebug extension仅当我使用 Xdebug 扩展时,代码才有效
【发布时间】: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


【解决方案1】:

我建议您尝试在代码中查找任何 xdebug 特定函数的调用,例如 var_dump() 或任何以 xdebug_ 为前缀的函数: https://xdebug.org/docs/all_functions

【讨论】:

  • var_dump 是 PHP 标准函数。 Ref。但否则我同意。
  • 在代码中的任何地方都没有对 xdebug 的引用,但值得一试。谢谢
【解决方案2】:

当服务器发送 500 错误时,通常您会收到 php_error.log 的条目。所以首先检查这个文件。也许内存限制存在一些差异,最大值。发布变量等。

【讨论】:

  • 这听起来是个好主意。打算拆掉这台机器,再造一台,试试这个。
  • 我找不到这个特定的日志,也无法在 ini 文件中找到对它的引用,因为默认情况下它必须指定设置。根据@jonathan-kuhn 的评论建议,我从 /var/log/apache2/error.log 中获得了必要的信息。
【解决方案3】:

构建和附加 xdebug 扩展并重新启动 Apache2 会对 LAMP 堆栈执行什么操作,以使我的代码工作,即使在扩展已关闭后也是如此?

安装一个软件可以带来另一个。如果你sudo apt install php-xdebug没有安装php,它会安装php。

【讨论】:

  • 这就是我的想法。我只是按照他们提供的 xdebug 说明将您的 phpinfo 页面文本粘贴到他们网站上的安装配置工具中。它实际上涉及下载 tarball 和编译源代码,而不是通过包管理器安装包。但我不知道 make 文件中发生了什么。
  • 其他人查看日志的建议发现了问题,但您的建议是安装一件东西可能会带来必要的依赖关系。我的代码依赖于 SimpleXMLElement,当您安装 PHP 时,它显然没有在 Ubuntu 16.04 中默认安装(通过 php7.0-xml)。
猜你喜欢
  • 2022-11-16
  • 2020-10-18
  • 2010-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多