Quantcast
Channel: panjj 最新博客
Viewing all articles
Browse latest Browse all 59

ubuntu11.04编译安装nginx1.0.4

$
0
0
在ubuntu下,一直都是采用sudo apt-get intall nginx命令方式来安装nginx,由于ubuntu源里的nginx版本有点旧,如果想换成最新版本的版本,只能采用编译的方式去升级了。升级nginx的办法很多实践博文,这里推荐一个:http://www.inginx.com/nginx-update/

最近nginx1.0出来后,版本更新的很勤,打开官网发现版本已经升级到1.0.4,参考李高峰的笔记:http://www.ligaofeng.com/?p=1107 尝试来个全新编译,把遇到的问题也记下来:

1 卸载原有陈旧的nginx:
sudo aptitude remove nginx
如果没有安装aptitude,安装它:
sudo apt-get install aptitude

2 编译安装nginx之前的准备,需要三大类库:PCRE,OpenSSL,zlib,要下载各自的源码,编译安装他们,过程中尝尽了苦头,结尾总结一下:

PCRE的官网:http://www.pcre.org
来到用户目录下,下载最新版本,解压 配置 编译 安装:
cd ~
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.12.tar.gz
tar zxvf pcre-8.12.tar.gz
cd pcre-8.12
sudo ./configure --prefix=/usr/local/pcre
sudo make 
sudo make install
总结:按照以上命令必能安装成功,因为安装的过程中需要新建一系列的目录,常常发生权限的问题,这次碰到程序在新建/usr/local/pcre文件夹时,没有权限,解决办法:
sudo mkdir /usr/local/pcre
sudo chmod -v-R 777 /usr/local/pcre
要参考具体问题解决他们,安装完成,可以把该文件夹权限恢复原样。

OpenSSL官网:http://www.openssl.org
来到用户目录下,下载最新版本,解压 配置 编译 安装:
cd ../
wget http://www.openssl.org/source/openssl-1.0.0d.tar.gz
tar zxvf openssl-1.0.0d.tar.gz
cd openssl-1.0.0d
sudo ./config
sudo make 
sudo make install
总结:同样是新建文件夹openssl的时候,没有权限,按照pcre的办法,解决他们。

zlib官网:http://www.zlib.net
来到用户目录下,下载最新版本,解压 配置 编译 安装:
cd ../
wget http://www.gzip.org/zlib/zlib-1.2.3.tar.gz
tar zxvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
sudo ./configure
sudo make 
sudo make install
总结:同样是新建文件夹的时候,没有权限,按照pcre的办法,解决他们。

3 安装Nginx
Nginx官网:http://www.nginx.org
来到用户目录下,下载最新版本,解压 配置 编译 安装:
cd ../
wget http://nginx.org/download/nginx-1.0.4.tar.gz
tar zxvf nginx-1.0.4.tar.gz
cd nginx-1.0.4

新建一个nginx组和nginx组下的nginx用户:
groupadd nginx
useradd -r -g nginx nginx

配置nginx模块,请参考Nginx官网的配置:http://wiki.nginx.org/NginxInstallOptions,简单配置一下模块,当然可以找到相应的help:
./configure --help

废话少说,来个简单的配置:

sudo ./configure --with-http_stub_status_module --prefix=/usr/local/nginx --with-openssl=~/openssl-1.0.0d --with-pcre=~/pcre-8.12 --without-http_gzip_module
sudo make 
sudo make install

配置总结:原以为安装了PCRE OpenSSL,在配置Nginx时,把路径直接指向到安装路径下,结果并不是,指向的是源码路径下,如刚才把PCRE OpenSSL下载在用户目录下~/,配置:--with-openssl=~/openssl-1.0.0d --with-pcre=~/pcre-8.12
如果配置成:--with-openssl=/usr/local/ssl/ --with-pcre=/user/local/pcre
安装会失败,这个值得注意的。

如果安装完成,nginx会安装在指定/usr/local/nginx目录下,看看简单帮助,然后启动一下nginx:
/usr/local/nginx/sbin/nginx -h
>>
nginx: nginx version: nginx/1.0.4
nginx: Usage: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]

Options:
  -?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /usr/local/nginx/)
  -c filename   : set configuration file (default: conf/nginx.conf)
  -g directives : set global directives out of configuration file

好,知道怎么启动重启nginx了:
/usr/local/nginx/sbin/nginx 
/usr/local/nginx/sbin/nginx -s reload

也可通过向nginx进程发送信号来停止nginx
步骤1:查询nginx主进程号
ps -ef | grep nginx
在进程列表里面找master进程,它的编号就是主进程号了。
步骤2:发送信号
从容停止Nginx:
kill -QUIT 主进程号
快速停止Nginx:
kill -TERM 主进程号
强制停止Nginx:
pkill -9 nginx

最后nginx的配置文件在:/usr/local/nginx/conf/nginx.conf

参考李高峰的笔记:http://www.ligaofeng.com/?p=1107 

Viewing all articles
Browse latest Browse all 59