> 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
接下來,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中文網其他相關文章!