PHP+phpstorm+xdebug 环境配置
php 环境搭建是一件相当麻烦的事情,本篇博客记录了在Mac 系统下的环境配置。
Win上的php 环境搭建,建议使用XAMPP,一键搭建,而且自带xdebug.dll,用过就知道。Mac 上的php 环境,我一开始也使用了 XAMPP 作为环境,但是发现Mac 上的是阉割版的,也没有xdebug。
目前介绍的环境搭建方法是: brew 和 pecl
# PHP 安装
# 安装过程
Mac 上是自带php和Apache的
$ whereis php
/usr/bin/php
2
我这里准备用brew 装一个最新的
$ brew search php
==> Formulae
brew-php-switcher php@7.2 phpmyadmin
php php@7.3 ✔ phpstan
php-code-sniffer phplint phpunit
php-cs-fixer phpmd
==> Casks
eclipse-php netbeans-php phpstorm
(base)
2
3
4
5
6
7
8
9
10
安装最新的 php 7.3
$ brew install php@7.3
# 安装后,我们需要添加环境变量
php@7.3 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
If you need to have php@7.3 first in your PATH run:
echo 'export PATH="/usr/local/opt/php@7.3/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/php@7.3/sbin:$PATH"' >> ~/.zshrc
For compilers to find php@7.3 you may need to set:
export LDFLAGS="-L/usr/local/opt/php@7.3/lib"
export CPPFLAGS="-I/usr/local/opt/php@7.3/include"
To have launchd start php@7.3 now and restart at login:
brew services start php@7.3
Or, if you don't want/need a background service you can just run:
php-fpm
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# brew 安装遇到的问题
brew 安装php@7.3 的过程中,中间一条命令是 brew clean 产生了问题
$ brew cleanup
Warning: Skipping opam: most recent version 2.0.3 not installed
Warning: Skipping python: most recent version 3.7.2_2 not installed
Warning: Skipping sqlite: most recent version 3.27.1 not installed
Error: Permission denied @ unlink_internal - /usr/local/lib/node_modules/@angular/cli/node_modules/.bin/in-install
2
3
4
5
既然说我们权限不够,第一反应是使用 sudo
命令,但是brew 不允许用户这么做。
经过查询后,可以使用如下命令,可以给没有权限的文件夹,更改权限。
$ sudo chown -R "$(whoami)":admin /usr/local # 这里文件夹填写需要的
# 安装 xdebug
xdebug 的安装是比较麻烦的,若是没有xdebug 需要的步骤复制很多。涉及到自己编译(自己编译的话,由于计算机环境不同又会产生很多问题)
# XAMPP 环境的安装
这里XAMPP环境的话我建议参考下面的教程
简单的描述一下过程就是:
生成 phpinfo ,复制到 xdebug 官网官网下载xdebug.so (opens new window) 下载xdebug.tgz
解压文件: tar -xvzf xdebug.tgz
编译过程官方教程(有坑)
坑一:使用对phpize 命令。如果你电脑中安装的是XAMPP环境,你需要使用XAMPP环境的phpize
/Applications/XAMPP/xamppfiles/bin/phpize
坑二:出现
Cannot find autoconf
错误brew install autoconf
坑三:./configure 编译问题
./configure --with-php-config=/Applications/XAMPP/xamppfiles/bin/php-config
make 获得 xdebug.so 文件
# Pecl 方法安装(采用的方法)
我们使用的较为简单的方法,就是使用pecl命令,如果我们成功的安装了 php 的话,pecl 是自带的。pecl 相当于为我们省去了编译的过程,也帮我们避免了很多的坑
pecl 之于 php 相当于 pip 之于 python 和 npm 之于 node.js,管理的是 php 的扩展(或者叫插件?)
# 配置php.ini
找到php.ini 地址
$ php --ini
Configuration File (php.ini) Path: /usr/local/etc/php/7.3
Loaded Configuration File: /usr/local/etc/php/7.3/php.ini
Scan for additional .ini files in: /usr/local/etc/php/7.3/conf.d
Additional .ini files parsed: /usr/local/etc/php/7.3/conf.d/ext-opcache.ini
2
3
4
5
添加如下代码
[xdebug]
zend_extension=/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so # xdebug 存放路径
xdebug.remote_autostart=on
xdebug.remote_enable=on
xdebug.remote_mode="req"
xdebug.remote_host=localhost
xdebug.remote_port=9000 # 端口号,记住
xdebug.remote_handler="dbgp"
xdebug.idekey="PhpStorm"
xdebug.profiler_enable = Off
2
3
4
5
6
7
8
9
10
查看xdebug 是否成功安装,使用 php -m
查看所有已安装的扩展,存在xdebug 则表明安装成功。当然也可以使用 phpinfo()
查看xdebug。
注意: 重启Apache 服务才能看到 phpinfo 输出的情况
# 配置phpstorm 环境
xdebug 在phpstorm 中的设置,有大量图,不想重复造轮子。看下面两个教程足够了。
史上最佳 Mac+PhpStorm+XAMPP+Xdebug 集成开发和断点调试环境的配置 (opens new window)
Mac下XAMPP+PhpStorm中集成xdebug (opens new window)
实践下来,由于我只是作为php 后端开发,不需要与前端交互的话,我这里只需要保证下面的端口设置正确即可。
# 后记
真实工作环境中,其实由于项目是很大的,实际上没有用到xdebug的机会(主要通过日志排查问题)。我这里安装xdebug 主要是想要通过逐步调试的过程,更好的理解php 语言,协程的使用方法等。