首頁 > 後端開發 > php教程 > 在一分鐘內與Docker和PHP 8.4一起工作

在一分鐘內與Docker和PHP 8.4一起工作

Emily Anne Brown
發布: 2025-03-06 02:01:17
原創
829 人瀏覽過

> Xdebug具有具有陡峭的設置學習曲線的歷史。我在這裡向您展示,設置Xdebug並不一定要痛苦。實際上,我相信您可以在大約一分鐘內開始使用Xdebug與Docker。

好吧,也許您需要幾分鐘的時間:)

>我們將用Laravel,Php 8.4和Xdebug v3.4.0演示該設置,這是撰寫時最新的穩定版本。

>

我們需要獲得Xdebug配置的docker映像的要旨包括:

    >安裝Xdebug模塊和配置的Dockerfile
  • a
  • >啟動容器
  • 的文件 compose.yaml>您可以用作XDEBUG客戶端的支持編輯器或IDE
  • #project設置
  • 在這篇文章中,我們將使用Apache簡化服務器設置。但是,Dockerfile代碼與在PHP-FPM圖像中配置XDEBUG相同。

,如果您想遵循:,我們將首先設置一個演示項目

>我們通過命令行為我們的設置創建了文件夾和文件,但隨時可以隨意製作。除了典型的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

dockerfile有很多行,因此讓我們瀏覽最重要的代碼,以幫助您掌握如何配置Xdebug。首先,我們使用多階段構建,因此我們可以在開發環境中配置Xdebug。在

階段是

>階段之前,它具有基礎設置,我們的圖像需求,例如我們想要的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

接下來,我們需要通過創建的文件配置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
登入後複製
登入後複製

>我們需要定義客戶端主機的自定義。由於我們正在使用Docker網絡,因此Xdebug需要知道如何與主機機器進行通信。如果您使用的是Docker桌面,則Docker有一個指向主機計算機的主機。 host.docker.internal

如果沒有,您將需要找到計算機的本地網絡IP並使用它。我們可以通過一個環境變量為該值供電,但是我將其保存在以後的帖子中。 >

最後,我們使用

>始終按每個請求啟動xdebug。當我們不想使用Xdebug時,我們可以使用編輯器的UI禁用Xdebug,但它始終會嘗試建立連接。

> 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中調整一件事才能使其正常工作。

#configing phpstorm

我們將使用phpstorm,但是您可以使用支持Xdebug的任何編輯器。由於我們正在使用Docker,因此我們需要在PHPSTORM中配置服務器,該服務器將Docker卷映射到本地項目代碼。您可以通過打開設置&gt; php&gt;服務器和配置Localhost服務器,其映射為
<!-- 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

>從此設置頁面添加一個服務器,然後選擇/srv/app接下來,我們準備使用右上角菜單附近的錯誤圖標啟用Xdebug,當您懸停在它上時,上面說“開始聆聽PHP調試連接”:

8080 單擊它時,您應該看到圖標變綠色。 Xdebug>

我們需要做的最後一件事是設置一個斷點。打開

>文件,並在主頁路由的唯一線路上設置一個斷點:>

如果您在Web瀏覽器(Localhost:8080)中打開項目,則PHPSTOMS應提示您第一次連接。之後,它將在您設置的任何斷點上自動暫停。調試完成後,您可以單擊“錯誤圖標”以禁用Xdebug連接。

#learn更多

繼續在本教程的第2部分中繼續:具有PHP INI環境變量的靈活Docker圖像。

>您現在應該能夠在您的項目中使用Xdebug!我還向您展示了一個獎勵主題 - 使用多階段圖像來設置開發工具和生產設置的單獨階段。使用多階段構建可以將您的圖像提升到另一個靈活性級別。

>

如果您陷入了設置Xdebug的編輯部分,則PhpStorm具有有關如何配置Xdebug的廣泛文檔。 Xdebug的文檔是另一個出色的參考,包括有關設置,工具,配置選項等的文檔。

以上是在一分鐘內與Docker和PHP 8.4一起工作的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板