PHPみたいな忖度の激しい言語では、xdebugの使用が基本であるにも関わらず、その設定についてはqiitaのコピペやら勘やらで凌いでる人がほとんどだと思われますが、ようやくついさっき個人的に腑に落ちたので共有しておきます。 xdebugでデバッグモード&ステップトレース等が機能する条件 条件としてはどうやら後述の3つしかありません。 どれがが掛けても、IDE側ではステップトレースは始まりません。 リモートPHP側だけデバッグモードに入った場合は、実行がガッツリ固まります。 条件1:リモートで xdebugのデバッグモードが起動できること xdebugモジュールを組み込む。のは当然として.... auto_start=1 && remote_enable=1であっても、実はデバッグモードは動いてません。 php.ini のxdebugセクションの auto_start remote_ena
はじめに PhpStormのリモートインタープリタにdocker-composeを選んで、デバッグ環境を整えた人向けの記事です。 phpstormでphpスクリプトを実行デバッグしてみよう GUIからdebug実行(下の虫)すると docker-compose run で実行してしまうと別コンテナになっちゃって、どうしても都合が悪い時とかありますよね。。 だから、docker-compose exec でbatchを動かしたいんだけど、どやってデバッグすんねんって困ってませんか? また、ブラウザから実行するんじゃなくて、terminal上からcURLでデバッグしたい時どうするんじゃいと困ってませんか? そんな悩める希少なかたにお届けします。 docker-compose exec で xdebug ON こんな感じで -e XDEBUG_CONFIG=remote_connect_back
PHPSTORM ①PHPの指定 prefarences -> languages&flameworks -> php CLIインタープリターが最初は何も入ってないので指定してあげる 「・・・」をクリック 「+」をクリックすると、PHP関連の選択肢が出てくるので選択する 俺の場合は「/usr/local/Cellar/php71/7.1.14_25/bin/php」 →MACのPHPがどこに入ってるかわからんくてめちゃ悩んだで・・・ そしたら「デバッガー:Xdebug2.6.0」が表示されていればOK ②SERVERの指定 prefarences -> languages&flameworks -> php -> server 名前:homestead ホスト:xxx.test(自分で指定したURL) ポート:80 デバッガー:xdebug プロジェクトファイルに合わせたサーバー上のパスを
そろそろソースコード単位で動きを追いたい年頃になって来ました。 Debugできるようにする PhpStorm から Vagrant VM の PHP アプリケーションをリモートデバッグする(Web & CLI) - Shin x blog 最初はこれ見てやろうとしたんですがレポジトリがどうのこうのとか言い出してよくわからなくなりました。 そもそも2014年というあたりで回れ右すべきだった。 いや流石にHomesteadさんはなんかあるやろと検索したらズバリなタイトルが出て来ましたのでこれを参考にしてみます。 Homestead + Xdebug + PhpStorm でリモートデバッグ環境をつくる - ラボラジアン PHP7.2にはXdebugがない? 上記資料では7.1だったんですが、Homesteadは7.2を指してるんですよね。 で、7.1のフォルダにはxdebugのiniファイルが
XAMPPのPHP7でXdebugを使う場合 XdebugのDLLをダウンロード XAMPPのバージョンによっては環境が異なりXdebugのDLLが適用できないものもある。 まずは、XAMPPでApacheを起動させる phpinfo()でPHPの情報を表示 環境にあったXdebug.dllをダウンロード phpinfo()で出力されたソースコード(html)を全部コピー https://xdebug.org/wizard.php のサイトのテキストボックスにコピーしたソースコードを貼り付ける [Analyse my phpinfo() output]ボタンを押す 現在の環境に合ったDLLのファイルがダウンロードできるのでこれをダウンロードする C:\xampp\php\ext にダウンロードしたDLLを入れる php.iniを編集 下記を末尾に追記 ただしphp_xdebug-2.6.0
これのきっかけ 開発機がWindowsなので、実際の動作環境に合わせてvagrantでCentOSを建てApache,MySQL,etc等をインストールし、やった環境構築完了!と思っていた時期がありました。 [root@localhost /]# php -v PHP 7.1.17 (cli) (built: Apr 25 2018 08:30:10) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.1.17, Copyright (c) 1999-2018, by Zend Technologies with Xdebug v2.6.0, Copyright (c) 2002-20
前段 以前、こちらでPhpStormでxDebugを使う記録を取ってました。 PhpStormとHomesteadとXdebugでDebugできるようにする - Qiita その後、なんか調子悪くなったhomesteadをdestroyしたせいで? xdebugのインストールとかが吹き飛んだっぽくて、デバッグできなくなってしまいました。 php -mでモジュール一覧を見ても、Zend Modulesにxdebugが表示されません。 なので、改めて入れ直します。 使えるかどうかの確認 毎回、「どこを確認すればええんや……」となるのでまとめておきます。 各設定が具体的にどうなっていればいいかは以下を参照してください。 Homestead + Xdebug + PhpStorm でリモートデバッグ環境をつくる - ラボラジアン PhpStormの設定 PhpStorm Preferences L
PHP のデバッグツールである Xdebug にはリモートデバッグという機能があります。 …というのは言うまでもなく、広く知られていると思います。 しかし、Xdebug の設定をなんとなくコピペで済ませたりしていないでしょうか? Xdebug のリモートデバッグ設定、理解していますか? 日本語のサイトを検索すると「 xdebug.remote_enable=1 にして、xdebug.remote_host を xxx にして…」と設定だけが淡々と書かれた情報が多いです。 しかし、設定項目について、それぞれの意味を理解していないとトラブル時の対処が難しくなります。 リモートデバッグとは何か? リモートデバッグ (Remote Debugging) とは、実行中の PHP とは別の場所にデバッグを制御するものが存在する 方式です。 よくある環境だと、次のように図示できます。 PHP 本体とは別
コマンド実行後、エクスプローラーからC:\tools\php72をフォルダごと削除します 試した手順(うごかないほう) https://xdebug.org/download.php よりXDebugをダウンロード。2018/07/13現在2.7.0alpha1 C:\tools\php72\extにダウンロードしたファイルを配置し、Ctrl+右クリックよりフルパスをコピーしておく C:\tools\php72\php.iniを開き、一番下の行に以下を追加 [XDebug] zend_extension = "(さっきコピーしたフルパス)" xdebug.profiler_append = 0 xdebug.profiler_enable = 1 xdebug.profiler_enable_trigger = 0 xdebug.profiler_output_dir = "(適当なフォル
はじめに ブレークポイントが使いたいだけの人生だった。 Xdebug入りのコンテナイメージ準備 公式のphp:7.1-apache をベースに下記のDockerfileを用意 FROM php:7.1-apache RUN pecl install xdebug-2.7.0alpha1 RUN docker-php-ext-enable xdebug RUN echo 'xdebug.remote_enable = 1\n\ xdebug.idekey = "PHPSTORM"\n\ xdebug.remote_host = [ローカルPCのIP]\n\ xdebug.remote_autostart = 1\n\ xdebug.remote_connect_back = 0' >> /usr/local/etc/php/php.ini
結論 https://qiita.com/t_n/items/203cd3593427a35f7ed7 のように、 shell の if 〜 then 〜 fi を使う。 ただし、記事にある通りで、 これはするべきではないです と思います。が、今の所、この方法しか思いつかなかった。。というメモ。 具体例: # ..snip.. COPY ./docker/workspace/usr/local/etc/php/conf.d/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini RUN if [ "${PHP_XDEBUG_INSTALL}" = "true" ]; then pecl install xdebug ;fi RUN if [ ! "${PHP_XDEBUG_INSTALL}" = "true" ]; then rm -rf /usr/
php 7.2 Laravel 5.4 Homestead 6.1.0 (Vagrant経由で起動) Windows10(Homesteadとの共有フォルダを作成してWindows上でソースを編集している) PhpStorm 182.3911.43 xdebug 2.6.0 やりたい事 PhpStormからPHPUnitをデバッグ実行したい (ブレークポイントで停止させたい) 手順 1. Homestead上でxdebugの設定を行う /etc/php/7.2/mods-available/xdebug.iniを以下の通り編集する zend_extension=xdebug.so xdebug.remote_enable = 1 xdebug.remote_connect_back = 1 xdebug.remote_port = 9000 xdebug.max_nesting_level
Xdebugによるデバッグの仕組み PHPアプリのデバッグ実行には、Xdebug というPHP拡張を利用します。 Xdebug PHP ランタイムに組み込まれたXdebugとデバッガが通信することにより、リモートデバッグが実行されます。 PHPアプリとデバッガを両方ともホストOSで起動していれば、特別な設定をしなくても通信が成立して問題なくデバッグできます。 PHPアプリをゲストOSで実行する場合、通信先のデバッガが localhost にないので、通信に失敗します。 解決策 要するに、XdebugがホストOSのデバッガと通信できるよう、Xdebugを設定すればいいわけです。 方法は2つあります。 方法1: xdebug.remote_connect_back を有効にする Xdebug の設定ファイル (xdebug.ini) で、xdebug.remote_connect_back を
Docker for Mac/Windowsで動作しているPHPアプリを、VS Codeからデバッグする方法です。 Docker for Mac/Windowsで起動したコンテナでは、host.docker.internalというDNS名で、ホストのIPアドレスを引くことができるようになっています。 Networking features in Docker for Mac Networking features in Docker for Windows Xdebug の設定のxdebug.remote_hostに、この値を指定することで、コンテナ内のPHPとデバッガが通信できるようになります。 xdebug.default_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_connect_back = 0 xdebug.remot
できそうでできなくて苦労したのでメモ。 環境 PHP:7.0.9 Xdebug:2.4.1 PHPStorm:2016.2.2 前提 Vagrantの仮想環境にApache、PHP、Xdebugはインストール済み Vagrant(の仮想環境) CentOSで試しましたが、特にOS依存はないです、たぶん。 php.ini Xdebug用の設定値を追記します。他にも設定値がありますが、とりあえず動けばいいや的な。 [xdebug] zend_extension=/opt/remi/php70/root/usr/lib64/php/modules/xdebug.so ; Xdebugモジュールのパス xdebug.remote_enable=On xdebug.remote_autostart=On xdebug.remote_host=192.168.33.1 ;デバッグ接続するPCのIPアド
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く