[PhpStorm+Nginx+XDebug] PHP断点调试环境构建

1、概述

搭建基于PhpStorm+XDebug的开发环境,以便于代码调试。

1.1、环境说明

2、PHP配置

(1)下载php_xdebug.dll

需下载php_xdebug-3.1.4-7.4-vc15-x86_64.dll,下载完成后将其重命名为php_xdebug.dll并放入%PHP_HOME%/ext目录下:
在这里插入图片描述

(2)添加php.ini配置

php.ini中加入如下配置:

[xdebug]
zend_extension=php_xdebug.dll
xdebug.mode=debug
xdebug.remote_enable=On
xdebug.remote_handler=dbgp
# xdebug的地址及端口号
xdebug.remote_host=localhost
xdebug.remote_port=9001
# idekey: 在PhpStorm的配置中使用到
xdebug.idekey=PHPSTORM

3、Nginx配置

nginx需配合php-cgi一起使用,对应的配置文件fastcgi.conf如下(fastcgi.conf保持不变即可):

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REQUEST_SCHEME     $scheme;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
#fastcgi_param  REDIRECT_STATUS    200;

nginx.conf配置如下:

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


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  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  1800s;
    # 设置超时时间为30分钟, 避免调试时间过长造成504
    fastcgi_send_timeout 1800s;
    fastcgi_read_timeout 1800s;

    server {
        listen       8001;
        server_name  localhost;

        location / {
            # 该项目的根路径为E:/Path-To-Project,
            # 由于项目使用了lumen框架,因此需将root指向public目录
            root   E:/Path-To-Project/public;
            index  index.html index.htm index.php;
                        try_files $uri $uri/ /index.php?$query_string;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location ~ \.php$ {
            root           E:/Path-To-Project/public;
            # 此处对应php-cgi监听的地址及端口
            fastcgi_pass   127.0.0.1:8088;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  E:/Path-To-Project/public$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
}

4、PhpStorm配置

(1)Ctrl + Alt + S 进入设置界面:

在这里插入图片描述

(2)设置XDebug的监听端口

此处的端口需与php.ini中设置的端口保持一致:
在这里插入图片描述

(3)设置DBGp Proxy

此处的端口需与php.ini中设置的保持一致,对应关系为:

序号php.iniPhpStorm
1xdebug.remote_hostHost
2xdebug.remote_portPort
3xdebug.idekeyIDE key

在这里插入图片描述

(4)配置Servers

此处Server的配置对应Nginx中的相关配置:
在这里插入图片描述

5、调试

(1)启动php-cgi

1)打开cmd命令行

2)进入目录%PHP_HOME%

在这里插入图片描述

3)启动php-cgi

# 监听的端口为8088, 需与nginx中的fastcgi_pass保持一致
php-cgi.exe -b 127.0.0.1:8088 -c php.ini

在这里插入图片描述

(2)PhpStorm进行相关设置

1)进入Run/Debug Configurations

在这里插入图片描述

进入的界面如下:
在这里插入图片描述

2)新增PHP Web Page

在这里插入图片描述

并进行设置:
在这里插入图片描述

说明:Server选项选取预先配置好的debug_server

3)开启XDebug监听

点击下图所示的按钮:
在这里插入图片描述

按钮变为如下状态,说明已开始监听请求:
在这里插入图片描述

(3)开始断点调试

本例使用Postman进行接口调用,需在请求头中加入如下参数:
Cookie: XDEBUG_SESSION=PHPSTORM

如下图所示:
在这里插入图片描述

断点效果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值