nginx安装及遇到的问题
将采用用root用户安装,采用源代码编译的方式来进行安装。
一、傻瓜式安装
1.下载nginx、pcre(可使用wget命令下载)
nginx-1.14.0.tar.gz(版本自选,下载方式在最后)
pcre-8.42.tar.gz(版本自选,下载方式在最后,注意不要选用pcre2-xx系列版本,好像不兼容,我第一次就是使用pcre2系列版本,编译不了)
2.安装编译工具及库文件
2.1 执行以下命令,安装编译工具及库文件(centos系统)
yum -y install make zlib zlib-devel gcc gcc-c++ libtool openssl openssl-devel pcre pcre-devel
2.2 离线环境的处理
如果是离线环境,执行以上命令可能会报错。需挂载ios,更换yum源(本文采用centos7.5的ios镜像),具体操作如下:
上传镜像文件至/urs/software文件夹下(路径可自选)
创建挂载点
#mkdir /var/cdrom
挂载文件
#mount -o loop /usr/software/ CentOS-7-x86_64-DVD-1511.iso /var/cdrom
修改yum源
#cd /etc/yum.repos.d
#mv CentOS-Base.repo CentOS-Base.repo.bak
#cp CentOS-Media.repo CentOS-Media.repo.bak
#vim CentOS-Media.repo
更新yum缓存
#yum clean all #清除缓存
#yum makecache #建立新缓存
挂载完成,yum测试
#yum list all
再次执行2.1的命令
(进行gcc安装
#yum install gcc
安装g++
#yum install gcc-c++)
3.安装PCRE
解压缩pcre
# tar -zxvf pcre-8.42.tar.gz
进入安装包目录
# cd pcre-8.42
编译安装
# ./configure&&make&&make install
查看pcre版本
# pcre-config --version
4.安装nginx
解压缩nginx(源码结构参见附录)
# tar -zxvf nginx-1.14.0.tar.gz
进入安装包目录
# cd nginx-1.14.0
编译安装
# /configure --prefix=/usr/local/nginx --with-http_ssl_module --with-pcre=../pcre-8.42 --with-zlib=../zlib-1.2.11 --with-openssl=../openssl-1.1.0h
# make&&make install
查看nginx版本
# cd /usr/local/nginx/sbin
# ./nginx -V
5.测试nginx是否安装成功
nginx启动
# cd /usr/local/nginx/sbin
# ./nginx
如果出现以下报错,则代表80端口正在被占用。
nginx [emerg] bind() to 0.0.0.0:80 failed(98:address already in use)
需要进行如下处理
ps -e | grep nginx #查看是否已经启动了nginx
netstat -ltunp #查看0.0.0.0:80端口谁占用了
kill -9 <targetPID> #关掉对应的进程
浏览器访问如:http://192.168.11.201/
如果能正常显示nginx首页,则表示安装成功
或者使用 links http://localhost/ #或者本机的IP地址 访问
如果能正常显示nginx首页,则表示安装成功。
nginx关闭
ps –ef|grep nginx
kill -QUIT 主进程号(上面ps命令看到的带master字样的进程号)
二、详细安装
1.需下载的文件
(以下安装包的下载,参照附录)。下载好后上传到服务器,路径自定义(root/nginx)
pcre 用于url rewrite。zlib用于gzip压缩。openssl用于后续可能升级到https时使用。
2.安装编译工具
2.1检查gcc、g++是否安装:
gcc --version
g++ --version
2.2 GCC、G++安装
2.2.1联网安装
如果服务器具备联网条件,可以使用联网安装
安装gcc
yum -y install gcc
安装g++
需要注意的是安装的命令是gcc-c++而不是g++
yum -y install gcc-c++
2.2.2离线安装(以下是centos7.2为列,其他版本参照本文最后)
离线安装环境:centos7.2
解压centos7.2的ios镜像文件。从Packages文件夹中找到如下文件。并上传到服务器。(不包括其中的install.sh)
2.2.3 挂载镜像,更改yum源(参照一)
3.pcre安装
执行如下命令:
# tar -zxvf pcre-8.42.tar.gz
# cd pcre-8.42/
# ./configure
# make
# make install
(也可以使用 ./configure&&make&&make install)
4.zlib安装
执行如下命令:
# tar -zxvf zlib-1.2.11.tar.gz
# cd zlib-1.2.11/
# ./configure&&make&&make install
5.openssl安装
执行如下命令:
# tar -zxvf openssl-1.1.0h.tar.gz
# cd openssl-1.1.0h/
# ./config&&make&&make install
6.nginx安装
执行如下命令:
# tar -zxvf nginx-1.14.0.tar.gz
# cd nginx-1.14.0/
# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-pcre=../pcre-8.42 --with-zlib=../zlib-1.2.11 --with-openssl=../openssl-1.1.0h
# make&&make install
7.测试是否安装成功(参照一)
附录:
CentOS6.8离线安装GCC(https://blog.****.net/lkl_****/article/details/72974595)
离线安装需要下载的rpm包有:
ppl-0.10.2-11.el6.x86_64.rpm
cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
mpfr-2.4.1-6.el6.x86_64.rpm
cpp-4.4.7-17.el6.x86_64.rpm
kernel-headers-2.6.32-642.el6.x86_64.rpm
glibc-headers-2.12-1.192.el6.x86_64.rpm
glibc-devel-2.12-1.192.el6.x86_64.rpm
libgomp-4.4.7-17.el6.x86_64.rpm
gcc-4.4.7-17.el6.x86_64.rpm
libstdc++-devel-4.4.7-17.el6.x86_64.rpm
gcc-c++-4.4.7-17.el6.x86_64.rpm
Centos6.8安装:
安装命令: rpm -ivh *.rpm
有些是已安装好的会提示已安装无需在意 继续安装
安装顺序:
rpm -ivh kernel-headers-2.6.32-642.el6.x86_64.rpm
rpm -ivh libgomp-4.4.7-17.el6.x86_64.rpm
rpm -ivh libstdc++-devel-4.4.7-17.el6.x86_64.rpm
rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm
rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm
rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
rpm -ivh cpp-4.4.7-17.el6.x86_64.rpm
rpm -ivh glibc-devel-2.12-1.192.el6.x86_64.rpm
rpm -ivh glibc-headers-2.12-1.192.el6.x86_64.rpm
rpm -ivh gcc-4.4.7-17.el6.x86_64.rpm
rpm -ivh gcc-c++-4.4.7-17.el6.x86_64.rpm
测试
gcc -v
出现版本信息则说明安装成功!
离线安装环境:centos6.5
下载后,把安装包解压到服务器上,找到以下安装包,按顺序执行安装
#rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm
#rpm -ivh mpfr-2.4.1-6.el6.i686_64.rpm
#rpm -ivh cpp-4.4.7-17.el6.x86_64.rpm
#rpm -ivh libgompcdec-1.2.6-6.1.el6.x86_64.rpm
#rpm -ivh glibc-headers-2.12-1.132.el6.x86_64.rpm
#rpm -ivh glibc-devel-2.12-1.132.el6.x86_64.rpm
#rpm -ivh gcc-4.4.7-4.el6.x86_64.rpm
#rpm -ivh gcc-c++-4.4.7-4.el6.x86_64.rpm
安装遇到问题也可以下命令强制安装
#rpm –Uvh *.rpm --nodeps --force
离线安装gcc(CentOS7)(https://www.cnblogs.com/sybblogs/p/5717392.html)
安装Redis时,需要使用gcc。如果系统是联网的,那么直接使用如下命令联网安装。
yum -y install gcc
但是如果系统不可联网,那么就需要一种离线安装的方式了。步骤如下:
1. 从CentOS7的系统安装镜像中取出需要的rpm包(也可以通过别的方式获取):解压镜像文件,进入"Packages"目录,里面很多rpm包,取出如下几个:
mpfr-3.1.1-4.el7.x86_64.rpm
libmpc-1.0.1-3.el7.x86_64.rpm
kernel-headers-3.10.0-123.el7.x86_64.rpm
glibc-headers-2.17-55.el7.x86_64.rpm
glibc-devel-2.17-55.el7.x86_64.rpm
cpp-4.8.2-16.el7.x86_64.rpm
gcc-4.8.2-16.el7.x86_64.rpm
2. 将这些包上传到待安装的系统中,按如下顺序执行安装命令:
rpm -ivh mpfr-3.1.1-4.el7.x86_64.rpm
rpm -ivh libmpc-1.0.1-3.el7.x86_64.rpm
rpm -ivh kernel-headers-3.10.0-123.el7.x86_64.rpm
rpm -ivh glibc-headers-2.17-55.el7.x86_64.rpm
rpm -ivh glibc-devel-2.17-55.el7.x86_64.rpm
rpm -ivh cpp-4.8.2-16.el7.x86_64.rpm
rpm -ivh gcc-4.8.2-16.el7.x86_64.rpm
也可以使用如下命令统一安装:
rpm -Uvh *.rpm --nodeps --force
3. 都安装成功后,验证
gcc -v
Zlib下载地址:http://www.zlib.net/
Pcre 下载地址:https://sourceforge.net/projects/pcre/
nginx的下载地址:http://nginx.org/download/
nginx源码结构:
了解一下nginx源码文件结构:
contrib ---geo2nginx模块
Configure ---该文件包含编译Nginx所需的所有配置细节和参数。 执行该文件将创建一个Makefile。
conf ---Nginx配置文件,如nginx.conf和fastcgi.conf。
src ---nginx的源代码,html,邮件等
man ---Nginx的所有手册页
html ---网站根位置默认配置文件index.html和50x.html文件。
Auto ---包含不同的配置选项,像那些将被默认安装模块的模块文件,选项文件,其中包括不同的配置选项,等等。
注:以上资料根据多份资料整理。
参考资料如下: