ホームページ >バックエンド開発 >PHPチュートリアル >DockerとPHP 8.4を1分間で作業するXdebugを取得します

DockerとPHP 8.4を1分間で作業するXdebugを取得します

Emily Anne Brown
Emily Anne Brownオリジナル
2025-03-06 02:01:17831ブラウズ

Xdebugには、急なセットアップ学習曲線があるという歴史があります。 Xdebugのセットアップは痛みを伴う必要はないことを示しています。実際、私はあなたが約1分でdockerでXdebugを使用し始めることができると確信しています。

わかりました、たぶんそれはあなたの何人かを数分かかるでしょう:)

Laravel、Php 8.4およびXdebug v3.4.0でセットアップを実証します。これは、執筆時点で最新の安定したバージョンです。

docker画像で構成されたXdebugを取得するために必要なものの要点は、

>

xDebugモジュールと構成をインストールするDockerFile

コンテナを起動するための
    a
  • ファイル
  • サポートされているエディターまたはIDE XDEBUGクライアントとして使用できるcompose.yaml
  • #project Setup
  • この投稿では、Apacheを使用してサーバーのセットアップを簡素化します。ただし、dockerfileコードは、php-fpm画像でxdebugを構成するのと同じです。
フォローしたい場合は、デモプロジェクトをセットアップすることから始めます:

コマンドラインを介してセットアップ用のフォルダーとファイルを作成しましたが、お気軽にお気軽にお問い合わせください。典型的なDockerファイルに加えて、アプリケーションへのWebルートパスを構成するために

ファイルを作成しました。

#docker image setup

<!-- 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任意の

環境とApacheの構成などのPHP拡張などの画像のニーズがあります。 次に、 stageは、php.iniファイルの開発バージョンをコピーし、xdebugにカスタマイズするカスタマイズを保持する
<!-- 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
構成をコピーします。 PHP 8.4をサポートしており、執筆時点で最新の安定性を備えています。

最後に、developmentステージがあります。これは、アプリケーションイメージが生産ビルドで使用するものです。 baseターゲットを使用して、Xdebugの構成を省略し、php.iniファイルの生産バージョンを使用します。 #apache vhost

私たちはApacheを構成する方法を学ぶためにここにいません。それを使用して、DockerでXdebugをセットアップするのがどれほど簡単かを迅速に実証したいだけです。次のコードを

ファイルに追加するだけで、Docker画像にコピーしてアプリケーションコードを指します。 development xdebug.ini #xdebug configurationv3.4.0

次に、作成した

ファイルを介してXDebugを構成する必要があります。フォローしている場合は、このファイルに次のことを追加します。

<!-- 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 XDebug接続を確認する前に、アプリケーションコンテナを構成する必要があります。 docker Composeを使用して、

に以下を追加することにより、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
を使用してアプリケーションをローカルに提供します。

Docker Composeを使用して画像を構築して起動することができます。 app development前のコマンドは画像を作成し、コンテナを起動し、背景で実行します。この時点で、Xdebugは接続を受信する準備ができていますが、IDEで1つのことを調整して機能させる必要があります。 8080#configing phpstorm

phpstormを使用しますが、Xdebugをサポートする任意のエディターを使用できます。 Dockerを使用しているため、DockerボリュームをローカルプロジェクトコードにマッピングするPHPStormでサーバーを構成する必要があります。設定&gtを開くことでそうすることができます。 php&gt;サーバーとローカルホストサーバーの構成

のマッピング:
<!-- 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>

ローカルホストサーバーを持っていない場合は、ポート

を使用してこの設定ページから1つを追加し、

デバッガーを選択できます。サーバーマッピングにより、IDEはサーバースタックトレースをプロジェクト内のファイルにマッピングする方法を理解できます。 /srv/app次に、右上のメニューの近くにバグアイコンを使用してXDebugを有効にする準備ができています。

8080 クリックすると、アイコンが緑色になるのが表示されます。Xdebug

最後にする必要があることは、ブレークポイントを設定することです。

ファイルを開き、ホームページルートの唯一の行にブレークポイントを設定します。

Webブラウザ(LocalHost:8080)でプロジェクトを開くと、PHPSTORMは初めて接続するように求められます。その後、設定したブレークポイントで自動的に一時停止します。デバッグが完了したら、バグアイコンをクリックしてXdebug接続を無効にすることができます。

#Learn more

このチュートリアルのパート2で継続する:PHP INI環境変数を備えた柔軟なDocker画像。

プロジェクトでXdebugを使用できるようになりました!また、ボーナストピックも紹介しました。マルチステージ画像を使用して開発ツールを設定し、生産設定用の別の段階を設定しました。マルチステージビルドを使用すると、画像を別のレベルの柔軟性に引き上げることができます。

Xdebugのセットアップのエディター部分に詰まった場合、PhpstormにはXdebugの構成方法に関する広範なドキュメントがあります。 Xdebugのドキュメントは、セットアップ、ツール、構成オプションなどのドキュメントなど、もう1つの優れたリファレンスです。

以上がDockerとPHP 8.4を1分間で作業するXdebugを取得しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。