Php 代码仅在使用Xdebug扩展时有效
当我开始我的最新项目时,我学会了如何使用xdebug扩展,从那时起我就一直在使用它。现在,我准备启动一台服务器,并开始生产这个项目,但我的网站不能完全正常工作。前端页面似乎工作正常,也基于php,但是查询数据库并向前端返回一些数据的后端端点总是返回500状态代码。因此,我附加了xdebug,并找出了如何远程运行它,所有页面都可以在不更改任何代码的情况下开始工作。我进入php.ini文件并将其关闭,页面继续工作。由于这是一个AWS EC2服务器,我删除了该实例并创建了一个新的实例,该实例运行的初始化脚本与我为安装所有软件而编写的脚本相同,因此我遇到了完全相同的问题。在我按照xdebug安装说明重新启动apache2之前,服务器无法工作。和以前一样,即使我通过php.ini文件取消连接xdebug扩展,代码仍能继续工作。即使在系统重新启动后,它仍能继续工作,因此任何正在修复的东西都是永久性的Php 代码仅在使用Xdebug扩展时有效,php,apache,ubuntu-16.04,xdebug,php-7,Php,Apache,Ubuntu 16.04,Xdebug,Php 7,当我开始我的最新项目时,我学会了如何使用xdebug扩展,从那时起我就一直在使用它。现在,我准备启动一台服务器,并开始生产这个项目,但我的网站不能完全正常工作。前端页面似乎工作正常,也基于php,但是查询数据库并向前端返回一些数据的后端端点总是返回500状态代码。因此,我附加了xdebug,并找出了如何远程运行它,所有页面都可以在不更改任何代码的情况下开始工作。我进入php.ini文件并将其关闭,页面继续工作。由于这是一个AWS EC2服务器,我删除了该实例并创建了一个新的实例,该实例运行的初始
构建和连接xdebug扩展,并重新启动Apache2,会对一个LAMP堆栈做些什么,使我的代码能够工作,即使在关闭扩展后也是如此?我的服务器是用运行各种apt-get-install命令的脚本构建的,没有我提供的二进制文件,因为它都是社区提供的程序。就像时钟一样,每次我重新组装机器时,它都会断开,直到我应用扩展。如果必须的话,我可以在我的构建脚本中自动执行这些操作,但我不明白发生了什么,这让我有点发疯。我建议您尝试在代码中查找任何特定于xdebug的函数的调用,例如
var\u dump()
或任何前缀为xdebug
:
我建议您尝试在代码中查找任何xdebug特定函数的调用,例如
var\u dump()
或任何前缀为xdebug
:
当服务器发送500错误时,通常会在php_error.log中获得一个条目。所以首先检查这个文件。可能在内存限制、最大post变量等方面存在一些差异。当服务器发送500个错误时,通常会在php_error.log中获得一个条目。所以首先检查这个文件。可能在内存限制、最大post变量等方面存在一些差异 构建和连接xdebug扩展,并重新启动Apache2,会对一个LAMP堆栈做些什么,使我的代码能够工作,即使在关闭扩展后也是如此 安装一个软件可以带来另一个。如果您
sudo apt安装php xdebug
而未安装php,它将安装php
构建和连接xdebug扩展,并重新启动Apache2,会对一个LAMP堆栈做些什么,使我的代码能够工作,即使在关闭扩展后也是如此
安装一个软件可以带来另一个。如果您
sudo apt安装php xdebug
而未安装php,它将安装php。var\u dump
是php的标准函数。但除此之外,我同意。代码中任何地方都没有对xdebug的引用,但值得一试。感谢var\u dump
是一个PHP标准函数。但除此之外,我同意。代码中任何地方都没有对xdebug的引用,但值得一试。感谢您查看错误日志。在Ubuntu上,它默认位于/var/log/apache2/error.log
,您需要root用户才能访问它。您可以运行如下命令:sudotail-f/var/log/apache2/error.log
将其打开并保持打开状态以进行监视。然后重新加载带有错误的页面几次,看看会出现什么。我猜您正在调用一些没有扩展就不存在的内部xdebug函数。或者安装了xdebug后,它会覆盖一些php.ini值以产生错误,错误总是发生在你看不到的地方。谢谢,这对解决这个问题和我确信的未来问题非常有用。我需要更好地了解Linux服务器上有哪些日志可用。请查看错误日志。在Ubuntu上,它默认位于/var/log/apache2/error.log
,您需要root用户才能访问它。您可以运行如下命令:sudotail-f/var/log/apache2/error.log
将其打开并保持打开状态以进行监视。然后重新加载带有错误的页面几次,看看会出现什么。我猜您正在调用一些没有扩展就不存在的内部xdebug函数。或者安装了xdebug后,它会覆盖一些php.ini值以产生错误,错误总是发生在你看不到的地方。谢谢,这对解决这个问题和我确信的未来问题非常有用。我需要更好地理解Linux服务器上有哪些日志可用。这听起来是个好主意。我将拆除计算机并构建另一台计算机并尝试此操作。我无法找到此特定日志,也无法在ini文件中找到对它的引用,因为默认情况下,它必须指定设置。根据@jonathan kuhn的评论建议,我从/var/log/apache2/error.log中获得了必要的信息。这听起来是个好主意。我将拆除计算机并构建另一台计算机并尝试此操作。我无法找到此特定日志,也无法在ini文件中找到对它的引用,因为默认情况下,它必须指定设置。根据@jonathan kuhn评论建议,我从/var/log/apache2/error.log中获得了必要的信息。这就是我的想法。我只是按照xdebug的说明将phpinfo页面文本粘贴到他们网站上的安装配置工具中。它实际上涉及下载tarball并编译源代码,而不是通过包管理器安装包。但是我不知道make文件中发生了什么。其他人的建议查看日志发现了问题,但是您的建议