我正在尝试在mamp pro上设置xdebug但没有成功。我在互联网上搜索过,没有任何帮助。
首先,我试图在php.ini中取消注释以下行:
的zend_extension = “/应用/ MAMP / bin中/ PHP / php5.4.4 / LIB / PHP /扩展/无调试非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 =本地主机
xdebug.remote_port = 9000
xdebug.remote_autostart = 1
没有任何帮助。我在phpinfo中看不到xdebug。
MAMP PRO版本:2.1.1
PHP版本:PHP 5.4.4
谢谢!
答案 0 :(得分:24)
由于已经包含release of 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文件以确保它正常工作。您可以通过打开终端并运行
open /tmp
现在,您可以使用任何了解这些cachegrind.out文件的应用来查看配置文件数据。像KCacheGrind(Linux / Windows,KDE),WinCacheGrind(Windows),xdebugtoolkit和Webgrind这样的应用。我走了简单的路线并使用了webgrind。 Webgrind是一个简单的基于Web的应用程序,您可以在MAMP上本地运行,只需单击一下即可自动查找cachegrind.out文件。继续使用webgrind设置步骤。
在MAMP上设置Webgrind主机以运行Webgrind
在您当地的MAMP安装上访问webgrind网址设置。我只是webgrind /
如果您已经有cachegrind输出文件,您应该能够在“自动(最新)”下拉列表中选择该文件,或者选择“自动”并单击“更新”,这将显示配置文件数据
扔一个庆祝的拳头泵
答案 1 :(得分:0)
我自己设置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 pass设置了一个硬编码值,如下所示:
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;