nginx上传文件,upload模块编译问题

前几天,刚好有个需求,需要往服务器上上传一些图片,可是公司之前就没这种业务。虽然现在普遍的分布式文件存储方案很多,fastds,ceph,tfs,gfs等,而且云上的存储更加无脑,OSS,S3这些,只要你开通一下,然后照着官方的例子传参调用即可,随用随传,而且更加直观方便。但是心血来潮,想到了以前用nginx一样也可以上传文件啊,于是查了下现有nginx的编译模块,动手,搞!

搞了半天,卡在了编译这个upload的时候各种报错,网上搜了半天,答案几乎都是照葫芦画瓢,根本不顶用。所以特意写下这篇随笔记录,虽然这东西没啥人用了,但是万一也有和我一样想安装的人,至少可以真的正确的有个参照。


本篇文章只做填坑用,完整流程,网上很多。

安装过程,千篇一律,废话不多说,看好nginx的版本,upload模块的下载地址,编译的时候注意好路径。以下内容,你百度和我百度没啥区别,随手一贴:

下载upload模块:

cd /opt

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

解压:

tar -zxvf nginx_upload_module-2.2.0.tar.gz

下载nginx:

下载nginx,版本很多,主要不是这个模块的问题,很多是openssl或者你需要的模块,必须要多少多少版本,这个需要先看下你自己都编译了哪些:

查看nginx已经编译过的模块:

nginx -V

这个是安装完,最简单的默认模块配置。


下载,安装,编译:

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

tar zxvf nginx-1.12.0.tar.gz

cd nginx-1.12.0

./configure --prefix=/usr/local/nginx(这里填你要的路径) --add-module=../nginx_upload_module-2.2.0(这里填upload模块的路径)

make

make install

如果一切顺利,到此就可以打卡了。


然鹅,如果你没那么幸运的话,就一个错一个错的慢慢整。

先贴三个常见的,安装前必须要的,如果你没安装,肯定报错。(不同Linux系统可能包名不同,大概一搜安装就好)

sudo apt-get install libpcre3 libpcre3-dev

sudo apt-get install zlib1g-dev

sudo apt-get install openssl libssl-dev

继续编译,如果出现什么什么Werror,objs/Makefile什么的,就去到你的Makefile把那个词干掉就行。

sudo vim Makefile


最后,大bug了,什么由于历史悠久吧,没人更新吧,反正,到这一步,基本找半天资料也没啥有用的。

fatal error: md5.h: No such file or directory

compilation terminated.

答案在这,直接拿走:

https://github.com/fdintino/nginx-upload-module/issues/79

你可能感兴趣的:(nginx上传文件,upload模块编译问题)