C#とかVue.jsとかAWSとか興味のあることちまちまやってます。PHP-FPM)を使ってPHPの実行環境を構築しました。基本構文を覚えたばかりなのでコード毎に動作を追いたいと思った次第です。Codeでデバッグが行える環境を構築します。PHP-FPM)のPHP実行環境にXdebugを追加する形で構築します。前回の環境構築記事は以下です。loadedが発生する。1110ad01デバッグ環境の構築DockerのnginxとPHP-FPMコンテナで構成されたPHP実行環境です。前回は、PHP-FPMコンテナに公式イメージを使用していましたが今回は同じイメージをベースにDockerfileを作成しXdebugをコンテナにインストールします。Code上でデバッグが実行できるようにします。index.phpnginxのconfigファイル作成nginxについては前回と変わりないので解説なしです。confファイルのみ載せておきます。下記の前回記事をご参照ください。}}Dockerfileの作成PHP-FPMのDockerイメージをベースにXdebugをインストールします。インストールコマンドについては公式ドキュメントに従います。DockerHubのPHPイメージのページにも記載がありました。Hub下記のパスでPHP-FPM用のDockerfileを作成します。xdebugコンテナ作成時にpeclコマンドでXdebugをインストールします。docker-php-ext-enableコマンドで拡張機能を有効化します。peclって?peclと言うコマンドを初めて見たので「んんん???」となりましたが下記の記事がわかりやすく参考になりました。前回記事同様にdocker-compose.ymlを作成します。./docker-configs/php-fpm/xdebug.ini:/usr/local/etc/php/conf.d/xdebug.ini前回からの変更点はphpセクションをimageからbuildに変更し、先程作成したDockerfileを使用してコンテナが作成されるように変更しました。この後で作成しますがxdebug.ini(Xdebugの設定ファイル)をマウントしています。あとらすの備忘録xdebug.iniの作成Xdebug用の設定ファイルを作成します。公式ドキュメントの下記を参考に設定します。日本語での解説記事とStackOverflowが参考になりました。Overflow下記のパスでxdebug.iniを作成します。Onhost.docker.internalってDockerコンテナからホストに接続する際に使える便利なやつ。Mac以外じゃ使えないよって記載があるのでWindowsの場合はがんばってください。Code側で操作します。CodeにXdebug拡張をインストール拡張機能から「xdebug」をインストールします。デバッグ構成の追加メニューからデバッグ→構成の追加...を押下すると下記画像の様に選択肢が出るのでPHPを選択します。できたlaunch.jsonの設定内容については下記の公式ドキュメントを参考に設定します。編集箇所にコメントをつけてます。]}pathMappingsでPHPファイルのディレクトリ(コンテナ側のパスとホスト側のパス)を指定します。${workspaceRoot}はプロジェクトのルートディレクトリになります。※stopOnEntryをtrueにするとデバッグ開始時に自動的にコード先頭で止まってくれます。Composeでコンテナを起動します。upVSCodeからデバッグを開始してブレークポイントを設定します。ブラウザからhttp://localhost:8080へアクセスするとブレークポイントで停止することが確認できます。loadedが発生する。upでコンテナを起動するとコンテナ自体は上がってるっぽいですがエラーが発生していてデバッグができませんでした。※デバッグを開始してもうんともすんとも言わない状況。原因はxdebug.iniにzend_extensionを指定していたことが原因でした。下記を指定しているとエラーが発生した。Onこのzend_extensionをxdebug.iniへ追加したのはコンテナ初回起動時のログに下記を追加してねと出力されていたので追加した次第なんですが...zend_extension="/usr/local/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so"下記の類似のStackOverflowを参考にとりあえずパスの指定をコメントアウトしたら動きました。Overflow雑感ホントはPHPでCRUDやってみよーと初めたんですが「え、PHPのデバッグでechoとvar_dumpのみ???」となってしまったので環境作ってみました。»プロフィールid:HM_Atlasチラ裏のメモ帳モノづくりが好き。技術で世の中(大袈裟)を便利にするのが好き。(1)月別アーカイブリンクTwitterGitHubSteam自滅しがちQiitaはてなブログをはじめよう!HM_Atlasさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。