编译安装nginx
等一个不爱你的人,就像在机场等一艘船
编译环境
在linux使用make方式安装,需要保证linux已经具备比较OK的编译环境,例如gcc等编译工具。一般而言,服务器提供商在安装的系统中已经默认集成了这些软件,但是为了保险起见,我们还是通过一些较为基础的方式,把这些依赖包都跑一遍,以防在之后的编译中出差错。
1 | yum -y install gcc gcc-c++ autoconf automake libtool make cmake# yum -y install zlib zlib-devel openssl openssl-devel pcre-devel |
创建用来运行nginx的用户及组
我们创建一个新的用户和用户组来运行nginx,这样可以把nginx和root分开,保证nginx不具备root权限。但是,我们并不希望nginx成为一个真实的可以登陆到远程进行操作的用户,所以,我们并不给它创建家目录,在useradd的时候,用-M参数:
1 | groupadd nginx |
-g参数为nginx用户指定了一个组
-M参数保证其不自动生成home目录
禁止用户登陆也很方便,只需要修改配置文件中有关用户和用户组的信息即可。
1 | # vi /etc/passwd |
找到nginx,将后面的/bin/bash
改为/sbin/nologin
即可。
编译安装Nginx
下载
1
wget http://xxxxxxxxxx/nginx1.7.x.tar.gz# tar zxvf nginx1.7.x.tar.gz# cd nginx1.7.x
配置
1
# ./configure --prefix=/usr/local/nginx \--pid-path=/usr/local/nginx/run/nginx.pid \--with-http_ssl_module \--user=nginx \ --group=nginx \--with-pcre \--without-mail_pop3_module \--without-mail_imap_module \--without-mail_smtp_module
说明可以使用
./configure --help
查看一些配置信息编译
1
2make
make install运行
1
2
3cd /usr/local/nginx
ls
sbin/nginx
nginx服务的载入
make编译安装的软件,可不像yum安装的服务,我们熟悉的service命令并不起效,不然你用service nginx restart试试看。这是因为service调用/etc/ini.d/目录下的程序完成,而该目录下并不存在nginx这个程序。那么这个时候怎么重启nginx呢?如下操作:
1 | /usr/local/nginx/sbin/nginx -s reload |
这个操作可以重新加载nginx的配置文件,相当于重启。如果一定要重启整个服务,那只能通过杀死nginx进程,然后在运行程序了。
不过为了使用我们熟悉的service操作, 现在提供一个文件(nginx)
1 | !/bin/bash |
放到/etc/ini.d/目录下,并执行:
1 | chmod +x /etc/init.d/nginx # chkconfig --add nginx# chkconfig nginx on |
这样就可以通过service nginx restart等方法来操作nginx了。