Mac 下搭建 Nginx + PHP7.4 环境及 xdebug + PhpStorm 调试环境

使用 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 中设置断点。

测试成功。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韦胖漫谈IT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值