非root用户下安装nginx及运行

原创
2018/06/10 19:51
阅读数 4.2K

        本章主要讲如何在无root权限(包含无sudo权限)条件下于centos命令行中安装nginx以及在大于1024的端口(这里用8080)上运行。两种方式,一是下载预编译好的rpm包安装(如果是通过下载rpm方式安装,首先要找对应centos版本的rpm包),二是下载源码后自己编译(要依赖pcre库、zlib库等)。

一、 安装依赖

        1、 下载nginx依赖包


            pcre 下载地址:www.pcre.org
            zlib 下载地址:www.zlib.org ,
            openssl 下载地址:www.openssl.org


        2、 安装依赖

        2.1  PCRE库的安装


        解压:

                unzip pcre2-10.31.zip,解压目录为:pcre2-10.31

                然后进入到 cd pcre2-10.31,进行配置、编译、安装

        配置

                ./configure或./config

        编译

                make

        安装

                make install

        备注:也可编译安装一起进行 make && make install

 

        2.2  OpenSSL库的安装

        解压:

                tar –zxvf openssl-1.1.1-pre7.tar.gz,解压目录为:openssl-1.1.1-pre7

                然后进入到 cd openssl-1.1.1-pre7,进行配置、编译、安装

        配置

                ./configure或./config

        编译

                make

        安装

                make install

        备注:也可编译安装一起进行 make && make install

 

        1.3 安装zlib库安装

        解压:

                tar –zxvf zlib-1.2.11.tar.gz,解压目录为:zlib-1.2.11

                然后进入到 cd zlib-1.2.11,进行配置、编译、安装

        配置

                ./configure或./config

        编译

                make

        安装

                make install

        备注:也可编译安装一起进行 make && make install

二、 安装nginx

        解压 nginx : 

# 解压
tar -zxvf nginx-1.15.0.tar.gz

        安装 nginx :

# 进入解压目录
cd ~/tools/nginx-1.15.0
#  --with-pcre=后的路径为pcre的解压后的源路径
#  --prefix=路径为nginx想要安装到的目录
./configure  --with-http_stub_status_module  --prefix=/home/redhat/tools/nginx  --with-pcre=/home/redhat/tools/pcre2-10.31

        编译与安装 :

# 编译
  make

# 安装
  make install

# make && make install

 

三、常见问题

        1、 不改配置无法正常   

        提示:

nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)

        原因:
                启动不了的,因为非root用户启动不了1024以下端口
        解决方案:
                修改一下nginx.conf监听端口为1024以上端口,重新启动nginx

    2、 直接安装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.

        原因:
                因为Nginx需要其他第三方库的支持,比如rewrite模块需要pcre库,ssl需要openssl库等。
        解决方案:
                安装所需的pcre(www.pcre.org),zlib(www.zlib.org),openssl(www.openssl.org)等。

    3、 ngixn 进行make时报错

        提示:

make -f objs/Makefile
make[1]: Entering directory `/home/redhat/tools/nginx'
cd /home/redhat/tools/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]: *** [/home/redhat/tools/nginx/zzw_other/pcre-8.10/Makefile] 错误 127
make[1]: Leaving directory `/home/redhat/tools/nginx'
make: *** [build] 错误 2

        原因:
                --with-pcre=让你设置到源码目录,而不是编译安装后的目录。这点与apache的编译还有点不同。用./configure  -help 可以看配置参数帮助
        解决方案:
                修改 --with-pcre=后的路径为pcre的解压后的源路径

 

 

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
PythonJsGo博主

引用来自“OSC_FoLVtT”的评论

请问一下这样做是为什么呢?
真正给大客户部署生产项目的时候,客户的权限和网络管理都是十分严格的。是不可能给你root用户或者sudo权限的。即使你是给自家项目部署,也不应该经常使用root权限,能非root权限解决的,都用普通用户部署解决。
2018/06/10 21:55
回复
举报
请问一下这样做是为什么呢?
2018/06/10 20:34
回复
举报
更多评论
打赏
2 评论
0 收藏
0
分享
返回顶部
顶部