想自己安装nginx,又不相用到root用户。
非root用户下(本文为用户bdctool)来ngnix安装,要依赖pcre库、zlib库等,
1、 下载依赖包:下载地址 pcre(www.pcre.org),zlib(www.zlib.org),openssl(www.openssl.org)
2、不用依赖包,先安装一下试试
[bdctool@localhost setup]$ tar -zxvf nginx-1.12.2.tar.gz
[bdctool@localhost setup]$ ./configure --with-http_stub_status_module --prefix=/opt/aspire/product/bdctool/nginx
报错
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.
3、还是安装一下pcre吧
[bdctool@localhost setup]$ unzip pcre-8.10.zip
[bdctool@localhost setup]$ cd pcre-8.10
[bdctool@localhost pcre-8.10]$ ./configure --prefix=/opt/aspire/product/bdctool/nginx/zzw_other/pcre-8.10 (自定义目录)
[bdctool@localhost pcre-8.10]$ make
[bdctool@localhost pcre-8.10]$ make install
4、再来安装nginx,首先./configure
[bdctool@localhost nginx-1.12.2]$./configure --with-http_stub_status_module --prefix=/opt/aspire/product/bdctool/nginx --with-pcre=/opt/aspire/product/bdctool/nginx/zzw_other/pcre-8.10
注意:上面命令--prefix=路径为nginx想要安装到的目录, --with-pcre=路径为pcre安装到的目录。
.....................
checking for openat(), fstatat() ... found
checking for getaddrinfo() ... found
checking for zlib library ... found
creating objs/MakefileConfiguration summary
+ using PCRE library: /opt/aspire/product/bdctool/nginx/zzw_other/pcre-8.10
+ OpenSSL library is not used --- OpenSSL 可选
+ using system zlib library --- 其实是要依赖zlib包的,但系统已安装,所以没有额外安装,如果系统没安装,要自行如pcre一样安装一下,并且在configure时加 --with-zlib=(自行安装的zlib的目录)nginx path prefix: "/opt/aspire/product/bdctool/nginx"
nginx binary file: "/opt/aspire/product/bdctool/nginx/sbin/nginx"
nginx modules path: "/opt/aspire/product/bdctool/nginx/modules"
nginx configuration prefix: "/opt/aspire/product/bdctool/nginx/conf"
nginx configuration file: "/opt/aspire/product/bdctool/nginx/conf/nginx.conf"
nginx pid file: "/opt/aspire/product/bdctool/nginx/logs/nginx.pid"
nginx error log file: "/opt/aspire/product/bdctool/nginx/logs/error.log"
nginx http access log file: "/opt/aspire/product/bdctool/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"没什么大问题
4、再进行make
[bdctool@localhost nginx-1.12.2]$ make
make -f objs/Makefile
make[1]: Entering directory `/opt/aspire/product/bdctool/setup/nginx-1.12.2'
cd /opt/aspire/product/bdctool/nginx/zzw_other/pcre-8.10 \
&& if [ -f Makefile ]; then make distclean; fi \
&& CC="cc" CFLAGS="-O2 -fomit-frame-pointer -pipe " \
./configure --disable-shared
/bin/sh: line 2: ./configure: 没有那个文件或目录
make[1]: *** [/opt/aspire/product/bdctool/nginx/zzw_other/pcre-8.10/Makefile] 错误 127
make[1]: Leaving directory `/opt/aspire/product/bdctool/setup/nginx-1.12.2'
make: *** [build] 错误 2
出问题了,make报错。
参考《http://www.cnblogs.com/yayagepei/articles/1884462.html》的解决方法 ,原来是--with-pcre=让你设置到源码目录,而不是编译安装后的目录;同样的道理, --with-zlib=也是解压后的源码目录,而不是zlib编译安装后的目录!!!!。这点与apache的编译还有点不同。用./configure -help 可以看配置参数帮助
5、修改 --with-pcre=后的路径为pcre的解压后的源路径,重新./configure
[bdctool@localhost nginx-1.12.2]$./configure --with-http_stub_status_module --prefix=/opt/aspire/product/bdctool/nginx --with-pcre=/opt/aspire/product/bdctool/setup/pcre-8.10
6、重新make
[bdctool@localhost nginx-1.12.2]$ make
成功了,没出问题
7、最后make install
[bdctool@localhost nginx-1.12.2]$ make install
完成,没出问题
8、不改配置,试着启动一下
[bdctool@localhost sbin]$ ./nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)启动不了的,因为非root用户启动不了1024以下端口,具体解决方法见 http://www.cnblogs.com/zzw-zyba/p/8575428.html
9、修改一下nginx.conf监听端口为1024以上端口,重新启动nginx,成功。