Linux安装nginx

  • 序言
  • 参考的文章:[Nginx安装与使用]()
  • 一、下载依赖包
  • 下载说明
  • 二、解压
  • 三、安装nginx
  • 1、进入解压后的nginx的目录
  • 2、创建安装目录
  • 3、编译nginx的安装目录
  • 4、安装nginx
  • 四、修改配置文件
  • 五、查看版本和检测
  • 1、查看版本
  • 2、检测
  • 六、启动nginx
  • 七、遇到的坑
  • 1、nginx的版本
  • 2、下载依赖包
  • 3、编译nginx
  • 八、补充nginx的相关命令
  • 1、停止nginx
  • 2、nginx重新加载
  • 九、安装过程中可能遇到的问题


序言

由于测试环境的nginx是已经搭建完成的,把搭建完成的nginx打包后传到生产的主机上,在sbin目录下测试nginx,就会报错找不到路径,所以我决定自己重新安装,于是经过不断的踩坑和请教,诞生了这篇文章。

参考的文章:Nginx安装与使用

一、下载依赖包

nginx:http://nginx.org/en/download.html (版本:nginx-1.16.1 tar.gz)
pcre:https://sourceforge.net/projects/pcre/files/pcre/8.41/(版本:pcre-8.41.tar.gz)
zlib:http://www.zlib.net/(版本:zlib-1.2.11.tar.gz)
oppenssl:https://www.openssl.org/source/(版本:openssl-1.1.1g.tar.gz)

下载说明

我之所以没有在生产中用yum或wget,是由于用不了,所以只能下载到本地后传到生产中。

1、下载zlib的位置:

linux离线环境下载iotop包后放在哪个路径下 离线安装linux_Nginx


2、下载openssl:

linux离线环境下载iotop包后放在哪个路径下 离线安装linux_依赖包_02

二、解压

tar -zxvf nginx-1.16.1.tar.gz
tar -zxvf openssl-1.1.1g.tar.gz
tar -zxvf pcre-8.41.tar.gz
tar -zxvf zlib-1.2.11.tar.gz

三、安装nginx

1、进入解压后的nginx的目录

cd  nginx-1.16.1

2、创建安装目录

由于我是安装在普通用户下的,所以需要创建安装目录。
建议:最好是安装在普通目录,
因为:我们这边的规定是:所有生产的nginx都必需在普通用户下编译和启停。

mkdir installs

3、编译nginx的安装目录

./configure  --prefix=/home/nginxsrv/nginx/nginx-1.16.1/installs  --with-pcre=../pcre-8.41   --with-openssl=../openssl-1.1.1g  --with-zlib=../zlib-1.2.11

4、安装nginx

make && make install

四、修改配置文件

cp  nginx.conf  nginx.conf.bak.fanhf.202006021600.orig
vim  nginx.conf

先备份原来的,再将端口号80修改为8081
修改后的部分配置如下:

server {
        listen       8081;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

nginx.conf只修改了端口号,其他的不曾做任何修改!

五、查看版本和检测

1、查看版本

cd /home/nginxsrv/nginx/nginx-1.16.1/installs/sbin
./nginx -V

显示:

nginx version: nginx/1.16.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) 
configure arguments: --prefix=/home/nginxsrv/nginx/nginx-1.16.1/installs --with-pcre=../pcre-8.41 --with-openssl=../openssl-1.1.1g --with-zlib=../zlib-1.2.11

2、检测

./nginx -t

显示:

nginx: the configuration file /home/nginxsrv/nginx/nginx-1.16.1/installs/conf/nginx.conf syntax is ok
nginx: configuration file /home/nginxsrv/nginx/nginx-1.16.1/installs/conf/nginx.conf test is successful

六、启动nginx

cd /home/nginxsrv/nginx/nginx-1.16.1/installs/sbin
./nginx

查看启动情况:

linux离线环境下载iotop包后放在哪个路径下 离线安装linux_Nginx_03

七、遇到的坑

1、nginx的版本

我原本在测试环境用的是nginx-1.9.9的版本,而且是没有问题的,但是同事说还是用1.16.1的版本,比较稳定,所以就改成了1.16.1。

2、下载依赖包

由于下载的prce是最新版本的pcre2-10.33.tar.gz,而不是pcre-8.41.tar.gz,导致在nginx的解压目录下执行:make && make install 的时候报错:

src/core/ngx_regex.h:15:18: fatal error:pcre.h No such file or directory

于是查了一下,参考了这篇文章说是要把pcre的版本降低,于是就是改为pcre-8.41.tar.gz,解压后,重新编译和安装,就可以了。

3、编译nginx

在第一次编译nginx的时候,
编译指令:

./configure --prefix=/home/nginxsrv/nginx/nginx-1.16.1/installs

报错如下:

./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个依赖包,然后就想着把这3个依赖包都编译和安装,但是反复尝试了之后依旧不行,删了安,安了删,甚至在root里面也试了,都无果。于是问一位大神,他说3个依赖包不需要编译和安装,直接在编译nginx的时候指定3个依赖包的路径就可以,这才安装成功。

八、补充nginx的相关命令

1、停止nginx

cd /home/nginxsrv/nginx/nginx-1.16.1/installs/sbin
./nginx  -s stop

2、nginx重新加载

cd /home/nginxsrv/nginx/nginx-1.16.1/installs/sbin
./nginx –s reload

至此,nginx的安装和配置就完成了,关于nginx的配置还有其他的一些内容,我这里就不赘述了,网上有很多资料,可自行查找和学习。

九、安装过程中可能遇到的问题

解决nginx: [error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory)错误

nginx: [emerg] open() “/usr/local/nginx/logs/access.log” failed (21: Is a directory)

Nginx的安装,以及总是出现找不到pcre library的解决方法

与君共勉!!!