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
相关文章
|
8月前
|
Ubuntu Linux
计算机基础知识:linux系统怎么安装?
在虚拟机软件中创建一个新的虚拟机,并选择相应操作系统类型和硬盘空间大小等参数。将下载的 ISO 镜像文件加载到虚拟机中。启动虚拟机,进入安装界面,并按照步骤进行安装。安装完成后,可以在虚拟机中使用 Linux 系统。
|
6月前
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
455 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
6月前
|
消息中间件 Kafka Linux
Linux下安装Kafka 3.9.1
本文介绍Kafka 3.9.1版本的安装与配置,包括通过ZooKeeper或KRaft模式启动Kafka。涵盖环境变量设置、日志路径修改、集群UUID生成、存储格式化及服务启停操作,适用于Linux环境下的部署实践。
902 0
|
8月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
415 5
|
8月前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
8月前
|
Ubuntu 安全 Linux
Linux这5款微型发行版,体积小+精简,比win7运行还快,值得安装
以上5款微型发行版体积小且精简,如果你有台旧电脑,不妨试试?
|
8月前
|
安全 Ubuntu Linux
如何安装Linux操作系统?
此时,您可以选择重新启动计算机,然后从硬盘上的Linux系统启动。以上是一个大致的安装过程。请注意,不同的Linux发行版可能会在细节上有所差异,因此在进行安装之前,请确保您阅读并理解了相应发行版的安装指南或文档。
|
8月前
|
Ubuntu Linux 数据安全/隐私保护
Win10安装Linux子系统教程!如何在Win10系统中安装Ubuntu!
登录系统后,输入cd /返回上一级,然后再输入“ls”查看一下系统文件目录,看看对不对!
|
8月前
|
Ubuntu Linux Shell
手把手教你安装适用于Linux的Windows子系统——Ubuntu
重启完成,你看看重新打开Ubuntu是不是发生了变化,等待几分钟,系统配置完成,根据提示设置用户名和密码即可
下一篇
开通oss服务