Linux安装nginx centos和ubuntu不同方式与异常情况处理
nginx安装过程
1、文件下载
方式1、官网下载安装包
http://nginx.org/download/nginx-1.18.0.tar.gz
方式2、使用命令下载
执行【wget https://nginx.org/download/nginx-1.18.0.tar.gz】命令就可以完成下载啦。
2、文件解压
tar -zxvf nginx-1.18.0.tar.gz
3、文件安装
3.1、执行编译命令
进入解压后nginx-1.18.0目录执行nginx编译命令
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-pcre --with-http_realip_module --with-http_gzip_static_module
命令是用于配置 Nginx Web 服务器的编译选项。这个命令包含了多个选项,每个选项都用于启用 Nginx 的特定功能或模块。下面是每个选项的含义:
./configure
: 这是配置脚本的调用,用于设置编译参数。--prefix=/usr/local/nginx
: 指定安装 Nginx 的前缀目录,这里是/usr/local/nginx
。--with-http_ssl_module
: 启用 SSL 模块,允许 Nginx 使用 HTTPS 协议。--with-http_v2_module
: 启用 HTTP/2 模块,支持 HTTP/2 协议。--with-http_stub_status_module
: 启用 HTTP 状态模块,允许访问 Nginx 的状态信息。--with-pcre
: 启用 PCRE 库支持,用于正则表达式匹配。--with-http_realip_module
: 启用 RealIP 模块,用于获取客户端的真实 IP 地址。--with-http_gzip_static_module
: 启用静态文件的 Gzip 压缩模块,用于压缩静态文件以减少传输数据量。
这个命令通常在从源代码编译 Nginx 时使用,确保编译出的 Nginx 包含了所需的模块和功能。在使用此命令之前,请确保您已经安装了所有必要的依赖项,并且已经下载了 Nginx 的源代码
出现以下内容代表完成
3.2、执行进行安装命令
make && make install
4、验证版本
cd /usr/local/nginx/sbin
./nginx -v
5、修改配置
cd /usr/local/nginx/conf
此目录下的nginx.conf 即是配置文件,对此调整或者覆盖即可。
6、常用相关指令
启动 ./nginx
停止 ./nginx -s stop
重读配置文件 ./nginx -s reload
(不建议使用,存在重启配置无效或者端口被占用不写错误日志无法发现)
测试配置文件是否修改正确 ./nginx -t
nginx异常状况
异常一、error: C compiler cc is not found
在3.1、执行编译命令时报错,代表系统无法找到 C 编译器。这通常意味着没有安装 C 编译器
checking for OS
+ Linux 5.15.0-41-generic x86_64
checking for C compiler ... not found
./configure: error: C compiler cc is not found
1、安装 PCRE 库及其开发文件,这对于编译和运行依赖 PCRE 的软件(如 Nginx)是必需的。不同之处在于它们分别用于不同的 Linux 发行版和使用不同的包管理器
centos:
yum -y install pcre*
ubuntu:
sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev
2、检查ggc版本
gcc --version
若无法找到,则执行以下指令进行安装
centos:
yum -y install gcc gcc-c++ kernel-devel
ubuntu:
sudo apt-get install gcc
至此,此异常解决
异常二、error: SSL modules require the OpenSSL library.
在3.1、执行编译命令时报错,在编译支持 SSL 功能的软件(如 Nginx)时,需要 OpenSSL 库。SSL(安全套接层)是一种安全协议,用于在互联网上加密数据传输,而 OpenSSL 是一个开源的实现 SSL 和 TLS 协议的库。
要解决这个问题,你需要确保 OpenSSL 库已经安装在你的系统上。以下是安装 OpenSSL 库的步骤:
Ubuntu,使用以下命令安装 OpenSSL 库:
sudo apt-get update
sudo apt-get install libssl-dev
CentOS,使用以下命令安装 OpenSSL 库:
sudo yum -y install openssl-devel
异常三、the HTTP gzip module requires the zlib library.
安装 zlib 库:如果你希望启用 gzip 模块,你需要安装 zlib 库。对于基于 Debian 的系统,使用以下命令:
sudo apt-get update
sudo apt-get install zlib1g-dev
对于基于 Red Hat 的系统,使用以下命令:
sudo yum -y install zlib-devel
异常四: objs/Makefile:868: objs/src/event/ngx_event_openssl.o
3.2、执行进行安装命令时,出现以下报错内容
all warnings being treated as errors
make[1]: *** [objs/Makefile:868: objs/src/event/ngx_event_openssl.o] Error 1
此问题为nginx版本不兼容openssl3系列版本,虽然可以通过一些方式降低版本来兼容,但更推荐升级到nginx1.25以上的版本(我升级了nginx-1.26.0版本)。重新编译安装即可
nginx-1.26.0地址:
https://nginx.org/download/nginx-1.26.0.tar.gz
至此安装结束
另外公众号建立了AI应用、学习面试资料、各类资源资讯的知识库和开发便捷工具箱,旨在一起打破信息壁垒,消除信息差。欢迎大家关注 程序技术新视野 微信公众号!
如果觉得不错,随手点个赞、收藏吧。
如果想第一时间收到推送,也可以给我个关注 ⭐
谢谢你看我的文章 ~