Linux下编译安装nginx

技术知识
0 1732
小师傅 小师傅2017-12-22
积分:2397

在编译安装nginx之前,需要预先安装一下编译器及一些模块依赖库。

GCC编译器及相关工具:GCC全称为GNU Compiler Collection,是GNU社区推出的功能强大、性能优越的用于编程开发的自由编译器,目前可以编译的语言包括:C、C++、Objective-C、java等。在安装nginx之前,必须确保系统已经安装了GCC编译器。
另外,还必须安装Autoconf和Automake工具,它们用于自动创建功能完善的Makefile。安装这些工具可以用yum命令安装:

yum -y install gcc gcc-c++ autoconf automake

模块依赖性:nginx下一些模块需要其他第三方库,比如rewrite模块需要pcre库,ssl功能需要openssl库的。用yum命令安装这些依赖库:

yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
下载nginx源码包来安装(可以去官网下载:http://nginx.org/):
tar -zxvf nginx-1.x.xx.tar.gz //解压
cd nginx-1.x.xx   //打开解压文件夹
./configure   //指定安装选项
make   //编译成二进制
make install  //真正安装

上面安装是默认安装,并没有指定nginx的安装位置,一般来说默认安装会被安装到/usr/local/nginx目录下。 在指定安装选项时,你可以通过./configure –help帮助命令来看下编译选项。 备注: nginx的configure命令支持以下参数:(可使用 ./configure –help 命令查看)

--prefix=path    定义一个目录,存放服务器上的文件 ,也就是nginx的安装目录。默认使用 /usr/local/nginx。
 
--sbin-path=path 设置nginx的可执行文件的路径,默认为  prefix/sbin/nginx.
 
--conf-path=path  设置在nginx.conf配置文件的路径。nginx允许使用不同的配置文件启动,通过命令行中的-c选项。默认为prefix/conf/nginx.conf.
 
--pid-path=path  设置nginx.pid文件,将存储的主进程的进程号。安装完成后,可以随时改变的文件名 , 在nginx.conf配置文件中使用 PID指令。默认情况下,文件名 为prefix/logs/nginx.pid.
 
--error-log-path=path 设置主错误,警告,和诊断文件的名称。安装完成后,可以随时改变的文件名 ,在nginx.conf配置文件中 使用 的error_log指令。默认情况下,文件名 为prefix/logs/error.log.
 
--http-log-path=path  设置主请求的HTTP服务器的日志文件的名称。安装完成后,可以随时改变的文件名 ,在nginx.conf配置文件中 使用 的access_log指令。默认情况下,文件名 为prefix/logs/access.log.
 
--user=name  设置nginx工作进程的用户。安装完成后,可以随时更改的名称在nginx.conf配置文件中 使用的 user指令。默认的用户名是nobody。
 
--group=name  设置nginx工作进程的用户组。安装完成后,可以随时更改的名称在nginx.conf配置文件中 使用的 user指令。默认的为非特权用户。
 
--with-select_module --without-select_module 启用或禁用构建一个模块来允许服务器使用select()方法。该模块将自动建立,如果平台不支持的kqueue,epoll,rtsig或/dev/poll。
 
--with-poll_module --without-poll_module 启用或禁用构建一个模块来允许服务器使用poll()方法。该模块将自动建立,如果平台不支持的kqueue,epoll,rtsig或/dev/poll。
 
--without-http_gzip_module — 不编译压缩的HTTP服务器的响应模块。编译并运行此模块需要zlib库。
 
--without-http_rewrite_module  不编译重写模块。编译并运行此模块需要PCRE库支持。
 
--without-http_proxy_module — 不编译http_proxy模块。
 
--with-http_ssl_module — 使用https协议模块。默认情况下,该模块没有被构建。建立并运行此模块的OpenSSL库是必需的。
 
--with-pcre=path — 设置PCRE库的源码路径。PCRE库的源码(版本4.4 - 8.30)需要从PCRE网站下载并解压。其余的工作是Nginx的./ configure和make来完成。正则表达式使用在location指令和 ngx_http_rewrite_module 模块中。
 
--with-pcre-jit —编译PCRE包含“just-in-time compilation”(1.1.12中, pcre_jit指令)。
 
--with-zlib=path —设置的zlib库的源码路径。要下载从 zlib(版本1.1.3 - 1.2.5)的并解压。其余的工作是Nginx的./ configure和make完成。ngx_http_gzip_module模块需要使用zlib 。
 
--with-cc-opt=parameters — 设置额外的参数将被添加到CFLAGS变量。例如,当你在FreeBSD上使用PCRE库时需要使用:--with-cc-opt="-I /usr/local/include。.如需要需要增加 select()支持的文件数量:--with-cc-opt="-D FD_SETSIZE=2048".
 
--with-ld-opt=parameters —设置附加的参数,将用于在链接期间。例如,当在FreeBSD下使用该系统的PCRE库,应指定:--with-ld-opt="-L /usr/local/lib"。

自定义安装下参数还有很多,上面只是列出了一部分。 下面介绍一个比较完整自定义安装编译选项例子:

./configure --prefix=/usr --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module

当然你还可以根据需要自己额外指定另外的参数。

精选帖子
Android 可可影视 v3.3.6无广告纯净版 3091
Android QQ音乐 v11.3.7 定制版解锁免费听歌无广告版 3672
Android 草图大师SKP v1.5 解锁会员版 9024
Android OmoFun追漫神器 v4.2.1 无广告绿色版 6066
AdobeGenP Adobe全家桶系列激活工具 v3.5.0/3.4.14.1 绿色版 6647
Android 七猫免费听书 v1.4 解锁高级版 5055
超良心的抢票神器——Bypass1.16 4788
Android 玲珑加速器 v6.10.9.40 解锁无限时间 3441
Android 大师兄影视 v3.3.8 去广告会员版 2568
热门帖子
一键激活Win系统和Office办公软件,最强电脑激活KMS HUE工具,免费永久可用,支持win系统使用 58
得间免费小说 v5.5.8.1 免费网文追书APP 54
酷我音乐 v12.1.8.2 无损音乐播放APP 去广告解锁会员版 51
ChatGPT+Codex电脑自动化课:环境搭建×三大核心实战×全场景应用拓展×AI自主操控电脑×零基础上手 51
豆丁视频 v3.3.0 高清影视播放 免费追剧APP 46
蚂蚁视界 v6.7.0 高清影视追剧APP 全品类视频播放软件 45