使用 brew 进行安装,未安装 brew 的请先安装,建议设置清华大学的 brew 源。参考 homebrew | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
安装
php 7.4
Mac 自带的php为7.3,我需要安装最新的7.4。
安装 php 比较简单,安装完后需要在终端使用的话,按提示把相应路径附加到PATH中。
brew install php@7.4
# 我这里使用的是 zsh,所以系统提示的内容如下,复制粘贴执行即可。
echo 'export PATH="/usr/local/opt/php@7.4/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/php@7.4/sbin:$PATH"' >> ~/.zshrc
# 新建个终端或重载 profile 后,执行测试
php -v
# 显示如下即安装成功
PHP 7.4.19 (cli) (built: May 6 2021 13:25:24) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Xdebug v3.0.4, Copyright (c) 2002-2021, by Derick Rethans
with Zend OPcache v7.4.19, Copyright (c), by Zend Technologies
安装 Xdebug
pecl install xdebug
...
Build process completed successfully
Installing '/usr/local/Cellar/php@7.4/7.4.19/pecl/20190902/xdebug.so'
install ok: channel://pecl.php.net/xdebug-3.0.4
Extension xdebug enabled in php.ini
安装完成后,它会提示so文件的路径以及已经修改了 php.ini 文件。
刚才安装的的php配置文件路径为 /usr/local/etc/php/7.4/php.ini ,默认是把“zend_extension="xdebug.so"”添加到了php.ini 文件的头部。
为了方便归类,我删掉了,自己在 php.ini 的尾部添加如下内容:
[xdebug]
zend_extension="xdebug.so"
xdebug.mode=debug
xdebug.client_port=9003
这里的端口需要跟ide保持同步。
重启php-fpm
开机也会自启动,若不想开机自启动,请使用 run 操作。具体参考 brew services 操作。
brew services restart php@7.4
Nginx
由于我需要使用用到 rtmp 协议支持,所以选择了 nginx-full 这个东西,参考地址 https://github.com/denji/homebrew-nginx
brew tap denji/nginx
brew install nginx-full --with-rtmp-module
#里面支持很多模块,可执行 brew options nginx-full 查看,根据自己的需要安装相应模块
❯ brew options nginx-full
--with-accept-language-module
Build with Accept Language support
--with-accesskey-module
Build with HTTP Access Key support
--with-addition
Build with HTTP Addition support
--with-ajp-module
Build with AJP-protocol support
--with-anti-ddos-module
Build with Anti-DDoS support
--with-array-var-module
Build with Array Var support
--with-auth-digest-module
Build with Auth Digest support
--with-auth-ldap-module
Build with Auth LDAP support
--with-auth-pam-module
Build with Auth PAM support
--with-auth-req
Build with HTTP Auth Request support
--with-auto-keepalive-module
Build with Auto Disable KeepAlive support
...
配置 nginx
我这里设置日志目录为 /usr/local/var/log/nginx/ ,有需要的同学可自己修改
vim /usr/local/etc/nginx/nginx.conf
# 内容如下
worker_processes 1;
error_log /usr/local/var/log/nginx/error.log debug;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /usr/local/var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
index index.html index.php;
include /usr/local/etc/nginx/services/*.conf;
}
目录 /usr/local/etc/nginx/services/ 为存放虚拟站点的配置文件,若文件夹不存在,请 mkdir 一下。
配置一个默认站点,站点默认路径为 /usr/local/var/www
vim /usr/local/etc/nginx/services/default.conf
# 以下为文件内容
server {
listen 80;
server_name localhost;
root /usr/local/var/www;
access_log /usr/local/var/log/nginx/default.access.log main;
location / {
include /usr/local/etc/nginx/php-fpm.conf;
}
error_page 404 /404.html;
error_page 403 /403.html;
}
配置另一个虚拟站点,站点的域名为 dev.qq.com ,站点路径为 /usr/local/var/www/dev.qq.com
修改 /etc/hosts 保证该域名解析到本地,该操作需要 sudo
sudo echo "127.0.0.1 dev.qq.com" >> /etc/hosts
vim /usr/local/etc/nginx/services/dev.qq.com.conf
# 以下为文件内容
server {
listen 80;
server_name dev.qq.com;
root /usr/local/var/www/dev.qq.com;
access_log /usr/local/var/log/nginx/dev.qq.com.access.log main;
location / {
include /usr/local/etc/nginx/php-fpm.conf;
}
error_page 404 /404.html;
error_page 403 /403.html;
}
配置 php-fpm.conf
vim /usr/local/etc/nginx/php-fpm.conf
# 以下为文件内容
location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
启动Nginx
brew services start nginx
测试 phpinfo
在对应站点下新建 index.php ,然后打开站点测试。
<?php
phpinfo();
?>
PhpStorm 调试配置
其实安装好 xdebug 后都挺好办。
安装浏览器插件
Browser debugging extensions | PhpStorm
根据所使用的浏览器,安装对应的插件即可。
配置IDE
如下图所示,配置 xdebug 的端口为上面设置的 9003
添加调试配置
选择 PHP Remote Debug
点击 【Validate】 进行 xdebug 测试
测试成功后即可保存
测试调试效果
测试代码如下:
打开页面,并设置调试模式。
在PhpStorm 中设置断点。
测试成功。