在生产服务器上启用XDebug是否会使PHP变慢?
标题几乎说明了一切……这是一个坏主意吗?我想要XDebug在服务器上提供的增强调试消息。
[编辑]只是为了使事情变得清楚。我知道其中涉及安全风险。也许我应该补充我的问题,并给出为什么要这样做的更确切的原因。
我们的生产服务器还托管一个测试平台。有时,我们使用它来在尽可能接近生产的环境中测试事物。我要寻找的主要东西是使用XDebug的Enhanced
var_dump()
。
这不是用于高流量应用程序的应用程序服务器,性能也不是什么大问题。我只是好奇性能是否会受到XDebug的 影响。
此外,我想我只能为定义测试站点的VirtualHost启用它。
回答:
除了显而易见的事实,即调试消息无法在已经投入生产的应用程序中显示之外,还有我不知道为什么要这么做的事实,还有一些非常不好的事情。
第一个是,当您向服务器添加调试行为时,调试引擎会“附加”到PHP进程,并接收该引擎的消息以在断点处停止,这就是BAD,因为引入了对另一个进程的高性能打击停止或“保留”
PHP解析器。
另一个大问题是,当安装调试器时,至少大多数调试器都倾向于在服务器中打开端口,这是讨厌的习惯,因为它们不适合生产环境,并且您可能知道,任何打开的软件服务器中的端口为周围的所有黑客打开了一扇门。
如果您需要在代码中进行调试,则在您的应用程序中实施调试系统(如果不可用),因为大多数框架都内置了该系统。设置配置值,例如DEBUG_ENABLED;如果未启用则抛出异常,重定向到一个很小的页面,否则重定向到一个带有调试信息的丑陋页面,但是请注意您在服务器中显示的调试信息。我希望这可以澄清一切。
由于我的回复显然没有足够的文档记录,因此您应该检查这些来源
- PHP的XDebug跟踪生产中的开销
- 小心:XDebug可能会扭曲您的性能数字
最后,有一件事我没有说,因为我认为这是隐性的:不这样做是常识!您不会将调试工具放在生产服务器上的原因与将调试工具放在不同环境中的原因相同,因为您需要避免不必要的东西。在服务器上运行的任何进程,无论它多么轻,都会影响您的性能。
以上是 在生产服务器上启用XDebug是否会使PHP变慢? 的全部内容, 来源链接: utcz.com/qa/410889.html