除了显而易见的事实,即调试消息无法在已经投入生产的应用程序中显示之外,还有我不知道为什么要这么做的事实,还有一些非常不好的事情。
第一个是,当您向服务器添加调试行为时,调试引擎会“附加”到PHP进程,并接收该引擎的消息以在断点处停止,这就是BAD,因为引入了对另一个进程的高性能打击停止或“保留”
PHP解析器。
另一个大问题是,当安装调试器时,至少大多数调试器都倾向于在服务器中打开端口,这是讨厌的习惯,因为它们不适合生产环境,并且您可能知道,任何打开的软件服务器中的端口为周围的所有黑客打开了一扇门。
如果您需要在代码中进行调试,则在您的应用程序中实施调试系统(如果不可用),因为大多数框架都内置了该系统。设置配置值,例如DEBUG_ENABLED;如果未启用则抛出异常,重定向到一个很小的页面,否则重定向到一个带有调试信息的丑陋页面,但是请注意您在服务器中显示的调试信息。我希望这可以澄清一切。
编辑 由于我的回复显然没有足够的文档记录,因此您应该检查这些来源
- PHP的XDebug跟踪生产中的开销
- 小心:XDebug可能会扭曲您的性能数字
最后,有一件事我没有说,因为我认为这是隐性的:不这样做是常识!您不会将调试工具放在生产服务器上的原因与将调试工具放在不同环境中的原因相同,因为您需要避免不必要的东西。在服务器上运行的任何进程,无论它多么轻,都会影响您的性能。



