🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

1回答

2027閲覧

dockerでxdebugを使いたい

mkbeginner

総合スコア0

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2021/02/22 07:57

編集2021/02/22 11:06

前提・実現したいこと

dockerでxdebugを使いたい

発生している問題・エラーメッセージ

ブレークポイントで止まらない
phpのinfo()にはxdebugの情報が表示されています。

試したこと

サイトを見ながらdockerのphp.iniに/usr/lib/php/extensions/no-debug-non-zts-20180731/xdebug.soを記入して、ターミナルでdocker-compose up --buildを実行するとコンテナは作成されているのですが、build中に下記のようなエラーが出ています。

Failed loading /usr/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so: /usr/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so: cannot open shared object file: No such file or directory

php.ini、launch.jsonには下記を記入しています。

ini

1[xdebug] 2zend_extension = /usr/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so 3xdebug.client_host = docker.host.internal 4xdebug.mode = debug 5xdebug.start_with_request = yes 6xdebug.discover_client_host = 0 7xdebug.remote_handler = "dbgp" 8xdebug.client_port = 9003 9xdebug.log = /tmp/xdebug.log

json

1{ 2 "name": "XDebug on docker", 3 "type": "php", 4 "request": "launch", 5 "port": 9003,//php.iniで設定したxdebug用のport番号 6 "pathMappings": { 7 "/var/www/html":"/Users/ユーザ名/html" 8 } 9}

補足情報(FW/ツールのバージョンなど)

vscode
PHP:7.4-apache
xdebug-3.0.2

プログラミング初心者のため、問題の切り分けもできませんでした。アドバイスいただけるでしょうか。よろしくお願いします。

###追記
ファイル構造は下記のようになっています。

┳docker-compose.yml ┗testapp-web┳Dockerfile         ┗php.ini

Dockerfile

1FROM php:7.4-apache 2 3COPY ./php.ini /usr/local/etc/php/ 4 5RUN apt-get update &&\ 6 apt-get install -y libpq-dev &&\ 7 apt-get install -y vim &&\ 8 docker-php-ext-install pdo pdo_pgsql pgsql &&\ 9 pecl install xdebug &&\ 10 docker-php-ext-enable xdebug

yml

1version: "3" 2 3services: 4 #PHP + Apache 5 testapp-web: 6 container_name: testapp-web 7 build: 8 context: ./testapp-web/ 9 dockerfile: Dockerfile 10 volumes: 11 - ../html:/var/www/html 12 - ./testapp-web:/usr/local/etc/php/7.4 13 ports: 14 - "80:80"

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

Dockerコンテナ内にxdebugはインストールしましたでしょうか。
Dockerfileのご提示をお願いします。

また、9003番ポートをコンテナ外からアクセスできるようにオプションの追加が必要です。

投稿2021/02/22 10:04

kazto

総合スコア7196

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mkbeginner

2021/02/22 10:59

ありがとうございます。Dockerfile追記いたしました。個人的にはインストールできてると思うのですがいかがでしょうか。 また、コンテナ外からアクセスできるようにするオプションとは下記サイトのようにポートマッピングすれば良いのでしょうか。 https://qiita.com/ksato9700/items/0b4c7de5d857dc731443 回答に感謝いたします。
mkbeginner

2021/02/22 11:13 編集

m6u様、ご回答ありがとうございます。 こちらのサイトも参考にしながらやってみたのですがうまくいきませんでした。 /usr/local/etc/php/conf.d/docker-php-ext-xdebug.iniにはzend_extension=xdebugとだけ入力されている状態です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問