Mac下安装PHP开发调试环境(ngnix+php72+xdebug)
从事php开发已经近两年了,之前调试一直是通过古老的echo和die配合,自从接触php以来一直不习惯这种动态语言的的调试方式,一直想用一用xdebug像静态语言那样调试。曾经也尝试搭建多次,但遇到了各种各样的坑。最近想追踪一下laravel的源码,被其中各种依赖注入的方式搞的头疼,自然而然希望能够通过xdebug来帮我解决这个问题,于是又一次开始了与bug死磨硬泡的搭建之路,前前后后花了一天的时间终于成功了,记录一下过程。
1. 安装brew
Homebrew是mac上的软件包管理工具,类似于centos上的yum,非常好用。首先我们要安装它。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2. 安装php
mac系统默认是预装了apache和php的,安装地址大概在private/etc/
目录下,但是为了之后维护方便我们需要自己安装php。
brew install php72
brew安装后的软件可以通过brew list
命令查看,目录在/usr/local/etc/
。
查看php版本
php -v
如果为系统php版本,这个我们需要改变环境变量里的php路径
修改 vim ~/.bash_profile
export PATH="$(brew --prefix php)/bin:$PATH"
export PATH="$(brew --prefix php)/sbin:$PATH"
将php设置为开机自启
$ mkdir -p ~/Library/LaunchAgents
$ cp /usr/local/opt/php/homebrew.mxcl.php.plist ~/Library/LaunchAgents/
$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php.plist
查看php-fpm是否成功启动
ps aux|grep php-fpm
3. 安装nginx
brew install nginx
安装之后的ngnix路径在/usr/local/etc/nginx
,nginx 的文件配置跟一般的lnmp配置是一样的,这里就不多赘叙。
4. 安装Xdebug扩展
万恶的xdebug,这里是我踩坑最多的地方了,首先安装网上的教程brew install php72-xdebug
然而
Error: No available formula with the name "php72-xdebug"
万恶的error,关于这个问题官方的解释于是我决定采用stackoverflow上一位大神的方法,原文
- 获取php的版本
- 去xdebug官网下载响应的安装包(http://xdebug.org/files/xdebug-2.7.0alpha1.tgz)
tar -xvzf xdebug-2.7.0alpha1.tgz
cd xdebug-2.7.0alpha1
phpize
./configure
make
cp modules/xdebug.so /usr/local/opt/php/lib/php/20170718/xdebug.so
- 添加xdebug配置
[xdebug]
# 必须使用绝对路径
zend_extension="/usr/local/opt/php/lib/php/20170718/xdebug.so"
xdebug.remote_enable=1
#xdebug.remote_host=local004.khs1994.com
xdebug.remote_connect_back=1
xdebug.remote_port=9010
xdebug.remote_log=/tmp/xdebug-remote.log
xdebug.remote_handler=dbgp
xdebug.idekey = PHPSTORM
xdebug.remote_autostart = 1
5. 配置PHPstrom
- PhpStrom->Preferences->Languages & Frameworks->PHP->Debug
这里的port一定要跟php.ini里的一样 - PhpStrom->Preferences->Languages & Frameworks->PHP->Debug->DBGp Proxy
- PhpStrom->Preferences->Languages & Frameworks->PHP->Servers
- Run -> Start Listening for PHP Debug connections
- 配置调试服务
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。