Nginx linux 安装

(一)、在线安装nginx依赖包

yum -y install gcczlib zlib-devel pcre-devel openssl openssl-devel

 

以下为离线安装依赖包:

1.离线安装gcc

a.从CentOS7的系统安装镜像中取出需要的rpm包(也可以通过别的方式获取):解压镜像文件,进入"CentOS-7-x86_64-DVD-1708.iso\Packages"目录,里面很多rpm包,取出如下几个:

mpfr-3.1.1-4.el7.x86_64.rpm

libmpc-1.0.1-3.el7.x86_64.rpm

kernel-headers-3.10.0-123.el7.x86_64.rpm

glibc-headers-2.17-55.el7.x86_64.rpm

glibc-devel-2.17-55.el7.x86_64.rpmcpp-4.8.2-16.el7.x86_64.rpm

gcc-4.8.2-16.el7.x86_64.rpm

b.将这些包上传到待安装的系统中【可安装Xftp进行上传】,按如下顺序执行安装命令:

rpm -ivh mpfr-3.1.1-4.el7.x86_64.rpm

rpm -ivh libmpc-1.0.1-3.el7.x86_64.rpm

rpm -ivh kernel-headers-3.10.0-123.el7.x86_64.rpm

rpm -ivh glibc-headers-2.17-55.el7.x86_64.rpm

rpm -ivh glibc-devel-2.17-55.el7.x86_64.rpm

rpm -ivh cpp-4.8.2-16.el7.x86_64.rpm

rpm -ivh gcc-4.8.2-16.el7.x86_64.rpm

也可以使用如下命令统一安装:

rpm -Uvh *.rpm --nodeps --force

都安装成功后,验证

gcc -v

 

2.离线安装g++编译器

a.从CentOS7的系统安装镜像中取出需要的rpm包(也可以通过别的方式获取):解压镜像文件,进入"CentOS-7-x86_64-DVD-1708.iso\Packages"目录,里面很多rpm包,取出如下几个:

autogen-libopts-5.18-5.el7.x86_64.rpm

gcc-c++-4.8.5-16.el7.x86_64.rpm

keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm

krb5-devel-1.15.1-8.el7.x86_64.rpm

libcom_err-devel-1.42.9-10.el7.x86_64.rpm

libsepol-devel-2.5-6.el7.x86_64.rpm

libstdc++-devel-4.8.5-16.el7.x86_64.rpm

libverto-devel-0.2.5-4.el7.x86_64.rpm

ntp-4.2.6p5-25.el7.centos.2.x86_64.rpm

ntpdate-4.2.6p5-25.el7.centos.2.x86_64.rpm

openssl098e-0.9.8e-29.el7.centos.3.x86_64.rpm

openssl-1.0.2k-8.el7.x86_64.rpm

openssl-devel-1.0.2k-8.el7.x86_64.rpm

openssl-libs-1.0.2k-8.el7.x86_64.rpm

pkgconfig-0.27.1-4.el7.x86_64.rpm

tcl-8.5.13-8.el7.x86_64.rpm

zlib-1.2.7-17.el7.x86_64.rpm

zlib-devel-1.2.7-17.el7.x86_64.rpm

b.将这些包上传到待安装的系统中【可安装Xftp进行上传】,使用如下命令统一安装:

rpm -Uvh *.rpm --nodeps --force

都安装成功后,验证

g++ -v

[root@localhost g++]# g++ -v

Using built-in specs.

COLLECT_GCC=g++

COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper

Target: x86_64-redhat-linux

Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux

Thread model: posix

gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC)

3.离线安装PCRE

这是一个表达式库,Nginx中的http模块则使用到了该库来解析正则表达式,所以安装它,自己选择一个路径,这里选择了/usr/local/src

执行命令:

 cd /usr/local/src

 wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz

 tar -zxvf pcre-8.37.tar.gz

 cd pcre-8.34

 ./configure

 make

 make install

注释:

问题1:

执行make时提示“WARNING: 'aclocal-1.14' is missing on your system.”

解决方法:

# touch configure.ac aclocal.m4 configure Makefile.am Makefile.in

4.离线安装zlib

zlib库用于压缩和解压缩,方式众多,Nginx也使用到了zlib,所以继续安装它,路径同样/usr/local/src

执行命令:

wget http://zlib.net/zlib-1.2.11.tar.gz

  tar -zxvf zlib-1.2.11.tar.gz

  cd zlib-1.2.11

  ./configure

  make

  make install

