您的位置:首页 > 运维架构 > Nginx

Nginx二次开发(1.2)安装调试

2015-03-06 22:00 239 查看

1.2 安装调试

1)安装依赖库zlib(gzip模块)、pcre(rewrite模块)、openssl(ssl功能)

sudo apt-get install libpcre3 libpcre3-devlibpcrecpp0 libssl-dev zlib1g-dev

2)下载后解压,重命名为nginx

tar xzvf nginx-1.2.2.tar.gz

3)修改nginx/auto/cc/conf文件加上-g参数,让nginx支持gdb调试

ngx_compile_opt="-c"

变为

ngx_compile_opt="-c -g"

变为如下才可以调试宏

ngx_compile_opt="-c -ggdb3"

4)执行configure(我安装目录在/home/user_name)

./configure --prefix=/home/user_name/nginx/

configure 参数说明:

--add-module=PATH -添加第三方模块,第三方模块由PATH路径指定

--conf-path=<path> - 在没有给定-c选项下默认的nginx.conf的路径。如果没有指定,默认为<prefix>/conf/nginx.conf

--group=<group> - 在nginx.conf中没有指定user指令的情况下,默认的nginx使用的组。如果没有指定,默认为 nobody

--prefix=<path> - Nginx安装路径。如果没有指定,默认为/usr/local/nginx

--user=<user> -在nginx.conf中没有指定user指令的情况下,默认的nginx使用的用户。如果没有指定,默认为 nobody

5)make生成可执行文件

make

可执行文件在/home/user_name/objs/下

6)修改nginx.conf

添加:
daemon off; #配置为非守护进程启动,否则调试时,执行到判断nginx是否以daemon模式启动时退出调试
master_process off; #单进程模式,否则默认启动一个master进程、一个worker进程,并且调试时需要切人worker进程
7)启动nginx

sudo ./nginx

8)nginx启动、重启等相关命令

ps aux|grep nginx 查看nginx进程相关信息

kill -QUIT 主进程号 从容停止nginx

pkill -9 nginx 强制停止nginx

./nginx -s stop 杀死所有nginx进程

./nginx -s reload 重启

8)生成core崩溃转储文件

ps aux|grep nginx

sudo gcore 15255

sudo ./nginx -s stop

15255是nginx master进程号

ps -aux 查看进程信息

grep 搜索进程名字

9)启动调试

gdb ./nginx core.15255
10)gdb常用命令

list #列出源文件

break 213 #在213行打断点

run #从main函数开始运行程序

info proc #查看进程信息

info source #查看代码所属文件

info break #查看断点信息

delete breakpoint num #删除断点,监视的变量也属于断点

whatis 变量名 #查看变量类型

ptype 变量/类型 #查看类型定义

print 变量 #查看值

pwd #查看当前所在目录

continue #从断点开始继续运行
list #列出源文件,默认列出10行
break n #在第n行设置断点
run #从main函数开始运行程序
shell #切换到终端命令行输入命令,从shell中返回用exit
next #相当于VC F10
step #相当于VC F11
quit #终止gdb
watch 变量 #监视变量
set follow-fork-mode child #设置调试子进程
bt #查看调用堆栈
继续按回车键,执行上一个命令
输出完整字符串setprint element 0
11)启动时错误日志文件目录没有生成?提示找不到日志目录?

mkdir /home/user_name/nginx/logs

vi /home/user_name/nginx/conf/nginx.conf

将#error_log logs/error.log;

改为error_log logs/error.log debug;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: