使用laravel sail该怎样debug?编辑器是vscode
我按照stackoverflow上的这个回答,在Dockerfile
文件添加了
ARG XDEBUG
ARG XDEBUG_PORT
RUN if [ "${XDEBUG}" = 'true' ]; then \
apt-get update \
&& apt-get install -y php-xdebug \
&& echo "[XDebug]" > /etc/php/8.0/cli/conf.d/php-ext-xdebug.ini \
&& echo "zend_extension = \"$(find /usr/lib/php/ -name xdebug.so | sort -z | head -n 1)\"" >> /etc/php/8.0/cli/conf.d/php-ext-xdebug.ini \
&& echo "xdebug.client_port = ${XDEBUG_PORT}" >> /etc/php/8.0/cli/conf.d/php-ext-xdebug.ini \
&& echo "xdebug.mode = debug" >> /etc/php/8.0/cli/conf.d/php-ext-xdebug.ini \
&& echo "xdebug.start_with_request = yes" >> /etc/php/8.0/cli/conf.d/php-ext-xdebug.ini \
&& echo "xdebug.client_host = host.docker.internal" >> /etc/php/8.0/cli/conf.d/php-ext-xdebug.ini \
&& apt-get -y autoremove \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* ;\
fi;
然后在docker-compose.yml
中添加了两个argsXDEBUG
和XDEBUG_PORT
version: '3'
services:
laravel.test:
build:
context: ./docker/8.0
dockerfile: Dockerfile
args:
WWWGROUP: '${WWWGROUP}'
XDEBUG: '${SAIL_XDEBUG:-false}'
XDEBUG_PORT: '${SAIL_XDEBUG_PORT:-9000}'
重新build之后Xdebug有了
sail php -v
Cannot load Xdebug - it was already loaded
PHP 8.0.5 (cli) (built: May 3 2021 11:30:57) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.5, Copyright (c) Zend Technologies
with Zend OPcache v8.0.5, Copyright (c), by Zend Technologies
with Xdebug v3.0.3, Copyright (c) 2002-2021, by Derick Rethans
但是在vscode里执行debug只有pause
、restart
、stop
这三个按钮,请问哪里有问题啊?
参考 这篇文章
问题解决了,不过不管是按照这篇文章还是开头stackoverflow里的那个回答那样配置,最后运行
sail php -v
都会提示我的解决方法是注释掉
php.ini
文件中的zend_extension = xdebug.so
,容器内的/etc/php/8.0/mods-available/xdebug.ini
里也有相同的语句,可能是两者重复加载了