如何在Linux环境下安装Nginx
背景
我的Linux机器环境是CentOS release 6.8 (Final)。如何查看自己的服务器版本?
查看当前linux服务器运行的系统名称及版本:
# cat /etc/*-release
在动手之前,应该先看看服务器是否已经装好了Nginx
可以用一下whereis命令看看能否查出相关的文件
# whereis nginx
nginx: /usr/sbin/nginx /etc/nginx /usr/lib64/nginx
如果能查询到nginx相关的路径(如上反馈),则你的机器可能已经安装好了nginx,先别着急安装了,去看看现在装好的nginx是否可用。
使用源码编译的方式安装Nginx
nginx也可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息。
安装ngnix的前置条件是, 安装一下三个库:
- pcre
- zlib
- openssl
目前这三个库的稳定版本为(2016年12月19日): - pcre-8.38
- zlib-1.2.8
- openssl-1.0.1t
在安装这三个库之前还要确认一下是否安装好了gcc/g++/make等一系列的编译环境。下面我们一步一步开始安装。
开始安装
- 安装gcc g++ 等一系列的编译环境
CentOS版:
- 安装make:
yum -y install gcc automake autoconf libtool make
- 安装g++:
yum install gcc gcc-c++
Ubuntu版:
apt-get install build-essential
apt-get install libtool
- 安装PCRE库,为了重写rewrite
本文选定我们的安装目录为 /usr/local/src
cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz
tar -zxvf pcre-8.38.tar.gz
cd pcre-8.38
./configure
make
make install
- 安装zlib库,为了gzip压缩
cd /usr/local/src
wget http://zlib.net/zlib-1.2.8.tar.gz
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
make install
- 安装SSL
cd /usr/local/src
wget https://www.openssl.org/source/openssl-1.0.1t.tar.gz
tar -zxvf openssl-1.0.1t.tar.gz
- 安装Nginx
下面是把Nginx安装到 /usr/local/nginx目录下
cd /usr/local/src
wget http://nginx.org/download/nginx-1.4.2.tar.gz
tar -zxvf nginx-1.4.2.tar.gz
cd nginx-1.4.2
这个./configure命令比较长,我单独拿出来给大家看,注意版本号
./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/usr/local/src
/pcre-8.38 --with-zlib=/usr/local/src
/zlib-1.2.8 --with-openssl=/usr/local/src
/openssl-1.0.1t
make
make install
6.启动确保系统的 80 端口没被其他程序占用
netstat -ano|grep 80
运行/usr/local/nginx/nginx 命令来启动 Nginx
sudo /usr/local/nginx/nginx
打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功。
接下来可以去配置Nginx了:(如何配置? google Nginx配置文件)
vim /usr/local/nginx/conf/nginx.conf
修改好配置,需要重新reload一次:
/usr/local/nginx/sbin/nginx -s reload
最后提一点我本人在安装时遇到的一个特别坑的事情。
我把工程文件放在/root文件夹下,然后页面一直提示一个403错误。
这个错误有两个原因:1 找不到指定的index.html 2 没有访问权限。
找半天才发现,在CentOS下,Nginx默认是没有/root的访问权限的, 之后把工程文件换了一个目录才搞定。
Tips: 工程文件尽量不要放/root等文件夹下面
参考文章地址:http://www.nginx.cn/install
本文纠正了很多原文章的错误,主要集中在各种版本号的问题。