在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
最近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