(二)、离线安装Nginx

到目前为止,安装Nginx的环境和库就准备好了,现在安装Nginx

1、安装---执行命令:

cd /usr/local/src

wget http://nginx.org/download/nginx-1.1.10.tar.gz--已经下载好了

tar -zxvf nginx-1.1.10.tar.gz

cd nginx-1.1.10

    ./configure

    make

    make install

    ==>此时安装目录下会生成几个文件夹

    ==>conf    Nginx运行环境配置文件

    ==>html    Nginx中的页面

    ==>logs    Nginx打印的日志

    ==>sbin    Nginx可执行文件,包括启动Nginx等

2、启动Nginx

执行Nginx安装目录下的sbin目录下的nginx,第一个参数指定nginx配置文件路径

   [root@master nginx]# pwd

   /usr/local/nginx

   [root@master nginx]# ./sbin/nginx -c conf/nginx.conf

   如果没什么错误,则表示Nginx启动完成,则可以在访问IP地址:端口,例如:192.168.52.10:8090

3、重启Nginx

  执行Nginx安装目录下的sbin目录下的启动程序,添加参数-s reload

  实例:

 ./sbin/nginx -s reload

4、停止Nginx

pkill -9 nginx # -9

 

注:强制杀死进程,pkill用于杀死一个进程,与kill不同的是它会杀死指定名字的所有进程,类似于killall命令。

 

(三)、在线安装nginx本次使用此种安装

1.安装:

sudo yum install yum-utils          //如果有yum则不用安装

sudo vi /etc/yum.repos.d/nginx.repo  // 创建该文件并添加[nginx-stable] 和 [nginx-mainline]的内容保存

 

[nginx-stable]

name=nginx stable repo

baseurl=http://nginx.org/packages/centos/$releasever/$basearch/

gpgcheck=1

enabled=1

gpgkey=https://nginx.org/keys/nginx_signing.key

module_hotfixes=true

 

[nginx-mainline]

name=nginx mainline repo

baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/

gpgcheck=1

enabled=0

gpgkey=https://nginx.org/keys/nginx_signing.key

module_hotfixes=true

 

// 保存好后安装nginx的stable稳定版

sudo yum install nginx

2.启动nginx

[root@localhost ~] sudo service nginx start

Redirecting to /bin/systemctl start nginx.service

[root@localhost ~] netstat -ntlp | grep 80   // 没有netstat自己安装下 sudo yum install net-tools

tcp  0  0 0.0.0.0:80  0.0.0.0:*   LISTEN  1589/nginx: master  // nginx服务启动,并且监听在80端口

3.测试

在自己的电脑输入 http://ip:80, 出现以下界面则说明安装成功

Welcome to nginx!

 

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

 

For online documentation and support please refer to nginx.org.

Commercial support is available at nginx.com.

 

Thank you for using nginx.

a.如果出现了访问失败,则需要在访问的电脑中进行如下检测

telnet 192.168.0.101 80  // 查看nginx服务器的80端口能不能访问。

b.如果不能访问80端,查看服务器 selinux和firewall 是否开启了

[root@localhost ~] sudo getenforce  // 查看selinux是否开启

enforcing                  // enforecing 则未开启了

[root@localhost ~] vi /etc/selinux/config  // 永久关闭selinux,打开/etc/selinux/config编辑

SELINUX = disabled   // 将 SELINUX = enforcing 改为 disabled

可以重启服务器生效。

c.给firewalld 添加 80 端口

[root@localhost ~] sudo systemctl status firewalld    // 查看firewalld是否开启了

firewalld.service - firewalld - dynamic firewall daemon

   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)

   Active: active (running) since Sun 2019-12-15 23:57:33 CST; 4min 36s ago

     Docs: man:firewalld(1)

 Main PID: 824 (firewalld)

    Tasks: 2 (limit: 4912)

   Memory: 35.4M

   CGroup: /system.slice/firewalld.service

           └─824 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid

 

12月 15 23:57:32 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...

12月 15 23:57:33 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.

出现了上面的说明firewalld已经开启了。

[root@localhost ~] sudo firewall-cmd --zone=public --add-port=80/tcp --permanent  //添加80端口

success

[root@localhost ~] sudo systemctl restart firewalld  // 重启下firewalld

继续测试,应该可以访问成功了。

posted on 2023-01-18 18:11  胖妞的瘦猴  阅读(257)  评论(0编辑  收藏  举报