普通用户源码安装nginx
环境
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-1062.el7.x86_64 #1 SMP Wed Aug 7 18:08:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
准备相关的安装包
上传到 /usr/local/src
[root@localhost src]# pwd
/usr/local/src
[root@localhost src]# ls | grep ".gz"
nginx-1.18.0.tar.gz
openssl-fips-2.0.16.tar.gz
pcre-8.40.tar.gz
perl-5.28.0.tar.gz
zlib-1.2.11.tar.gz
安装c++编译环境
检查是否已经安装了gcc-c++
[root@localhost ~]# rpm -qa gcc-c++
gcc-c++-4.8.5-44.el7.x86_64
[root@localhost nginx]# gcc -v
gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
离线安装gcc
准备安装包,从centos镜像中取。 Centos.iso/Packages/
把包上传到:/usr/local/src/gcc
[root@localhost gcc]# pwd
/usr/local/src/gcc
[root@localhost gcc]# ls
cpp-4.8.5-39.el7.x86_64.rpm
gcc-4.8.5-39.el7.x86_64.rpm
gcc-c++-4.8.5-39.el7.x86_64.rpm
glibc-devel-2.17-292.el7.x86_64.rpm
glibc-headers-2.17-292.el7.x86_64.rpm
kernel-headers-3.10.0-1062.el7.x86_64.rpm
libmpc-1.0.1-3.el7.x86_64.rpm
libstdc++-devel-4.8.5-39.el7.x86_64.rpm
mpfr-3.1.1-4.el7.x86_64.rpm
[root@localhost gcc]# rpm -Uvh *.rpm --nodeps --force
Preparing... ################################# [100%]
Updating / installing...
1:mpfr-3.1.1-4.el7 ################################# [ 14%]
2:libmpc-1.0.1-3.el7 ################################# [ 29%]
3:cpp-4.8.5-39.el7 ################################# [ 43%]
4:kernel-headers-3.10.0-1062.el7 ################################# [ 57%]
5:glibc-headers-2.17-292.el7 ################################# [ 71%]
6:glibc-devel-2.17-292.el7 ################################# [ 86%]
7:gcc-4.8.5-39.el7 ################################# [100%]
[root@localhost gcc]# libstdc++-devel-4.8.5-39.el7.x86_64.rpm
[root@localhost gcc]# gcc-c++-4.8.5-39.el7.x86_64.rpm
安装perl
安装Openssl需要perl指令
检查是否安装perl
[root@localhost nginx]# perl -v
This is perl 5, version 28, subversion 0 (v5.28.0) built for x86_64-linux
离线安装perl
tar -xzf perl-5.28.0.tar.gz
cd perl-5.28.0
./Configure -des -Dprefix=$HOME/localperl
make
make test
make install
安装openssl
[root@localhost src]# tar -xzvf openssl-fips-2.0.16
[root@localhost src]# cd openssl-fips-2.0.16
[root@localhost openssl-fips-2.0.16]# ./config && make && make install
[root@localhost src]# whereis openssl
openssl: /usr/bin/openssl /usr/lib64/openssl /usr/share/man/man1/openssl.1ssl.gz
[root@localhost src]# openssl version -a
OpenSSL 1.0.2k-fips 26 Jan 2017
安装Pcre
[root@localhost src]# tar -xzvf pcre-8.40
[root@localhost src]# cd pcre-8.40
[root@localhost pcre-8.40]# ./configure && make && make install
[root@localhost src]# rpm -qa pcre
pcre-8.32-17.el7.x86_64
安装zlib
[root@localhost src]# tar -xzvf zlib-1.2.11
[root@localhost src]# cd zlib-1.2.11
[root@localhost zlib-1.2.11]# ./configure && make && make install
[root@localhost src]# rpm -ql zlib
/usr/lib64/libz.so.1
/usr/lib64/libz.so.1.2.7
/usr/share/doc/zlib-1.2.7
/usr/share/doc/zlib-1.2.7/ChangeLog
/usr/share/doc/zlib-1.2.7/FAQ
/usr/share/doc/zlib-1.2.7/README
使用tomcat用户安装nginx
[root@localhost src]# tar -xzvf nginx-1.18.0
[root@localhost src]# cd nginx-1.18.0
[root@localhost nginx-1.18.0]# ./configure --prefix=/home/tomcat/local/nginx
[root@localhost nginx-1.18.0]# .make
[root@localhost nginx-1.18.0]# make install
# 安装后nginx所在目录
[tomcat@localhost conf]$ cd /home/tomcat/local/
[tomcat@localhost local]$ ls
nginx
# 修改所属用户
[root@localhost tomcat]# chown -R tomcat:tomcat local/
# 创建软连接
[root@localhost local]# ln -s /home/tomcat/local/nginx/sbin/nginx /usr/bin/nginx
[root@localhost local]# chown tomcat:tomcat /usr/bin/nginx
# 放开端口80
[root@localhost local]# firewall-cmd --zone=public --permanent --add-port=80/tcp
# 访问80端口转9999端口
[root@localhost local]# firewall-cmd --zone=public --permanent \
--add-forward-port=port=80:proto=tcp:toport=9999
# 重启防火墙
[root@localhost local]# systemctl restart firewalld
nginx开机启动
[root@localhost ~]# vi /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/home/tomcat/local/nginx/sbin/nginx
ExecReload=/home/tomcat/local/nginx/sbin/nginx -s reload
ExecStop=/home/tomcat/local/nginx/sbin/nginx -s quit
#PrivateTmp=true
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target
[root@localhost ~]# systemctl enable nginx