MacにWP-CLIを入れてコマンドでWordPressの管理をしようと思い、MAMPのPHPを使うようにパスを設定してみました。そしたらxdebugのエラーが出て、ちょっと詰んだのでその解決法を。
※MacとMAMPの話が前提になります。
まず、WP-CLIをインストールします。
参考:WP-CLIをMAMP環境で使う
MacにはもともとPHPが入っているのですが、今回はMAMPのPHPを使うようにパスの設定をして、
“php wp-cli.phar --info
”
を叩いて、WP-CLIの情報を出した時に出てきたエラーは下記。
Failed loading /Applications/MAMP/bin/php/php5.5.14/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so: dlopen(/Applications/MAMP/bin/php/php5.5.14/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so, 9): image not found
xdebugの設定が読み込めてませんよ、というエラー。PHP INFOで設定を確かめてみても、xdebugは存在しませんでした。
この画面です。
MAMP xdebugで検索したサイトを見ながらphp.iniの設定を追加したり、変えてみたものの、いっこうにxdebugがphpinfoに表示されない。。
設定ファイルが違うのかと思って、
/Applications/MAMP/conf/php5.5.14/php.ini
のphp.iniに設定を追加しても変わらず。
xdebugを追加する正しい方法
MAMPで使っているPHPのバージョンを調べます。「設定」→「PHP」で確認。
バージョンを確認したら、下のパスにある設定ファイルを開きます。
/Applications/MAMP/bin/php/php5.5.14/conf/php.ini
で、下記のコードを追加。
zend_extension="/Applications/MAMP/bin/php/php5.5.14/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so" xdebug.coverage_enable=1 xdebug.default_enable=1 xdebug.profiler_enable=1 xdebug.profiler_output_dir="/tmp" xdebug.remote_autostart=1 xdebug.remote_enable=1 xdebug.remote_host=localhost xdebug.remote_port=9000
僕が一番はまってしまっていたのは、赤枠にあるPHPのバージョンと、no-debug-non-zts-xxxxxxxxの名称がきちんと対応してなかったためでした。(参考サイトにあったコードをそのままコピーして、PHPのバージョンだけMAMPのものにアップデートしてた)
そこでPHP INFOの「PHP Extension」から対応するものに修正します。
php.iniを保存して、Apacheを再起動すれば、xdebugは無事に追加されました。
当たり前のことですが、サイトに紹介されているコードは参考程度にして、自分の環境とは違うということを前提に設定をしないとだめだな、と思いました。考えてみれば、当たり前のことのなんですけどね。初めてすることになると色々と試行錯誤が必要になります。