【RedHat9.0】使用源代码安装软件——源代码安装nginx

如果yum、rpm软件包不能提供所需的软件,就要考虑源码安装,获取源码包,进行编译安装。

源码安装步骤

1.下载和解压软件包
Linux、UNIX最新的软件通常以源代码打包的形式发布,最常见的是.tar.gz和.tar.bz2两种压缩包格式。下载完源代码包后需要解压缩。

tar -zxvf file.tar.gz
tar -jxvf file.tar.bz2
-j是具有bzip2属性,即需要用bzip2格式压缩和解压缩
-z是具有gzip的属性,即需要用gzip格式压缩和解压缩

完成压缩后,进入解压后的目录下,查阅INSATALL和README等相关帮助文档,了解软件安装要求、软件的工作项目、安装参数和配置技巧等。安装的帮助文档也很说明要按照的依赖性软件。依赖性软件的安装很有必要,是成功安装源代码包的前提。

2.执行configure生成编译配置文件Makefile
源代码需要编译成二进制代码再进行安装。自动编译需要Makefile
3.执行make命令编译源代码
make会根据Makefile文件中的设置对源代码进行编译并生成可执行的二进制文件。运行gcc将源代码编译成为可执行的目标文件,但这些文件通常还需要连接一些函数库才能产生一个完整的可执行文件。
4.执行make install安装软件
make只是生成可执行文件,要将可执行文件安装到系统中,还需要执行make install命令。执行make install安装软件;执行make clean命令卸载。

执行configure脚本
使用make命令
执行make install命令
源代码
生成Makefile文件
可执行的二进制文件
安装软件

这里以源代码安装nginx为例

    • (一)下载和解压nginx软件包
      • 1、上传
      • 2、解压缩
    • (二)执行configure生成编译配置文件Makefile
      • 1、 阅读相关的帮助文件
      • 2、执行configure脚本,安装相应的库函数。
    • (三)执行make命令编译源代码
    • (四)执行make install安装软件并开启nginx

(一)下载和解压nginx软件包

除了Apache,Linux系统中还常常使用另一款web服务器软件nginx。最新版本的nginx是以源代码形式发布的,可以到其官网上下载Linux版本相应的源代码包,有tar.gz和zip两种格式,这里下载tar.gz格式的源代码包,文件以nginx-version.tar.gz命名,version代表版本号,例中稳定版本是1.24。

1、上传

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、解压缩

  • 将源代码包解压到/usr/local目录下
[root@localhost ~]# tar -xvf /home/ley/nginx-1.24.0.tar.gz -C /usr/local          
[root@localhost ~]# cd /usr/local/
[root@localhost local]# ls -al

在这里插入图片描述

进入/usr/local下查看

在这里插入图片描述
解压完成!!!

(二)执行configure生成编译配置文件Makefile

执行configure生成编译配置文件Makefile的过程是一个解决报错的过程,缺失什么库函数就安装下载,因为configure脚本不同所缺失的库文件不同,这里的configure脚本缺失C编译器、PCRE 库、OpenSSL库、zlib 库,缺少什么库函数就将其安装。

1、 阅读相关的帮助文件

./configure \   
--prefix=/usr/local/nginx \        #指定安装路径
--user=name \         #指定用户权限
--group=name \          #指定运行权限用户组
--pid-path=/var/run/nginx/nginx.pid \        #设置了 PID(进程 ID)文件的路径
--error-log-path=/var/log/nginx/error.log \     #设置了错误日志文件的路径,Nginx 将其错误消息写入此文件。
--http-log-path=/var/log/nginx/access.log \         #指定了 HTTP 访问日志文件的路径
--with-http_gzip_static_module \				#表示启用GZIP功能
--http-client-body-temp-path=/var/temp/nginx/client \      #设置了一个临时目录的路径,用于存储客户端请求体文件
--http-proxy-temp-path=/var/temp/nginx/proxy \       #设置了一个临时目录的路径,用于存储与代理相关的临时文件。
--with-http_stub_status_module \          #支持nginx状态查询
--with-http_ssl_module \				#表示启用SSL支持

2、执行configure脚本,安装相应的库函数。

[root@localhost ~]# cd /usr/local/nginx-1.24.0/    #得进入nginx-1.24.0的目录下执行脚本
#下面执行congfigure脚本
[root@localhost nginx-1.24.0]# ./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_gzip_static_module --http-client-body-temp-path=/var/temp/nginx/client --http-proxy-temp-path=/var/temp/nginx/proxy --http-fastcgi-temp-path=/var/temp/nginx/fastcgi --http-uwsgi-temp-path=/var/temp/nginx/uwsgi --http-scgi-temp-path=/var/temp/nginx/scgi --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module
checking for OS
 + Linux 5.14.0-70.22.1.el9_0.x86_64 x86_64
checking for C compiler ... not found

./configure: error: C compiler cc is not found

在这里插入图片描述

C编译器缺失报错!!!

错误:信息提示说没有找到 C 编译器。在编译 Nginx 或其他软件时,你需要一个 C 编译器,通常是 gcc。在大多数 Linux 发行版中,gcc 可以通过包管理器安装。在系统上,需要安装 gcc 和相关的开发工具和库。

[root@localhost nginx-1.24.0]# yum install gcc-c++

在这里插入图片描述

下载完成后重新执行configure脚本

