Centos7编译安装Nginx
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos7编译安装Nginx相关的知识,希望对你有一定的参考价值。
1:检查pcre是否安装,安装pcre库是为了使nginx支持具备URL重写的rewrite模块.openssl是nginx使用https服务要用的模块。
rpm -qa|grep -E ‘pcre|pcre-devel‘ # 如果无返回结果,证明pcre包未安装,使用以下命令下载安装 yum install pcre pcre-devel -y rpm -qa|grep -E ‘openssl|openssl-devel‘ # 如果返回值为空,表示系统尚未安装,安装命令如下 yum install openssl openssl-devel rpm -qa |grep gcc gcc-c++ # 如果未安装gcc,则编译过程中会出现./configure: error: C compiler cc is not found错误 yum install gcc gcc-c++
2:安装nginx1-11-11
wget -q -P /tmp/ # 将nginx指定下载到当前目录下,-q表示断电断续 tar -zxvf /tmp/nginx-1.11.11.tar.gz -C /usr/local/src/ # 将软件固定存放在/usr/local/src/下 useradd nginx -s /sbin/nologin -M cd /usr/local/src/nginx-1.11.11 ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx-1.11.11/ --with-http_stub_status_module --with-http_ssl_module # 编译参数说明: # --prefix=PATH # 设置安装路径 # --user=user --group=group # 设置运行nginx的用户和用户组 # --with-http_stub_status_module # 激活状态信息 # --with-http_ssl_module # 激活ssl功能 # Nginx的大部分模块功能都会编译到软件中,不需要单独指定编译参数 echo $? make && make install echo $? ln -s /usr/local/nginx-1.11.11 /usr/local/nginx # 设立一条软连接,好处是程序中如果有引用nginx路径的地方,不需要修改程序,如果升级nginx版本 直接重新做一条连接即可
3:启动并检查安装结果
[[email protected] nginx-1.11.11]# /usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx-1.11.11//conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx-1.11.11//conf/nginx.conf test is successful # 在启动之前检查语法非常重要,可防止因配置错误导致网站重启或重新加载配置等对用户的影响。 [[email protected] nginx-1.11.11]# /usr/local/nginx/sbin/nginx # 启动nginx服务 [[email protected] nginx-1.11.11]# lsof -i :80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 18360 root 6u IPv4 45635 0t0 TCP *:http (LISTEN) nginx 18361 nginx 6u IPv4 45635 0t0 TCP *:http (LISTEN) [[email protected] nginx-1.11.11]# netstat -lnp|grep 80
4:Nginx启动的疑难杂症汇总
问题1:启动Nginx时有如下报错“nginx:[emerg] getpwnam("nginx")failed".
解答:这是因为没有对应的Nginx服务用户,执行useradd -s /sbin/nologin -M创建nginx用户即可。
[[email protected] nginx-1.11.11]# pkill nginx [[email protected] nginx-1.11.11]# lsof -i :80 [[email protected] nginx-1.11.11]# userdel nginx [[email protected] nginx-1.11.11]# lsof -i :80 [[email protected] nginx-1.11.11]# /usr/local/nginx/sbin/nginx nginx: [emerg] getpwnam("nginx") failed [[email protected] nginx-1.11.11]# useradd -s /sbin/nologin -M nginx 正在创建信箱文件: 文件已存在 [[email protected] nginx-1.11.11]# /usr/local/nginx/sbin/nginx [[email protected] nginx-1.11.11]# lsof -i :80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 22812 root 6u IPv4 54655 0t0 TCP *:http (LISTEN) nginx 22813 nginx 6u IPv4 54655 0t0 TCP *:http (LISTEN) [[email protected] nginx-1.11.11]#
问题2:如何查看编译安装nginx时的参数
解答:可采用如下命令
[[email protected] nginx-1.11.11]# /usr/local/nginx/sbin/nginx -V nginx version: nginx/1.11.11 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) built with OpenSSL 1.0.1e-fips 11 Feb 2013 TLS SNI support enabled configure arguments: --user=nginx --group=nginx --prefix=/usr/local/nginx-1.11.11/ --with-http_stub_status_module --with-http_ssl_module
问题3:curl,浏览器等无法访问Nginx页面
解答:此类问题排查思路分在服务端和客户端,服务端可排查防火墙是否放行nginx端口。进程是否存在,进程启动的是否是80端口。客户端可排查是否Ping通服务器,telnet检查是否可连服务端80端口。
本文出自 “搁浅丶” 博客,请务必保留此出处http://yasar.blog.51cto.com/9120455/1909681
以上是关于Centos7编译安装Nginx的主要内容,如果未能解决你的问题,请参考以下文章