1、下载nginx安装包:
方式一:wget 安装
1)安装相关依赖:
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
2)wget安装nginx(1.12.0版本):
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
方式二:下载安装包安装
下载安装包地址:nginx: downloadhttp://nginx.org/en/download.html
2、安装nginx:
1)解压:
tar -zxvf nginx-1.12.0.tar.gz
cd nginx-1.12.0
2)编译:
./configure
3)编译安装:
make
make install
4)启动nginx
whereis nginx
cd /usr/local/nginx/sbin/ #进入bin目录
./nginx #启动
./nginx -s stop #此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程
./nginx -s quit #此方式停止步骤是待nginx进程处理任务完毕进行停止
./nginx -s reload #刷新
3、安装nginx遇到的问题:
1)nginx安装中 ./config 或者 make 失败:
解决 :检查上述依赖是否安装完整成功。
执行一遍 yum update 再继续执行。
2)报错“src/os/unix/ngx_user.c:36:7: 错误:‘struct crypt_data’没有名为‘current_salt’的成员” :
src/core/ngx_murmurhash.c: 在函数‘ngx_murmur_hash2’中:
src/core/ngx_murmurhash.c:37:11: 错误:this statement may fall through [-Werror=implicit-fallthrough=]
h ^= data[2] << 16;
~~^~~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:38:5: 附注:here
case 2:
^~~~
src/core/ngx_murmurhash.c:39:11: 错误:this statement may fall through [-Werror=implicit-fallthrough=]
h ^= data[1] << 8;
~~^~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:40:5: 附注:here
case 1:
^~~~
cc1:所有的警告都被当作是错误
make[1]: *** [objs/Makefile:441:objs/src/core/ngx_murmurhash.o] 错误 1
make[1]: 离开目录“/opt/apps/nginx-1.8.1”
解决:进入到nginx目录下(解压的目录)
找到当前目录下找到objs文件夹,并进入,打开文件Makefile,找到有一下内容的这行:
[root@lnmp nginx-1.8.1]# vim objs/Makefile
CFLAGS = -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g
-Werror: gcc将所有的警告当成错误进行处理把这行内容中的 “-Werror”去掉
3)make 或 make install 又遇到新的错误:
src/os/unix/ngx_user.c: 在函数‘ngx_libc_crypt’中:
src/os/unix/ngx_user.c:36:7: 错误:‘struct crypt_data’没有名为‘current_salt’的成员
cd.current_salt[0] = ~salt[0];
^
make[1]: *** [objs/Makefile:721:objs/src/os/unix/ngx_user.o] 错误 1
make[1]: 离开目录“/opt/apps/nginx-1.8.1”
make: *** [Makefile:8:build] 错误 2
直接vim src/os/unix/ngx_user.c把它报错的这一句注释掉:
如果还有类似的错误直接再次注释即可。
4、卸载重装nginx(更换不同的版本):
rm -rf /usr/sbin/nginx
rm -rf /etc/nginx
rm -rf /etc/init.d/nginx
5、启动nginx时遇到的问题(Nginx出现403 forbidden (13: Permission denied)报错):
1)检查nginx配置是否缺少配置文件中index index.html index.htm这行中的指定的文件。
2)将nginx.config的user改为和启动用户一致,重启nginx:
3) 权限问题,如果nginx没有web目录的操作权限,也会出现403错误,进行文件提权:
chmod -R 777 /data/www/
4)SELinux设置为关闭状态(disable):
vi /etc/selinux/config
#SELINUX=enforcing
改为:
SELINUX=disabled
重启生效:
reboot