Linux下Nginx的源码编译安装

简介: Linux下Nginx的源码编译安装

在Linux下,我们虽然可以使用包管理器直接安装Nginx,但是如果想要是最新的版本,那还是需要通过源码安装。源码安装Nginx的过程非常简单,今天就以Debian系统为例进行介绍。

1,下载Nginx源代码并解压

官网下载源代码:

image.png

可以看到上述有两个版本:

  • Mainline 主线版本,是最新的版本,即开发版
  • Stable 稳定版

在生产环境下,建议使用最新的Stable version的Nginx。

下载后是一个压缩包,上传到服务器或者Linux系统并解压:

tar -xzvf 下载的源码压缩包路径

2,安装编译必要的库并开始配置

nginx中有很多模块以实现不同的功能,不过默认情况下只有最基本的模块例如转发模块等等。可以根据实际情况选择是最精简编译还是编译全部模块功能。

我也将分这两种情况来说明,大家根据实际情况选择。

(1) 精简编译配置

除了基本功能和https的支持模块,其它模块都不进行编译安装。

先安装依赖库:

sudo apt install gcc make libpcre3-dev zlib1g-dev libssl-dev

然后通过cd命令进入你解压的nginx源码文件夹里,执行构建配置:

./configure --with-http_ssl_module

如图说明配置检查成功:

image.png

可见这些nginx的关键文件要被安装至以下位置:

  • nginx程序主体:/usr/local/nginx/sbin/nginx
  • nginx配置文件目录:/usr/local/nginx/conf
  • 错误日志:/usr/local/nginx/logs/error.log

这些文件位置也可以在上述执行./configure命令时加上参数修改,详情可以见官方文档

(2) 完整编译配置

完整编译将会编译全部的模块,需要安装更多依赖,执行以下命令安装:

sudo apt install gcc make libpcre3-dev libssl-dev zlib1g-dev libxml2-dev libxslt1-dev libgd-dev libgeoip-dev libperl-dev

然后开始配置:

./configure --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-http_perl_module --with-mail_ssl_module --with-stream --with-stream_ssl_module --with-stream_realip_module --with-stream_geoip_module --with-stream_ssl_preread_module

等待配置成功没有报错即可。

3,构建和安装

上述配置完成,就可以执行编译命令了:

make

或者多线程编译:

# 4线程
make -j4

编译完成,执行安装命令:

make install

默认会被安装至/usr/local/nginx,也可以通过DESTDIR路径指定make install时释放程序位置:

make DESTDIR=要释放到的位置 install

不过释放到其它位置nginx可能无法正常运行,除非你要自己制作安装包,否则不推荐这么做。

安装完成,我们可以把nginx可执行主程序文件链接到/usr/bin下使得我们可以使用nginx命令:

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

4,无法运行问题

一般来说由于上述安装了依赖库,对应的运行环境也会自动安装。若编译后nginx无法运行通常是缺少依赖,安装依赖即可。

对于精简编译安装

sudo apt install libc6 zlib1g libpcre3 libssl1.1

对于完整全模块编译安装

sudo apt install libc6 libpcre3 libssl1.1 zlib1g libxml2 libxslt1.1 libgd3 libgeoip1 libperl5.32
相关文章
|
11天前
|
Ubuntu Linux
在Linux (Ubuntu 16) 下安装LabVIEW
在Linux (Ubuntu 16) 下安装LabVIEW
29 0
|
10天前
|
Linux 虚拟化 数据安全/隐私保护
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
|
4天前
|
Web App开发 安全 Linux
Linux系统之安装Firefox浏览器
【7月更文挑战第8天】Linux系统之安装Firefox浏览器
27 8
|
7天前
|
存储 Ubuntu Java
【Linux】已解决:Ubuntu虚拟机安装Java/JDK
【Linux】已解决:Ubuntu虚拟机安装Java/JDK
13 1
|
9天前
|
应用服务中间件 Linux 网络安全
CentOS 7 上安装 Nginx
在 CentOS 7 上安装 Nginx 的步骤包括:添加 EPEL 仓库,安装 Nginx,启动 Nginx,配置防火墙规则,最后通过访问服务器 IP 验证安装是否成功
|
10天前
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
|
4天前
|
Ubuntu 安全 Linux
Linux系统之安装Ninvaders太空入侵者小游戏
【7月更文挑战第9天】Linux系统之安装Ninvaders太空入侵者小游戏
9 0
|
10天前
|
前端开发 应用服务中间件 nginx
安装Windows版nginx以及部署前端代码并就解决刷新出现404
安装Windows版nginx以及部署前端代码并就解决刷新出现404
20 0
|
10天前
|
应用服务中间件 nginx
Ngnix07---通过yum安装Ngnix下 whereis ngnix可以查看Ngnix相关的一些目录,使用./nginx -y可以查看Ngnix版本及相关配置信息,使用 more CHANGES
Ngnix07---通过yum安装Ngnix下 whereis ngnix可以查看Ngnix相关的一些目录,使用./nginx -y可以查看Ngnix版本及相关配置信息,使用 more CHANGES
|
10天前
|
关系型数据库 MySQL Linux
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思