私はmamp proでxdebugを設定しようとしていますが、うまくいきません。私はインターネット全体を検索しましたが、何の助けにもなりませんでした。
まず、php.iniの次の行のコメントを外そうとしました。
zend_extension = "/ Applications/MAMP/bin/php/php5.4.4/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so"
次に、ウィザードを試しました: http://xdebug.org/wizard.php
次に、これらの行をphp.iniに追加してみました。
xdebug.default_enable = 1
xdebug.remote_enable = 1
xdebug.remote_handler = dbgp
xdebug.remote_Host = localhost
xdebug.remote_port = 9000
xdebug.remote_autostart = 1
何も役に立ちません。 phpinfoにxdebugが表示されません。
MAMP PROバージョン:2.1.1
PHPバージョン:PHP 5.4.4
ありがとう!
MAMP 2.01のリリース 以降、XDebugはすでに含まれています。
解決しました。これが tutorial です。
MAMPを起動
MAMPを介してphp.iniテンプレートファイルを編集し、拡張機能を有効にします。ファイル->テンプレートの編集-> PHP-> PHP php.ini
Php.iniテンプレートファイルの下部を編集して、プロファイル出力が必要な場合のように見えるようにします。
[xdebug]
zend_extension="/Applications/MAMP/bin/php/php5.3.6/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so"
xdebug.profiler_enable = 1
xdebug.profiler_output_dir = "/tmp"
; DONT REMOVE: MAMP PRO php5.3.6.ini template compatibility version: 1
プロファイル出力が不要で、xdebugを実行したいだけの場合は、
[xdebug]
zend_extension="/Applications/MAMP/bin/php/php5.3.6/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so"
xdebug.profiler_enable = 0
xdebug.profiler_output_dir = "/tmp"
; DONT REMOVE: MAMP PRO php5.3.6.ini template compatibility version: 1
エラーが発生した場合、エラーが標準出力に送信されると、次のようになります
ぼくの php.ini
ファイル:
編集したテンプレートを保存して編集ウィンドウを閉じる
MAMPを再起動します
MAMPのWebStartページを開き、PHPInfoタブに移動します。 Xdebugが実行されていることを確認してください。ブラウザウィンドウで「Xdebug」を検索すると、これが簡単になります。
上記と同じ設定を使用した場合、PHPコードを実行すると、Xdebugはcachegrind.out
ファイルは ‘/ tmp’ディレクトリにあります。 「/ temp」ディレクトリを開き、PHPファイルのいずれかを実行して、正しく機能していることを確認します。ターミナルを開いて実行すると、Finderで「/ tmp」ディレクトリを開くことができます。
open /tmp
これで、これらのcachegrind.outファイルを理解する任意のアプリを使用して、プロファイルデータを表示できます。 KCacheGrind (Linux/Windows、KDE)、 WinCacheGrind (Windows)、 xdebugtoolkit 、および Webgrind などのアプリ。簡単なルートでwebgrindを使いました。 Webgrindは、MAMPでローカルに実行できるシンプルなWebベースのアプリケーションで、ワンクリックで自動的にcachegrind.outファイルを探します。 webgrindでのセットアップの手順を続けます。
Webgrindを実行するためにMAMPでWebgrindホストをセットアップする
ローカルMAMPインストールのwebgrind url設定にアクセスします。鉱山は単にwebgrind /
Cachegrind出力ファイルが既にある場合は、「自動(最新)」ドロップダウンでファイルを選択するか、「自動」のままにして、更新をクリックしてプロファイルデータを表示することができます。
お祝いの拳ポンプを投げる
MAMP Proとnginxを自分で設定するのに問題があり、上記の答えがうまくいきませんでした。
問題は、デフォルトのポート設定が9000であることでした。私の場合、そのポートはすでに使用されているため、nginx confで次の行を調べました。
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
次に、fastcgi_passが設定されているときに見つかったファイルに移動すると、正しいポート番号が見つかります。私の場合、それはApplications/MAMP/Library/logs/fastcgiにあり、ファイル名はホストのphpバージョンに依存しています。
次にそのファイルを開き、そこにあるPIDをphp.iniのxdebug.remote_portに設定します。私にとっては13267でした。
PHPのMAMP設定はモジュールではなくCGIモードに設定されていることに言及することは価値があるかもしれません。
ポート番号が動的に変化しすぎることに気づきました。そのため、MAMPのnginxテンプレートでfastcgiパスにハードコーディングされた値を次のように設定します。
fastcgi_pass 127.0.0.1:9072;
# comment out the regular setting just in case.
# fastcgi_pass unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI.sock;