折腾:
【已解决】Mac中如何实现实时调试本地wordpress中插件的php代码
期间,需要确保本地PHP环境中,已启用了Xdebug。
此处先去看看,MAMP中的Apache是否已启用Xdebug,结果没有:
但是无意间发现了一个:
extension_dir | /Applications/MAMP/bin/php/php7.1.6/lib/php/extensions/no-debug-non-zts-20160303/ | /Applications/MAMP/bin/php/php7.1.6/lib/php/extensions/no-debug-non-zts-20160303/ |
然后去看了看:
里面有xdebug.so
现在要去:
mamp mac enable xdebug
How To Setup and Configure PhpStorm, Xdebug, and MAMP for Debugging – Michael Novotny
但是此处没有看到PHP选项中有配置参数啊:
Quick Tip – Enabling XDebug in MAMP for OSX – Sup-a-Dillie-O
好像直接修改参数就可以
/Applications/MAMP/conf/
此处找到了当前的PHP的配置文件:
/Applications/MAMP/bin/php/php7.1.6/conf/php.ini
然后去搜Xdebug,发现都以及ing配置好了,只不过默认注释掉了
所以去去掉注释,启用:
[xdebug] zend_extension=”/Applications/MAMP/bin/php/php7.1.6/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so” |
然后重启MAMP,再去phpinfo中看看,是否有xdebug:
然后就有了:
with Xdebug v2.5.0, Copyright (c) 2002-2016, by Derick Rethans xdebugxdebug support | enabled | Version | 2.5.0 | IDE Key | crifan |
Supported protocols | Revision | DBGp – Common DeBuGger Protocol | $Revision: 1.145 $ |
Directive | Local Value | Master Value | xdebug.auto_trace | Off | Off | xdebug.cli_color | 0 | 0 | xdebug.collect_assignments | Off | Off | xdebug.collect_includes | On | On | xdebug.collect_params | 0 | 0 | xdebug.collect_return | Off | Off | xdebug.collect_vars | Off | Off | xdebug.coverage_enable | On | On | xdebug.default_enable | On | On | xdebug.dump.COOKIE | no value | no value | xdebug.dump.ENV | no value | no value | xdebug.dump.FILES | no value | no value | xdebug.dump.GET | no value | no value | xdebug.dump.POST | no value | no value | xdebug.dump.REQUEST | no value | no value | xdebug.dump.SERVER | no value | no value | xdebug.dump.SESSION | no value | no value | xdebug.dump_globals | On | On | xdebug.dump_once | On | On | xdebug.dump_undefined | Off | Off | xdebug.extended_info | On | On | xdebug.file_link_format | no value | no value | xdebug.force_display_errors | Off | Off | xdebug.force_error_reporting | 0 | 0 | xdebug.halt_level | 0 | 0 | xdebug.idekey | no value | no value | xdebug.max_nesting_level | 256 | 256 | xdebug.max_stack_frames | -1 | -1 | xdebug.overload_var_dump | 2 | 2 | xdebug.profiler_aggregate | Off | Off | xdebug.profiler_append | Off | Off | xdebug.profiler_enable | Off | Off | xdebug.profiler_enable_trigger | Off | Off | xdebug.profiler_enable_trigger_value | no value | no value | xdebug.profiler_output_dir | /var/tmp/ | /var/tmp/ | xdebug.profiler_output_name | cachegrind.out.%p | cachegrind.out.%p | xdebug.remote_addr_header | no value | no value | xdebug.remote_autostart | Off | Off | xdebug.remote_connect_back | Off | Off | xdebug.remote_cookie_expire_time | 3600 | 3600 | xdebug.remote_enable | Off | Off | xdebug.remote_handler | dbgp | dbgp | xdebug.remote_host | localhost | localhost | xdebug.remote_log | no value | no value | xdebug.remote_mode | req | req | xdebug.remote_port | 9000 | 9000 | xdebug.scream | Off | Off | xdebug.show_error_trace | Off | Off | xdebug.show_exception_trace | Off | Off | xdebug.show_local_vars | Off | Off | xdebug.show_mem_delta | Off | Off | xdebug.trace_enable_trigger | Off | Off | xdebug.trace_enable_trigger_value | no value | no value | xdebug.trace_format | 0 | 0 | xdebug.trace_options | 0 | 0 | xdebug.trace_output_dir | /var/tmp/ | /var/tmp/ | xdebug.trace_output_name | trace.%c | trace.%c | xdebug.var_display_max_children | 128 | 128 | xdebug.var_display_max_data | 512 | 512 | xdebug.var_display_max_depth | 3 | 3 |
|
然后再去:
加上xdebug的配置,变为:
[xdebug] zend_extension=”/Applications/MAMP/bin/php/php7.1.6/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so” xdebug.remote_autostart=1 xdebug.remote_enable=1 xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.remote_handler=dbgp |
然后重启MAMP后,即可。
【总结】
MAMP此处已经默认包含Xdebug模块了,只不过默认是没有开启而已。
此处是通过PHP的配置:
中得知当前PHP版本是7.1.6
然后再去打开对应的:
/Applications/MAMP/bin/php/php7.1.6/conf/php.ini
把最底下的Xdebug(取消注释而)启用,
然后加上配置参数,变成:
[xdebug] zend_extension=”/Applications/MAMP/bin/php/php7.1.6/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so” xdebug.remote_autostart=1 xdebug.remote_enable=1 xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.remote_handler=dbgp |
然后重启MAMP,即可在phpinfo页面:
http://localhost:8888/MAMP/index.php?language=English&page=phpinfo
中看到Xdebug了,表明已启用Xdebug。
注:
1.上述的zend_extension中的xdebug.so,其实也可以通过phpinfo中的extension_dir的:
/Applications/MAMP/bin/php/php7.1.6/lib/php/extensions/no-debug-non-zts-20160303/ |
而找到。
2.后来发现这个帖子解释的更清楚:
How to debug PHP with PHPStorm & MAMP | Code Chewing Guides
转载请注明:在路上 » 【已解决】Mac的MAMP中确保启用Xdebug插件
Post Views: 1,214