在Linux下,我们虽然可以使用包管理器直接安装Nginx,但是如果想要是最新的版本,那还是需要通过源码安装。源码安装Nginx的过程非常简单,今天就以Debian系统为例进行介绍。
1,下载Nginx源代码并解压
在官网下载源代码:
可以看到上述有两个版本:
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
如图说明配置检查成功:
可见这些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