apache Xdebug使PHP太慢

k4ymrczo  于 2023-02-16  发布在  Apache
关注(0)|答案(4)|浏览(168)

我知道Xdebug会让PHP变慢,但是在我的Ubuntu 16 PC上,只有在PhpStorm中启用了Xdebug时,它才会让PHP变慢,在其他情况下,速度是可以的。
但现在我正尝试在MacOS上安装Docker开发环境。
简单来说:我发现了一个基准测试脚本。当我在安装并启用Xdebug的情况下检查PHP速度时,执行它大约需要28-32秒。如果我在没有安装和配置Xdebug的情况下构建一个容器,脚本执行时间大约是0.8-1.1秒,这是30倍以上的速度!
有没有可能我配置的东西出错了,服务器一直发送“Xdebug response”?
我不知道这是怎么回事,但我相信不应该是这样的。
我正在使用Docker,Ubuntu 16.04容器,PHP 7.2,Xdebug v2.9.1,Apache。
下面是我的Xdebug设置:

zend_extension = "/usr/lib/php/20190902/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_port=9003
xdebug.remote_host=host.docker.internal
xdebug.idekey=PHP_STORM
xdebug.remote_connect_back=off
xdebug.profiler_enable = 0
xdebug.remote_autostart = 0
xdebug.remote_handler = "dbgp"
xdebug.remote_mode = req

还有一件事。我能够用这个Xdebug listening图标开始调试,当所有的指南都说我应该使用“添加配置”选项并添加Xdebug服务时。
你能告诉我我做错了什么吗?

1u4esq0p

1u4esq0p1#

我也遇到了同样的问题,我的配置有问题。
我通过远程网络地址(如192.168.xx.xx,10.10.xx.xx)而不是本地计算机地址(如www.example.com或localhost)连接到Web服务器127.0.0.1。
可能是我的Docker配置或其他设置中有一些路由问题。虽然我没有找到根本原因,但它解决了我的问题。
这工作了,我的调试变得很快。

hsvhsicv

hsvhsicv2#

我有同样的问题,直到我发现,在Chrome中的Xdebug扩展是造成这一点.如果它是禁用的加载时间是好的,如果它是启用一个页面重新加载往往需要超过60秒相比,5秒与Xdebug禁用.没有任何区别,如果Xdebug在PHPSorm或容器启用与否.

lqfhib0f

lqfhib0f3#

我使用docker-compose在两个php示例之间切换(一个有xdebug,另一个没有)
Apache容器根据XDEBUG_SESSION cookie值(默认为PHPSTORM)切换
下面是配置中有趣的部分

<If "%{HTTP_COOKIE} =~ /XDEBUG_SESSION=${XDEBUG_COOKIE_VALUE}/">
  SetHandler "proxy:fcgi://php_xdebug:9000"
</If>
<Else>
  SetHandler "proxy:fcgi://php:9000"
</Else>

Docker编写脚本
https://github.com/unlocomqx/conditional-xdebug-fpm-docker

bq8i3lrv

bq8i3lrv4#

在我的例子中,它是discover_client_host选项,当启用时,请求非常慢,我将其设置为xdebug.discover_client_host = false,请求变得快得多。

相关问题