官网下载nginx压缩包,以1.26.1版本为例进行安装。
https://nginx.org/en/download.html
本文的操作步骤是在新目录安装nginx,并以命令方式从新目录启动。所以同时适用于新装nginx或升级nginx到新版本。
编译
把压缩包放在/home/lyz/soft目录下,解压文件
cd /home/lyz/soft
tar -xzvf nginx-1.26.1.tar.gz
进入解压后的目录
cd /home/lyz/soft/nginx-1.26.1
先执行configure生成makefile文件,指定编译目标目录为/home/lyz/nginx/nginx-1.26.1
./configure --prefix=/home/lyz/nginx/nginx-1.26.1 --with-http_ssl_module
正常来说执行时,会显示使用了以下三个库。
如果执行时遇到下图错误,或显示没有使用以上三个库,说明需要安装编译所需的环境依赖,参考下文问题汇总中的办法解决。
执行编译安装
make install
启动
进入编译后目录
cd /home/lyz/nginx/nginx-1.26.1/sbin
按实际需要修改配置文件nginx.conf,默认端口80需要改成1000以上,否则用普通用户启动会报权限不足。
vi /home/lyz/nginx/nginx-1.26.1/conf/nginx.conf
启动,指定配置文件
./nginx -c /home/lyz/nginx/nginx-1.26.1/conf/nginx.conf
打开网页测试
查看nginx版本
./nginx -v
问题汇总
1.安装编译需要的环境依赖
以下是执行configure前,需要安装的依赖:
sudo yum install pcre-devel
sudo yum install zlib-devel
sudo yum install openssl-devel
sudo yum install gcc gcc-c++ autoconf automake
sudo yum install perl-Digest-SHA1.x86_64
2.解决无法安装环境依赖的问题
RedHat系统在安装依赖时遇到以下报错:This system is not registered with an entitlement server. You can use subscription-manager to register.
出现这个错误的原因是你的Redhat木有花钱,可以使用从Redhat演化而来的免费Linux版本CentOS,通过CentOS的yum更新源来实现yum功能。
1、首先,编辑subscription-manager.conf,把enabled值由1改为0,意为禁用 subscription-manager
vim /etc/yum/pluginconf.d/subscription-manager.conf
2、报错There are no enabled repos.提示我们没有可用的repo,那么我们需要进入到/etc/yum.repos.d/中,执行如下命令获取一个linux repo镜像源。
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
3、获取到一个名为CentOS-Base.repo的镜像源后,对$releasever进行全局替换,替换为数字7
sed -i 's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo
4、将repo镜像文件名CentOS-Base.repo名字改为redhat.repo,配置成功
mv CentOS-Base.repo redhat.repo
5、测试
删除无用的镜像源
sed -i '/aliyuncs/d' /etc/yum.repos.d/redhat.repo
清除缓存以及重建元数据。
yum clean all && yum makecache
使用yum repolist all 测试镜像源是否可用。发现可用,即为配置成功。
参考:https://blog.youkuaiyun.com/weixin_44412244/article/details/137000092