编译安装——什么是开放源代码编译器与可执行文件——编译安装nginx

Posted xiaoxie_coding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译安装——什么是开放源代码编译器与可执行文件——编译安装nginx相关的知识,希望对你有一定的参考价值。

目录

编译安装nginx

1.下载源码包

2.解压源码包

3.进入解压后的文件夹

4.configure配置 --> 生成Makefile文件

5.make编译然后安装

6.启动nginx

通过 configure 与 make 进行编译示意图


为什么要编译安装?

  • 自己决定功能的多少                                 

  • 可以指定安装路径

哪里可以获得源码包?

  • 官方提供下载

首先理解这三个概念:

开放源代码:就是程序代码,写给人类看的东西,但机器并不认识,所以无法执行

编译器:将程序代码编译成为机器看得懂的语言,就类似翻译者的角色

可执行文件:经过编译器变成的二进制程序,机器看得懂所以可以执行

接下来举例编译安装nginx来讲解这个过程:

编译安装nginx

1.下载源码包

curl -O http://nginx.org/download/nginx-1.19.2.tar.gz

2.解压源码包

tar xf nginx-1.19.2.tar.gz

3.进入解压后的文件夹

[root@localhost nginx-1.19.2]# ./configure --help 可以看相关的帮助

configure 的目的是生成 Makefile 文件

configure 这个脚本会帮我们去检查我们的系统里哪些依赖的软件是否安装,因为开启某些功能,是需要其他软件的支持的。

4.configure配置 --> 生成Makefile文件

相关选项及其意义,以下列举几点使用的,man rpm也可以看到  从源代码构建nginx

--prefix=path

指定安装路径

--with-http_ssl_module

开启ssl功能支持https -> 主流

--with-http_realip_module

使用nginx做负载均衡器的让后端的real server知道是哪个客户机访问过来的

--without-http_gzip_module

不启用gzip压缩功能

--with-pcre

让nginx支持正则表达式

--with-http_stub_status_module          enable ngx_http_stub_status_module 的意思是

  • 开启此功能,默认情况是没有开启的

--without-http_gzip_module                  disable ngx_http_gzip_module

  • 禁用此功能,默认情况下是开启的

用命令生成 Makefile 文件(以下图片内容来自鸟哥的Linux私房菜)

[root@localhost nginx-1.19.2]# ./configure --prefix=/usr/local/nginx --with-http_realip_module --with-http_ssl_module --with-pcre --with-stream

以上是安装成功的样子,可以看到我们Makefile制作成功后有个新文件objs

5.make编译然后安装

(以下图片内容来自鸟哥的Linux私房菜)

make && make install
# 这两个命令也可以分开敲

成功后进入我们之前指定安装好的路径 ,配置在conf,可执行程序在sbin,日志在logs,网页在html

6.启动nginx

[root@localhost sbin]# lsof -i:80 # 此时80端口没有监听进程
[root@localhost sbin]# ./nginx # 在当前目录下启动nginx

[root@localhost sbin]#  /usr/local/nginx/sbin # 绝对路径启动nginx
[root@localhost sbin]# lsof -i:80
COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   4727   root    6u  IPv4  27430      0t0  TCP *:http (LISTEN)
nginx   4728 nobody    6u  IPv4  27430      0t0  TCP *:http (LISTEN)

到这里我们就是安装成功啦,可以关闭防火墙来web访问一下

[root@localhost sbin]# ./nginx -s stop # 编译安装只能这样关闭nginx

问:一台机器是否可以编译安装多个nginx?是否都可以启动?

  • 可以,只要不占用同一个端口就可以,可以再配置文件中修改

通过 configure 与 make 进行编译示意图

卸载:删除安装目录,即直接移除/usr/local/nginx 

升级:以下图片内容来自鸟哥的Linux私房菜

 

以上是关于编译安装——什么是开放源代码编译器与可执行文件——编译安装nginx的主要内容,如果未能解决你的问题,请参考以下文章

2018-04-26 《鸟哥的Linux私房菜 基础学习篇(第四版)》 第21章 软件安装_原始码与Tarball 笔记

GCC命令基础

与可选参数冲突的重载方法

gcc命令

httpd源码编译安装

gcc常用命令