Linux Study Lab !

当前位置:   网站首页 >> Linux 应用实践

编译安装Nginx 1.6.x-1.7.x

除了通过包管理器安装Nginx以外,还可以通过源代码编译安装的方法安装。编译安装的好处是可以自己定义模块的构成和支持,也可以加入第三方模块拓展Nginx的功能,是一种定制化比包安装更好的方式。接下来就Nginx源代码编译安装的步骤和注意事项进行说明。

在编译安装前,首先检查一下CentOS上有没有安装过的Nginx,使用命令

rpm -qa nginx

如果没有结果输出,则目前服务器系统上没有历史残留或予安装的Nginx。


建立Nginx用户以便运行服务(参数-g 为指定用户所属的组,参数-r为创建系统账户,本例中-r后的nginx才是需要创建的用户名,-g后的nginx其实是第一行创建的那个组的名字。)

groupadd -r nginx
useradd -s /sbin/nologin -g nginx -r nginx

然后从nginx.org官方下载nginx编译源码,本文在撰写时官方的版本刚出稳定版是1.6.3,这里我们还是以编译1.6.2为主。通过wget获取源码包后,使用tar -zxvf解压,然后进入解压后的目录,对编译配置进行一些调整

[root@testsrv nginx-1.6.2]# ./configure \
> --prefix=/usr/local/nginx \
> --sbin-path=/usr/local/sbin/nginx \
> --conf-path=/etc/nginx/conf/nginx.conf \
> --pid-path=/usr/local/nginx/logs/nginx.pid \
> --error-log-path=/etc/nginx/logs/error.log \
> --http-log-path=/etc/nginx/logs/access.log \
> --user=nginx \
> --add-module=/tmp/nginx-rtmp-module \
> --with-http_ssl_module  \
> --with-http_flv_module  \
> --with-http_stub_status_module

注意上面的每行命令最后的 \ 一定要输入后再回车,否则即用剩余的默认参数编译nginx。

我们来一行行的分析上面的编译参数:

1、prefix= 这个参数用于定义nginx安装的目录位置

2、sbin-path=这个参数用于定义nginx的二进制可运行文件的位置

3、conf-path=这个显而易见就是指定nginx默认从哪个路径去读取配置文件

4、pid-path=这个用来定义nginx master的进程pid文件存放路径

5、error-log

6、http-log=这两行用于定义日志文件的存放路径

7、user=  group= 用来指定运行nginx worker进程的用户和组,后期也可以在配置文件里修改

8、add-module=是用来加入视频流支持组件,不需要该功能的请不要加这条参数,关于视频流支持以后会专门出文补完教程。这个参数可以用来引入其他第三方模块的支持。

9、with-http_ssl 这个参数用来打开站点对ssl的支持

10、with-http_flv 这个参数用来提供伪流媒体文件支持

11、with-http_stub 用于给各类监控软件提取nginx运行状态数据,比如zabbix等,暂无此要求的建议先不编译这个模块。

================分割线===============

回车后,配置文件会进行予编译,最后使用

make && make install

完成编译,编译后的nginx默认没有出现在系统服务里,需要手动添加两个服务配置文件,这里直接提供下载,如果你更改过上述配置文件的路径,请你下载服务配置文件后打开并按照你的路径编辑好,保存后再上传到自己的服务器环境中。

nginx1.zip 该文件解压后上传至/tmp目录,然后

mv /tmp/nginx /etc/rc.d/init.d/
chown root:root /etc/rc.d/init.d/nginx
chmod 755 /etc/rc.d/init.d/nginx
chkconfig --add nginx
chkconfig nginx on

nginx2.zip上面操作完后,再解压这个文件上传到/tmp目录,然后

mv /tmp/nginx /etc/sysconfig/
chown root:root /etc/sysconfig/nginx
chmod 644 /etc/sysconfig/nginx
sync
reboot

系统重启后,就有了和包安装后一样的service nginx 一系列的服务命令操作功能。


编译参数里的各类目录,路径的指定,可以按照自己的需求来,上面的例子是我一般性在编译时使用的配置,也许并不是最合理的,请大家自行优化哦~如果你不能编译,估计是缺少开发工具组件,比如gcc这类常用的都要装哦,在这个帖子里可以找到开发工具的安装命令等实用信息。



网友评论1

  1. will2015-12-15 22:19:40 回复

    /usr/local/nginx/sbin/nginx

发表我的评论

Hi,您需要填写昵称和邮箱!

  • 必填项