首页 > 系统相关 >【RedHat9.0】使用源代码安装软件——源代码安装nginx

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

时间:2024-03-18 13:59:49浏览次数:45  
标签:http temp -- nginx var path 源代码 安装

如果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软件包

除了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

标签:http,temp,--,nginx,var,path,源代码,安装
From: https://blog.csdn.net/2302_76195174/article/details/136632894

相关文章

  • 安装nodejs 环境
    一、使用NVM安装Node.js1.安装nvm#$curl-o-https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh|bash2.测试是否安装完成#command-vnvm3.列出Node.JS的所有可用版本#nvmls-remote4.列出Node.JS版本的所有最新LTS版本#nvmls......
  • 广州腾讯云代理商:电脑怎么在腾讯云服务器上安装软件
    目录广州腾讯云代理商:电脑怎么在腾讯云服务器上安装软件如何在腾讯云服务器上安装软件腾讯云的优势在腾讯云服务器上安装软件的步骤案例演示总结广州腾讯云代理商:电脑怎么在腾讯云服务器上安装软件简介:飞机@luotuoemo本文由(阿里云国际站代理商:【聚搜云】www.4526.......
  • nginx 正向代理
    环境规划序号IP地址操作系统用途1192.168.174.126(外网)192.168.80.128(内网)ubuntu23.10代理服务器2192.168.80.129(内网)ubuntu23.10Linux客户端软件版本nginx:1.24.0代理模块:proxy_connect_rewrite_102101.patch安装nginx#......
  • Flutter安装
    文档地址:https://docs.flutter.dev/get-started/install/windows/mobile?tab=download#later-starthttps://flutter.cn/community/china下载地址:https://docs.flutter.dev/release/archive?tab=windowshttps://flutter.cn/docs/release/archive?tab=windows1.下载Flutter......
  • Nginx底层基础数据结构
    基础数据结构ngx_int_t32位操作系统4字节,64位操作系统8字节解决跨平台以及,普通int类型在x86和x64操作系统上面是4字节,在类型转换时造成内存浪费(如在x64下面转换long类型)typedefintptr_tngx_int_t;#ifdef_WIN64typedef__int64intptr_t;#elsetype......
  • 解释nginx.conf.default 中关于fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_sc
    在nginx配置中,fastcgi_param指令用于定义传递给FastCGI服务器(如PHP-FPM)的参数。这些参数是FastCGI协议的一部分,用于在nginx和PHP-FPM之间传递关于请求的信息。在给出的配置片段中:nginxfastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name;这一行定义了一个FastCGI......
  • nginx 反向代理注意
    1.Nginx中正则捕获组在proxy_pass中不可用有一个需求,根据不同的路径代理到后端问题出在$1这个正则捕获组上。在Nginx中,正则表达式中的捕获组是根据()定义的,但这个捕获组只在location内部有效,并且不会传递到proxy_pass中。所以当你在proxy_pass中使用$1时,它实......
  • binlog2sql的安装及使用
    binlog2sql的安装及使用binlog2sql的用途:1)数据快速回滚(闪回)2)主从切换后数据不一致的修复3)从binlog生成标准SQL,带来的衍生功能yum-yinstallepel-releaseyum-yinstallgitpython-pipgitclonehttps://github.com/danfengcao/binlog2sql.git&&cdbinlog......
  • 【附下载】3Ds Max从安装、配置到入门提高和高级用法
    #3DsMax一、安装1.1安装说明地址:链接:https://pan.baidu.com/s/1lwKMbgbE32wCL6PpMv706A?pwd=dll8提取码:dll8–来自百度网盘超级会员V2的分享安装说明:文件夹里有安装说明安装解压即可关键就是将crack文件放到自己的安装目录即可1.2安装小技巧尽量新建一个一个......
  • windows 安装beego
    经常搞忘,记录下 在Windows系统中安装Beego框架,您可以按照以下步骤进行:步骤1:安装Go语言确保您已安装了适用于Windows的Go编程环境。访问Go官方网站下载并安装最新稳定版的Go。步骤2:配置GOPATH和环境变量在安装Go后,设置GOPATH环境变量指向您的工作区目录(例如C:\go_workspace......