CentOS下安装Nginx并添加nginx_upload_module

安装前,最好能保证依赖的系统软件已经升级。

yum update

CentOS上安装Nginx,如果只是简单安装,不附加其他第三方模块,一句话可以搞定:

yum install nginx

但是如果需要添加第三方的module则需要下载源码并重新编译安装了。(也可能有简单方法,本人不知,如果真有,还请路过的高人指点。)

我这里要添加两个第三方模块,用来作文件上传和上传进度条nginx_upload_module和nginx-upload-progress-module。

这里需要安装nginx_upload_module的朋友要注意了,如果要结合upload module,必须使用Nginx1.3.8或者以下的版本,高版本与当前最新版的nginx_upload_module-2.2.0存在冲突

首先去Nginx的官方网站下载Nginx的源码包

wget http://nginx.org/download/nginx-1.3.8.tar.gz

下载nginx_upload_module

wget http://www.grid.net.ru/nginx/download/nginx_upload_module-2.2.0.tar.gz

如果需要上传进度信息,下载下面的module。

wget http://cloud.github.com/downloads/masterzen/nginx-upload-progress-module/nginx_uploadprogress_module-0.9.0.tar.gz

另外,有两个依赖的包pcre 和 openssl,如果系统上已经安装则不需要下载。

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.tar.bz2

wget http://www.openssl.org/source/openssl-1.0.0e.tar.gz

由于在服务器上,本人习惯创建一个自己的文件夹如:mkdir slx

把这些文件都放到里面,然后用下面的命令逐个解压缩(文件格式不同对应的解压参数不同):

tar -jxvf 文件名.tar.gz

tar -jxvf 文件名.tar.bz2

其他类型压缩包不多介绍。网上易查。

解压缩后进入nginx-1.3.8文件夹内,执行下面命令:

./configure --prefix=/slx/nginx --add-module=/slx/masterzen-nginx-upload-progress-module-a788dea --add-module=/slx/nginx_upload_module-2.2.0

--prefix指定需要安装的位置。--add-module指定添加的模块。

另外还有 -with等选项 如-with-openssl=../openssl-1.0.0e 指定编译时使用后面目录下的类库,这些网上文章比较多,不再多废话。

之后执行

make

如果没有报错则可以执行下面的安装命令即可

make install

如果安装顺利那么恭喜你,如果出现错误,说md5.h: No such file or directory说明你中枪了,不过很幸运,我也中过,并学会了疗伤。你找到这里就解决了,不必再像我那样摸不着头脑四处找不到解决方法了。其实是因为你的系统中少了一个openssl-devel,安装上就可以了

yum install openssl-devel

然后再次make install就成功了。