> Xdebug具有具有陡峭的设置学习曲线的历史。我在这里向您展示,设置Xdebug并不一定要痛苦。实际上,我相信您可以在大约一分钟内开始使用Xdebug与Docker。
好吧,也许您需要几分钟的时间:)>我们将用Laravel,Php 8.4和Xdebug v3.4.0演示该设置,这是撰写时最新的稳定版本。
>
我们需要获得Xdebug配置的docker映像的要旨包括:
compose.yaml
>您可以用作XDEBUG客户端的支持编辑器或IDE
>我们通过命令行为我们的设置创建了文件夹和文件,但随时可以随意制作。除了典型的Docker文件外,我们还创建了一个
文件来将Web根路径配置为我们的应用程序。#Docker Image设置
<!-- Syntax highlighted by torchlight.dev -->laravel new xdebug-demo --git --no-interaction cd xdebug-demo mkdir -p build/php/conf.d build/apache touch compose.yaml \ build/Dockerfile \ build/php/conf.d/xdebug.ini \ build/apache/vhost.conf接下来,将以下内容添加到您的
文件:vhost.conf
>阶段之前,它具有基础设置,我们的图像需求,例如我们想要的build/Dockerfile
>
<!-- Syntax highlighted by torchlight.dev -->FROM php:8.4-apache as base LABEL maintainer="Paul Redmond" RUN docker-php-ext-install pdo_mysql opcache && \ a2enmod rewrite negotiation COPY build/apache/vhost.conf /etc/apache2/sites-available/000-default.conf FROM base as development RUN cp $PHP_INI_DIR/php.ini-development $PHP_INI_DIR/php.ini COPY build/php/conf.d/xdebug.ini $PHP_INI_DIR/conf.d/xdebug.ini RUN pecl channel-update pecl.php.net && \ pecl install xdebug-3.4.0 && \ docker-php-ext-enable xdebug FROM base as app RUN cp $PHP_INI_DIR/php.ini-production $PHP_INI_DIR/php.ini COPY . /srv/app环境和配置apache。
接下来,development
阶段复制了php.ini文件的开发版本,复制了将使我们对xdebug进行的自定义化的配置。我们使用支持PHP 8.4的支持,并且是写作时最新稳定的。
最后,我们有一个base
>阶段,这是我们的应用程序图像在生产构建中使用的。使用>目标省略配置Xdebug并使用php.ini文件的生产版。
#APACHE VHOST
>我们不是在这里学习如何配置Apache,我们只想使用它来快速演示在Docker中设置Xdebug的容易性。只需将以下代码添加到development
>文件中,然后将其复制到docker映像中以指向应用程序代码:xdebug.ini
v3.4.0
#xdebug configuration
接下来,我们需要通过创建的 >我们需要定义客户端主机的自定义。由于我们正在使用Docker网络,因此Xdebug需要知道如何与主机机器进行通信。如果您使用的是Docker桌面,则Docker有一个指向主机计算机的主机。 最后,我们使用 >
>在本地为应用程序服务。
>从此设置页面添加一个服务器,然后选择
>文件,并在主页路由的唯一线路上设置一个断点: 如果您在Web浏览器(Localhost:8080)中打开项目,则PHPSTOMS应提示您第一次连接。之后,它将在您设置的任何断点上自动暂停。调试完成后,您可以单击“错误图标”以禁用Xdebug连接。 继续在本教程的第2部分中继续:具有PHP INI环境变量的灵活Docker图像。 >您现在应该能够在您的项目中使用Xdebug!我还向您展示了一个奖励主题 - 使用多阶段图像来设置开发工具和生产设置的单独阶段。使用多阶段构建可以将您的图像提升到另一个灵活性级别。 如果您陷入了设置Xdebug的编辑部分,则PhpStorm具有有关如何配置Xdebug的广泛文档。 Xdebug的文档是另一个出色的参考,包括有关设置,工具,配置选项等的文档。app
><!-- Syntax highlighted by torchlight.dev -->laravel new xdebug-demo --git --no-interaction
cd xdebug-demo
mkdir -p build/php/conf.d build/apache
touch compose.yaml \
build/Dockerfile \
build/php/conf.d/xdebug.ini \
build/apache/vhost.conf
host.docker.internal
xdebug.start_with_request = yes
#running图像>在验证Xdebug连接之前,我们需要配置应用程序容器。我们将使用Docker组成来通过将以下内容添加到
>:compose.yaml
我们的<!-- Syntax highlighted by torchlight.dev -->FROM php:8.4-apache as base
LABEL maintainer="Paul Redmond"
RUN docker-php-ext-install pdo_mysql opcache && \
a2enmod rewrite negotiation
COPY build/apache/vhost.conf /etc/apache2/sites-available/000-default.conf
FROM base as development
RUN cp $PHP_INI_DIR/php.ini-development $PHP_INI_DIR/php.ini
COPY build/php/conf.d/xdebug.ini $PHP_INI_DIR/conf.d/xdebug.ini
RUN pecl channel-update pecl.php.net && \
pecl install xdebug-3.4.0 && \
docker-php-ext-enable xdebug
FROM base as app
RUN cp $PHP_INI_DIR/php.ini-production $PHP_INI_DIR/php.ini
COPY . /srv/app
阶段,安装卷,以便我们可以在不重建图像的情况下更改代码,并使用端口app
我们现在可以使用Docker组成:development
8080
>上一个命令将构建图像,启动容器并在后台运行。此时,Xdebug准备接收连接,但是,我们需要在IDE中调整一件事才能使其正常工作。
<!-- Syntax highlighted by torchlight.dev --><VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /srv/app/public
<Directory "/srv/app/public">
AllowOverride all
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
:
如果您没有Localhost服务器,则可以使用port
8080
单击它时,您应该看到图标变绿色。Xdebug
>
#learn更多
以上是在一分钟内与Docker和PHP 8.4一起工作的详细内容。更多信息请关注PHP中文网其他相关文章!