以下是我如何使其与多个PHP-FPM homebrew安装一起工作的方法。
我使用了这篇优秀的文章来进行多个安装:
https://echo.co/blog/os-x-1010-yosemite-local-development-environment-apache-php-and-mysql-homebrew
在那篇文章的评论中,你会看到如何安装xdebug的建议,底线是:
brew install php56-xdebug
您需要为每个安装的PHP版本安装xdebug。Homebrew会为您安装的每个php版本创建一个xdebug.ini文件。每个文件都会有一个类似于以下路径的路径:
/usr/local/etc/php/<version
这篇文章安装了DNSMasq,它运行在xdebug的默认端口(9000),因此您需要将xdebug端口更改为其他端口(例如9001)。编辑上述提到的ext-xdebug.ini文件(如果安装了多个php版本,则可能有多个文件)。以下是我使用的设置:
[xdebug]
zend_extension="/usr/local/opt/php56-xdebug/xdebug.so"
xdebug.show_local_vars=On
xdebug.dump.SERVER=*
xdebug.dump_globals=On
xdebug.collect_params=4
xdebug.show_mem_delta=On
xdebug.collect_return=On
xdebug.remote_enable=1
: from http://devzone.zend.com/1147/debugging-php-applications-with-xdebug/
xdebug.remote_host="localhost"
xdebug.remote_port=9001
xdebug.remote_handler="dbgp"
第一行和第二行是原始homebrew文件中的全部内容。
另外,当我安装了多个PHP版本时,这个ext-xdebug.ini文件只会为我安装的第一个PHP版本创建。我只需将此文件复制到其他PHP版本位置,并将第二行中的“php56-xdebug”部分更改为反映正确的php版本。
注意"xdebug.remote_port=9001"
然后在Netbeans中(我使用8.02 Mac osX10.10.3),我使用以下设置。
转到首选项-> PHP-> 调试
调试器端口:
9001
停在第一行:(
取消选中)
监视和气球评估:(
选中 - 有一个警告,但对我来说可以正常工作。)
值得注意的是,为了让xdebug在使用phpinfo()(或命令行php-i)时显示出来,我需要使用以下命令重新启动apache:
launchctl unload -Fw ~/Library/LaunchAgents/homebrew.mxcl.php56.plist
sudo apachectl restart
launchctl load -Fw ~/Library/LaunchAgents/homebrew.mxcl.php56.plist
由于某些原因,我的设置需要我每次启动时运行这个命令。有点麻烦,但我将其纳入一个 shell 命令中,以便轻松切换版本。
还有一个提示:brew info php56 的一部分如下所示:
OS X 10.8 and newer come with php-fpm pre-installed, to ensure you are using
the brew version you need to make sure /usr/local/sbin is before /usr/sbin
in your PATH:
PATH="/usr/local/sbin:$PATH"
在我的.profile_bash文件中添加这个之前,我对每个版本的php-fpm.conf文件所做的更改都没有被识别。其他所有东西似乎都正常工作,所以很令人困惑。
希望这能为其他人节省时间和麻烦。