phpstorm远程调试odp

phpstorm远程调试odp

参考配置:http://wiki.baidu.com/pages/viewpage.action?pageId=108780531
pdf下载

php.ini配置

xdebug.remote_host指定为本机,后面会将本地9000端口映射给ide机器

1
2
3
4
5
6
7
[xdebug]
zend_extension="/home/users/jiangzhenyu/odp/php/ext/xdebug.so"
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_enable=true
xdebug.idekey=111
request_terminate_timeout=600s

重启php-fpm

端口映射(tunnel)

注意ngrok自己编译,IDE本机和服务端要使用同一套ssl key文件

服务器端运行ngrokd

1
$ ~/downloads/ngrok/bin/ngrokd -tlsKey=/home/users/jiangzhenyu/downloads/ngrok/ssl/server.key -tlsCrt=/home/users/jiangzhenyu/downloads/ngrok/ssl/server.crt -domain="cp01-rdqa-dev601.cp01.baidu.com" -httpAddr=":8711" -httpsAddr=":8722" -tunnelAddr=":8443" -log=stdout

IDE机器运行ngrok

1
2
3
4
5
6
7
8
9
10
11
$ cd ~/work/project/trying/ngrok
$ cat ngrok.cfg
server_addr: "cp01-rdqa-dev601.cp01.baidu.com:8443"
trust_host_root_certs: false
tunnels:
php:
remote_port: 9000
proto:
tcp: 9000
$ ./bin/ngrok -config ngrok.cfg start php

这样服务器的9000端口就映射到IDE本机,phpstorm能从9000端口接受到远程调试指令

配置phpstorm

按照教程配即可

  1. 配置PHPStorm的远程Interpreter:Language & Frameworks > PHP
  2. 配置PHPStorm的xdebug port
  3. 配置PHPStorm的server path mapping
  4. 配置PHPStorm的debug config:添加一个web application调试项

ODP代码

注意,actions下的odp代码才能调试,可以添加一个actions/test/Test.php,添加断点后开始调试

启动调试

点击phpstorm的debug按钮,即可启动一个web页面:
http://cp01-rdqa-dev601.cp01.baidu.com:8421/cserver/test/test?XDEBUG_SESSION_START=16067

超时配置

修改以下3处配置,防止调试过程中过早断开与phpstorm的连接:

1
2
3
4
5
6
7
8
9
# php*.ini (/usr/local/php/etc/php*.ini):
max_execution_time=7200
# php-fpm.conf (/usr/local/php/etc/php-fpm.conf):
request_terminate_timeout = 0 # fpm不加执行时间限制,少管闲事。
# nginx (/usr/local/nginx/conf/nginx.conf)在http端添加或修改这两个:
fastcgi_connect_timeout 7200s; # 因为php-fpm可能会被调试阻塞
fastcgi_read_timeout 7200s;