[root@localhost nginx-1.24.0]# ./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_gzip_static_module --http-client-body-temp-path=/var/temp/nginx/client --http-proxy-temp-path=/var/temp/nginx/proxy --http-fastcgi-temp-path=/var/temp/nginx/fastcgi --http-uwsgi-temp-path=/var/temp/nginx/uwsgi --http-scgi-temp-path=/var/temp/nginx/scgi --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module

在这里插入图片描述
在这里插入图片描述

PCRE 库缺失报错!!!

错误:这是因为HTTP rewrite 模块要求安装PCRE库,您可以使用 --without-http_rewrite_module 禁用该模块选项,或将 PCRE 库安装到系统中,这里执行如下命令,安装PCRE库。

[root@localhost nginx-1.24.0]# yum install -y pcre pcre-devel

在这里插入图片描述

安装PCRE 库后重新执行configure脚本

[root@localhost nginx-1.24.0]# ./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_gzip_static_module --http-client-body-temp-path=/var/temp/nginx/client --http-proxy-temp-path=/var/temp/nginx/proxy --http-fastcgi-temp-path=/var/temp/nginx/fastcgi --http-uwsgi-temp-path=/var/temp/nginx/uwsgi --http-scgi-temp-path=/var/temp/nginx/scgi --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module

在这里插入图片描述

OpenSSL库缺失报错!!!

错误:SSL 模块需要 OpenSSL 库。您可以不启用这些模块,也可以安装 OpenSSL 库到系统中,或从源代码静态构建 OpenSSL 库。这里执行如下命令,安装OpenSSL库。

[root@localhost nginx-1.24.0]# yum install -y openssl openssl-devel

在这里插入图片描述

安装完OpenSSL库后重新执行configure脚本

[root@localhost nginx-1.24.0]# ./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_gzip_static_module --http-client-body-temp-path=/var/temp/nginx/client --http-proxy-temp-path=/var/temp/nginx/proxy --http-fastcgi-temp-path=/var/temp/nginx/fastcgi --http-uwsgi-temp-path=/var/temp/nginx/uwsgi --http-scgi-temp-path=/var/temp/nginx/scgi --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module

在这里插入图片描述

zlib 库缺失报错!!!

错误:HTTP gzip 模块需要 zlib 库。您可以使用 --without-http_gzip_module 禁用该模块选项,或者将 zlib 库安装到系统中,或者构建 zlib 库。这里执行如下命令,安装zlib库。

[root@localhost nginx-1.24.0]# yum install -y zlib zlib-devel

在这里插入图片描述

安装完zlib 库后重新执行configure脚本

[root@localhost nginx-1.24.0]# ./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_gzip_static_module --http-client-body-temp-path=/var/temp/nginx/client --http-proxy-temp-path=/var/temp/nginx/proxy --http-fastcgi-temp-path=/var/temp/nginx/fastcgi --http-uwsgi-temp-path=/var/temp/nginx/uwsgi --http-scgi-temp-path=/var/temp/nginx/scgi --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module

在这里插入图片描述
configure脚本执行完成!!!生成编译配置文件Makeflie

(三)执行make命令编译源代码

make会根据Makefile文件中的设置对源代码进行编译并生成可执行的二进制文件。

[root@localhost nginx-1.24.0]# make

在这里插入图片描述在这里插入图片描述

(四)执行make install安装软件并开启nginx

[root@localhost nginx-1.24.0]# make install

在这里插入图片描述

[root@localhost nginx-1.24.0]# cd -
/usr/local
[root@localhost local]# cd nginx   
[root@localhost nginx]# ll
total 4
drwxr-xr-x. 2 root root 4096 Mar 17 19:20 conf  #存放配置文件
drwxr-xr-x. 2 root root   40 Mar 17 19:20 html   #首页html文件
drwxr-xr-x. 2 root root   36 Mar 17 19:23 sbin    #只执行文件
[root@localhost nginx]# cd sbin
[root@localhost sbin]# mkdir /var/temp/nginx -p   #启动nginx之前,上边将临时文件目录指定为/var/temp/nginx,所以需创建目录/var/temp/nginx/
[root@localhost sbin]# ./nginx       #开启nginx
[root@localhost sbin]# ps -aux| grep nginx   #查看nginx是否启动
root      141164  0.0  0.0   9512   896 ?        Ss   19:24   0:00 nginx: master process ./nginx
nobody    141165  0.0  0.1  13904  4764 ?        S    19:24   0:00 nginx: worker process
root      141167  0.0  0.0 221664  2272 pts/2    S+   19:24   0:00 grep --color=auto nginx
nginx启动成功!!!

在这里插入图片描述

  • 输入IP地址,默认缺省端口为80
    在这里插入图片描述
  • 如果出现没有启动成功,打开不了nginx的欢迎界面,则检查防火墙是否关闭,首先需要关闭防火墙,因为防火墙的默认端口是80,而nginx的缺省端口也是80。
service iptables status     #查看防火墙状态
service iptables stop        #关闭防火墙
  • 或者可以修改nginx的端口号,进入conf目录下,修改nginx.conf配置文件
[root@localhost sbin]# cd -
/usr/local/nginx
[root@localhost nginx]# cd conf
[root@localhost conf]# vim nginx.conf


    server {
        listen       81;            #这里将默认端口80,改成了81
        server_name  localhost;

[root@localhost sbin]# ./nginx -s reload     #修改完配置文件后,刷新配置文件

在这里插入图片描述

在这里插入图片描述

若操作过程中出现其他问题,需自行解决哦。
如有文字表述错误等问题可以在评论区留言告知,谢谢!

【参考文章】
https://zhuanlan.zhihu.com/p/83890573

  • 56
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值