したがって、macOS High Sierra 10.13にはPHP 7.1が付属しています。 Apacheを設定するときに、/etc/php.ini.default
ファイルから新しい/etc/php.ini
を作成しましたが、Apacheを再起動した後にPHPによってロードされていることを確認しましたが、macOS 10.13に付属するXdebug拡張のバージョンはロードされないXdebug on macOS 10.13 with PHP 7
$ php -i | grep php.ini
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini
がここに私に/etc/php.iniは、私はXdebugをを設定する場所を次のようになります:あなたはphpinfo();
私のphp.iniのは間違いなくロードされて実行
[xdebug]
zend_extension = "/usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so"
xdebug.remote_enable=on
xdebug.remote_log="/var/log/xdebug.log"
xdebug.remote_host=localhost
xdebug.remote_handler=dbgp
xdebug.remote_port=9000
を[更新
$php -i | grep xdebug
PHP Warning: Method xdebug_start_function_monitor() cannot be a NULL
function in Unknown on line 0
PHP Warning: xdebug: Unable to register functions, unable to load in Unknown on line 0
Segmentation fault: 11
そして、はい、ファイルへのパスが正しい:
$ ls /usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so
/usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so*
、
しかし、Xdebugのはphp -i
は何の結果が得られていないロードして、チェックしません] ...ここでそのタイプミスを修正
これはPHP 5で動作するために使用されていますので、今後誰かがこの問題に苦労して助けてくれることを願っています。
私はApacheのログを確認すると、私は次のエラーを取得する:
Failed loading /usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so: dlopen(/usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so, 9): Symbol not found: _xdebug_monitored_function_dtor
Referenced from: /usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so
Expected in: flat namespace
in /usr/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so
私はこのエラーを解決する方法を見つけるの面で進歩していないよ:
Symbol not found: _xdebug_monitored_function_dtor
Apache *は異なるphp.iniを使用している可能性があります(1つのphp.iniはCLI /端末用、もう1つはApache/webサーバ用)。したがって、実際のブラウザでキャプチャされた 'phpinfo()'の出力を調べて、php.iniがどのようなもので、xdebugがロードされているのかを確認する方が良いでしょう。もちろん、両方が同じiniファイルを使用する場合、そのようなチェックは端末で実行できます。そしてyes - 'zend_extension'フルパスで(安全) – LazyOne
ありがとう、私は両方のCLIとブラウザをチェックし、両方が同じphp.iniファイルをロードしています。 –