文章时间:2019年12月17日 11:08:08 解决问题:Linux系统非root用户安装及配置Nginx 基于系统:RedHat CentOS
说明:该文章还是用到了2次root权限,其中有一次root权限是没有必要用的,我会在文章中进行说明。
该文章不吹不闹,吊打某度上95%以上的教程,我测试了前4页面的文章,某度教程只有2篇可用的文章,我会加到底部的参考文献里面。
一、安装前置依赖
gcc编译器(第一次需要root权限)
这里我没研究非root用户安装(因为太麻烦了),后面我会单独出一篇文章,讲解非root用户安装gcc编译器。
直接使用su -
切换到root用户下面,使用yum安装gcc。
yum install -y gcc-c
下载及解压pcre
代码语言:javascript复制wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
tar zxvf pcre-8.43.tar.gz
这里使用wget命令下载的,如果你也像我一样,是个纯内网的,那么,请到文章底部,直接下载我下载好的包吧。
下载及解压zlib
代码语言:javascript复制wget http://zlib.net/zlib-1.2.11.tar.gz
tar zxvf zlib-1.2.11.tar.gz
下载及解压openssl
代码语言:javascript复制wget https://www.openssl.org/source/openssl-1.0.2s.tar.gz
tar zxvf openssl-1.0.2s.tar.gz
下载及解压nginx
代码语言:javascript复制wget http://nginx.org/download/nginx-1.16.1.tar.gz
tar zxvf nginx-1.16.1.tar.gz
二、开始安装
检查配置文件
代码语言:javascript复制cd nginx-1.16.1
代码语言:javascript复制./configure
--prefix=../nginx
--with-pcre=../pcre-8.43
--with-zlib=../zlib-1.2.11
--with-openssl=../openssl-1.0.2t
--user=root
--group=root
--with-file-aio
--with-http_v2_module
--with-http_ssl_module
--with-http_realip_module
--with-http_sub_module
--with-http_gzip_static_module
--with-http_stub_status_module
说明:如果你能看懂上面的,你就看懂,如果看不懂,你就复制粘贴运行。
--prefix=../nginx
这里可以写成你的绝对路径。
执行安装
代码语言:javascript复制make install
三、启动及配置
增加权限(第二次用到root权限)
非root用户运行nginx不能监听1024以下的端口号。所以我们需要如下的操作:
代码语言:javascript复制需要root用户cd到sbin目录中设权限
chown root:root nginx
chmod 755 nginx
chmod u s nginx
启动
代码语言:javascript复制/nginx/sbin/nginx
输入上面的命令即可正常启动nginx。
代码语言:javascript复制# 检查配置文件
/nginx/sbin/nginx -t
# 重启nginx
/nginx/sbin/nginx -s reload
四、参考资料
- CentOS一键编译安装nginx,带http2/brotli/zlib/pcre/ssl,非root监听80端口:https://blog.csdn.net/hursing/article/details/93860565
- zzw原创_非root用户下安装nginx:https://www.cnblogs.com/zzw-zyba/p/8820160.html
五、离线文件包
链接: https://pan.baidu.com/s/1llum2N419M1ed9MkUVRXiA 提取码: zhia