nginx 源码(2)运行

接上一篇文章
运行时报错,找不到nginx.conf文件,这个文件在conf目录下,为了方便我们把默认的nginx前缀改成当前目录,修改文件auto/options中PREFIX定义为当前目录:

if [ ".$PREFIX" = "." ]; then PREFIX=. fi

在当前的源码目录下新建文件夹logs 和 html,在html目录下新建文件index.html, 里面输入
success
重新make clean,make,生成新的nginx二进制文件,运行
sudo ./nginx
查看进程
ps -ef|grep nginx
能看到nginx已经成功启动,在浏览器中访问http://localhost,页面返回sucess!
查看日志:
logs/access.log中有访问记录
如果出错,logs/error.log中有报错信息。
logs/nginx.pid中是nginx进程的进程号。
【nginx 源码(2)运行】注意:
如果不使用root运行,则会报错:
2015/03/15 13:44:13 [emerg] 19240#0: bind() to 0.0.0.0:80 failed (13: Permission denied)
如果没有html目录和下面的index.html文件,则会报错:
2015/03/15 13:47:55 [error] 19310#0: *1 “./html/” is not found (2: No such file or directory), client: 127.0.0.1, URL: /
因为我建的是一个最简单的页面,没有favicon.ico,所以这里会报错:
2015/03/15 13:47:55 [error] 19310#0: *1 open() “./html/favicon.ico” failed (2: No such file or directory), client: 127.0.0.1, URL: /favicon.ico
运行时,一共有4个进程:
root 19715 1144 0 14:04 ? 00:00:00 ./nginx
nobody 19716 19715 0 14:04 ? 00:00:00 ./nginx
nobody 19717 19715 0 14:04 ? 00:00:00 ./nginx
nobody 19718 19715 0 14:04 ? 00:00:00 ./nginx
root权限运行的是主进程,其他3个是work进程。

    推荐阅读