为什么Vagrant和Xdebug的汇编不适用于最新版本的PHP



我有流浪者+nginx+PHP+xdebug的工作程序集。PHP版本是7.0时一切都还可以,但当我将PHP升级到7.2或7.4时,Xdebug停止工作。Xdebug安装了最新版本(3.0.1(。

流浪文件(部分(:

sudo add-apt-repository -y ppa:ondrej/php
sudo add-apt-repository -y ppa:ondrej/nginx
sudo apt-get update
sudo apt-get install -y nginx
sudo apt-get install -y php7.0-fpm php7.0-xdebug
sudo service php7.0-fpm stop
sudo cp /vagrant/.provision/xdebug.ini /etc/php/7.0/mods-available/xdebug.ini
sudo service php7.0-fpm start
sudo service nginx start
sudo cp /vagrant/.provision/project.local /etc/nginx/sites-available/project.local
sudo chmod 644 /etc/nginx/sites-available/project.local
sudo ln -s /etc/nginx/sites-available/project.local /etc/nginx/sites-enabled/project.local
sudo service nginx restart

Nginx配置:

server {
listen 80;
index index.php;
server_name project.local www.project.local;
root /var/www/project.local;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location / {
index index.php;
try_files $uri $uri/ /index.php;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}

Xdebug配置:

zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_connect_back=1
xdebug.remote_host=192.168.33.11
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_cookie_expire_time = 36000
xdebug.remote_log=/var/www/project.local/.xdebug/xdebug.log
xdebug.idekey=vagrant

这些配置在php7.0-fpm上工作,但在php7.2-fpm或php7.4-fpm上不工作。问题出在哪里?

Xdebug安装了最新版本(3.0.1(。

您使用的是Xdebug v3,但继续使用Xdebug v2配置参数。您需要阅读《从Xdebug 2升级到3指南》并调整您的设置(主要是更改参数名称(。

Xdebug v3使用与Xdebug v2不同的配置参数。从我所看到的10";xdebug"当前php.ini中的params在Xdebugv3中不执行任何操作(如果您检查phpinfo()输出的Xdebug部分,就会看到(。

对于Xdebug 3,它应该是这样的(基于您的原始配置(:

zend_extension=xdebug.so
xdebug.mode = debug
xdebug.start_with_request = yes
xdebug.discover_client_host = true
xdebug.client_host = 192.168.33.11
xdebug.client_port = 9001
xdebug.log = /var/www/project.local/.xdebug/xdebug.log
xdebug.idekey = vagrant

最新更新