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
相关文章
|
2月前
|
Linux 测试技术 网络安全
Linux系统之安装OneNav个人书签管理器
【10月更文挑战第19天】Linux系统之安装OneNav个人书签管理器
114 5
Linux系统之安装OneNav个人书签管理器
|
2月前
|
监控 Java Linux
Linux系统之安装Ward服务器监控工具
【10月更文挑战第17天】Linux系统之安装Ward服务器监控工具
55 5
Linux系统之安装Ward服务器监控工具
|
20天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
34 5
|
2月前
|
JSON JavaScript Linux
Linux系统之安装cook菜谱工具
【10月更文挑战第15天】Linux系统之安装cook菜谱工具
38 2
Linux系统之安装cook菜谱工具
|
2月前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
151 4
Linux系统之Ubuntu安装cockpit管理工具
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
61 2
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
37 3
|
2月前
|
Ubuntu 应用服务中间件 Linux
Linux下搭建Nginx环境的搭建
Linux下搭建Nginx环境的搭建
|
16天前
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
104 0
|
22天前
|
关系型数据库 MySQL Linux
Linux-安装Mariadb
本文介绍了在 Alibaba Cloud Linux 系统上安装和配置 MariaDB 10.5 的步骤。包括下载安装、初始化数据库、启动服务、处理启动失败的常见问题(如权限问题),以及如何连接数据库、设置密码和允许外部连接。通过这些步骤,您可以顺利完成 MariaDB 的安装和基本配置。
37 0