解析阿里云centos7服务器nginx配置及常见问题解答

前言:

本文参考了jackyzm的博客:https://www.cnblogs.com/jackyzm/p/9600738.html,进行了内容的更新,并请注意这里适用的版本是centos7的版本。并且本文的配置方式曾经在版本8上失败过,因此查看本文前最好先确定服务器的版本。

而关于nginx部分问题的处理,则是参考了文章:http://www.mamicode.com/info-detail-3008792.html进行,其中包括的部分错误如下:

1.make[1]: *** [objs/Makefile:473: objs/src/core/ngx_murmurhash.o] Error 1

2.make[1]: *** [objs/Makefile:774: objs/src/os/unix/ngx_user.o] Error 1

3.make[1]: *** [objs/Makefile:769: objs/src/event/ngx_event_openssl.o] Error 1

本文针对这些问题和一些其他问题的解决方案都进行了阐述和流程上的改良

内容流程:

0.前置说明,1.安装gcc环境,2.安装pcre库,3.安装ssl库,4.安装zlib库,5.安装nginx,附:nginx在make过程中可能出现的问题,6.nginx启动与使用,7.nginx启动后无法访问的问题解决

具体内容:

0.前置说明

在centos系统中,yum源不直接提供nginx的安装,因此可以通过切换yum源的方法进行nginx的安装,也可以通过直接下载依赖库和nginx安装包的方法来实现,本文介绍的是后者。

一些必要的库和nginx的关系:nginx 中gzip模块需要 zlib 库,rewrite模块需要 pcre 库,ssl 功能需要openssl库

然后本文将选定/usr/local为安装目录,一些库的具体版本号各位可根据实际改变,但由于互相依赖,所以最新的可能存在一些问题,谨慎选择。

且以下命令均需在root权限下执行

1.安装gcc gcc-c++(如新环境,未安装请先安装)

$ yum install -y gcc gcc-c++

2.安装pcre库

$ cd /usr/local/

$ wget https://sourceforge.net/projects/pcre/files/pcre/8.36/pcre-8.36.tar.gz

(注:pcre版本会实时更新,8.36版本同样是旧版本,如果需要最新版本自行搜索pcre即可,然后选择新版本,不过新版本可能会不太稳定,需要注意。

当前网址获取新版本的方法为访问:https://sourceforge.net/projects/pcre/files/pcre/)

$ tar -zxvf pcre-8.36.tar.gz

$ cd pcre-8.36

$ ./configure

$ make && make install

如报错:configure: error: You need a C++ compiler for C++ support

解决方案:yum install -y gcc gcc-c++

3.安装ssl库

$ cd /usr/local/

$ wget https://www.openssl.org/source/openssl-1.0.1j.tar.gz

(注:openssl同样有版本更新,这里为2020.04的版本,当前网址获取新版本的方法为访问:https://www.openssl.org/source/

这里没有采用1.1.x等版本是因为在后面安装nginx出现了无法解决的错误,所以选择了这一较久的版本,如果可以解决,可以进行尝试,如果能告知解决方案或者成功案例就更感谢了)

$ tar -zxvf openssl-1.0.1j.tar.gz

$ cd openssl-1.0.1j

$ ./config

$ make && make install

4.安装zlib库

$ cd /usr/local/

$ wget http://zlib.net/zlib-1.2.11.tar.gz

(注:同前,版本更新网址为:http://zlib.net/)

$ tar -zxvf zlib-1.2.11.tar.gz

$ cd zlib-1.2.11

$ ./configure

$ make && make install

5.安装nginx

$ cd /usr/local/

$ wget http://nginx.org/download/nginx-1.8.0.tar.gz

(注:同前,获取新版本的网址为:http://nginx.org/download/)

$ tar -zxvf nginx-1.8.0.tar.gz

$ cd nginx-1.8.0

$ ./configure --user=nobody --group=nobody --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module--with-pcre=/usr/local/pcre-8.36 --with-zlib=/usr/local/zlib-1.2.11--with-openssl=/usr/local/openssl-1.0.1j

(注: --with-http_ssl_module:这个不加后面在nginx.conf配置ssl:on后,启动会报nginx: [emerg] unknown directive "ssl" in /opt/nginx/conf/nginx.conf 异常;儿针对pcre、zlib和openssl等等的指定,则是为了保证nginx能够和之前下载的版本匹配一致,注意路径和版本号需要修改为和之前下载对应的样子)

$ make && make install

附:nginx在make过程中可能出现的问题:

报错1:make[1]: *** [objs/Makefile:460: objs/src/core/ngx_murmurhash.o] Error 1

将警告视为报错进行了程序终止

解决方案:进入到nginx安装目录的objs文件夹中,修改Makefile文件:

按下a进入编辑模式,将CFLAGS中的-Werror去除,然后按下esc,输入:wq保存退出

然后再次进行尝试make && make install指令

报错2:make[1]: *** [objs/Makefile:747: objs/src/os/unix/ngx_user.o] Error 1

提示我们struct crypt_data'没有名为‘current_salt'的成员:cd.current_salt[0] = ~salt[0];原文作者说最好的办法是换一个版本,这里开始选择的1.9出现了报错,但是切换成了nginx1.8后还是没有效果,因此便在nginx1.8的基础上使用了替代方案:代码注释

即在nginx安装目录下通过执行vim src/os/unix/ngx_user.c,对ngx_user.c第36行的代码进行注释,前后如下:

然后保存退出,再次尝试make && make install

报错3:make[1]: *** [objs/Makefile:769: objs/src/event/ngx_event_openssl.o] Error 1

说明ssl版本没有告知nginx,应该是前面./configure的时候没有指定ssl版本导致的,需要重新configure,即需要在configure时增加ssl的指定。

--with-openssl=/usr/local/openssl-1.0.1j

报错4:./configure: error: SSL modules require the OpenSSL library.

可以尝试执行指令:

yum -y install openssl openssl-devel

报错5:./configure: error: the HTTP gzip module requires the zlib library

configure时没有制定好另外两个库的路径,在–prefix后面接以下命令(具体使用方式见./configure指令的执行):

--with-pcre=/usr/local/pcre-8.36指的是pcre-8.36的源码路径。--with-zlib=/usr/local/zlib-1.2.11 指的是zlib-1.2.11 的源码路径。

如果以上报错还是无法解决问题,最好查看centos版本是否是7,我就是在更换系统版本后直接成功的。如果遇到其他报错,最好进行检索,无法解决十分抱歉。

6.nginx启动与使用

$ /usr/local/nginx/sbin/nginx

启动成功的标志:打开浏览器访问服务器的ip地址,如果浏览器出现Welcome to nginx! 则表示 nginx 已经安装并运行成功。

其他的一些命令如下:

重启:

$ /usr/local/nginx/sbin/nginx -s reload

停止:

$ /usr/local/nginx/sbin/nginx -s stop

测试配置文件是否正常:

$ /usr/local/nginx/sbin/nginx -t

强制关闭:

$ pkill nginx

注:这里没有设置软链接,因此只能通过这么长的指令进行管理,如有需要可自行检索处理,后面如果我有时间也会更新到本文中。

7.nginx启动后无法访问的问题解决

这里如果还看不到nginx的页面,可能是服务器的安全组没有配置导致的,例如阿里云就需要在这里添加http,端口80的配置,如下:

安全组配置之后只需刷新页面即可看到nginx的成功页面。

最后祝各位配置顺利。

到此这篇关于解析阿里云centos7服务器nginx配置及常见问题解答的文章就介绍到这了,更多相关阿里云centos7下nginx配置内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 阿里云CentOS7安装Mongodb教程

    一.概述 近日要在新的CentOS系统上安装MongoDB,某度结果后直接从Mongo官网直接获得3.2版本的下载链接,结果在下载时发觉速度慢的可怜.迫于无奈,只能找国内的镜像下载.切换国内的安装源后,使用yum的方式安装后发现,安装的MongoDB版本居然是2.8的.一番研究后,贴出以下操作方式,提供给后人操作. 二.操作过程 1.首先更新一下包吧,多更无害. sudo yum -y update 2.在/etc/yum.repos.d 创建一个 mongodb-org.repo 文件 sud

  • CentOS7 阿里云的yum源使用详解

    CentOS 7 使用阿里云的yum源 1. 备份原来的yum源 sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 2.设置aliyun的yum源 sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 3.添加EPEL源 EPEL(http://fedorap

  • 阿里云CentOS7搭建Apache+PHP+MySQL环境

    最近要搭建一个阿里云的LMAP环境,选了CentOS7来做搭建. 1.Apache Centos7默认已经安装httpd服务,只是没有启动. 如果你需要全新安装,可以yum install -y httpd 启动服务:systemctl start httpd.service 设置开机自动启动:systemctl enable httpd.service Apache配置文件:/etc/httpd/conf/httpd.conf 项目默认存放目录为/var/www/html 你可以用vi来编辑或

  • 阿里云Centos7安装LNMP+wordpress

    1. 安装Nginx #yum install nginx #配置文件处于/etc/nginx #systemctl start nginx #启动nginx #systemctl enable nginx.service # 设置为开机启动 #systemctl status firewalld #检查防火墙,如果为active (running),则 #vim /etc/firewalld/zones/public.xml # 在zone <zone> - <service name

  • 阿里云centos 7下搭建shadowsocks的教程

    本文介绍了阿里云centos 7下搭建shadowsocks的教程,分享给大家,具体如下: 1.安装pip 由于安装的是python 版本的 shadowsocks,所以首先安装pip $ curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" $ python get-pip.py 2.安装shadowsocks $ pip install --upgrade pip $ pip install sh

  • 阿里云 CentOS7.4 安装 Python3.6的方法讲解

    1.到python官网 https://www.python.org查找最新的原码,我使用的,Python-3.6.3 2.mkdir /home/soft 创建软件管理目录. 3.cd /home/soft/ 进入soft目录,因为我下一步是下载python的源码 4.wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz 下载Python-3.6.3的源码到/home/soft/里,如果没有安装wget 请执行下面的命令,

  • 解析阿里云centos7服务器nginx配置及常见问题解答

    前言: 本文参考了jackyzm的博客:https://www.cnblogs.com/jackyzm/p/9600738.html,进行了内容的更新,并请注意这里适用的版本是centos7的版本.并且本文的配置方式曾经在版本8上失败过,因此查看本文前最好先确定服务器的版本. 而关于nginx部分问题的处理,则是参考了文章:http://www.mamicode.com/info-detail-3008792.html进行,其中包括的部分错误如下: 1.make[1]: *** [objs/Ma

  • 阿里云centos7服务器搭建nginx  web服务经验示例

    (1)购买完centos7服务器后,一定要进入阿里云的管理控制台的安全组规则,入方向,添加安全组规则,开放80端口,授权对象填写0.0.0.0/0授权所有ipv4地址.切记,我就是没搞这个,然后各种搞防火墙开80端口,然后浏览器一直还是无法访问. (2)下载安装Nginx: 下载: wget -c https://nginx.org/download/nginx-1.10.1.tar.gz 安装nginx的依赖库: 安装gcc(一般都自带,不需要再安装): yum install gcc-c++

  • 阿里云Linux系统Nginx配置多个域名的方法详解

    Nginx绑定多个域名,可通过把多个域名规则写一个配置文件里实现,也可通过分别建立多个域名配置文件实现,为了管理方便,建议每个域名建一个文件,有些同类域名则可写在一个总的配置文件里. 1. 比如我想建立两个站点的域名分别是www.A.com 和 www.B.com,将这两个域名都解析到同一服务器IP. 2. 在Nginx配置文件conf目录下创建一个专门存放虚拟主机配置的目录,命名为vhosts,可以把虚拟目录的配置全部放在这里.如本例创建名为vhosts_A.conf和vhosts_B.con

  • ThinkPHP 在阿里云上的nginx.config配置实例详解

    具体代码如下所示: # For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ user nginx; worker_processes auto; error_log /var/log/nginx/error.log;

  • 阿里云ECS服务器部署django的方法

    参考 服务器安装的是Centos 系统. uwsgi是使用pip安装的. nginx是使用yum install nginx安装. python 2.7, mysql 5.5使用 yum安装. 它们之间的逻辑关系如下: the web client <-> the web server <-> the socket <-> uwsgi <-> Django uswgi负责从Django拿内容,通过socket传给 web server如nginx, 最后显示

  • 阿里云Centos7.X 如何对外开放端口的方法步骤

    一句话:如果你是买的各大厂商的云服务器,去安全组配置对应需要使用到的端口就可以啦! 因为博主用的是阿里云,所以这里就只介绍下阿里云如何开放端口,按着下面三张图来操作就行嘞 这个时候有同学就说了,不通过平台的方式行不行,我想锻炼我的Linux能力...当然可以,接下来介绍下直接在Linux上配置防火墙规则来开放端口(Centos7以上,Centos6和7用的防火墙规则不一样,这里不介绍Centos6) 先掌握下systemctl+firewall命令 描述 命令 查看firewall状态 syst

  • 阿里云centos7安装mysql8.0.22的详细教程

    1. 下载MySQL安装包 首先点击https://dev.mysql.com/downloads/repo/yum/ 找到Linux7的版本: 这里会自动下载最新的版本的mysql,我这里是mysql8.0.22 然后去拼接网址: http://dev.mysql.com/get/ + xxx.rpm 比如说我的是http://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm 所以命令: [root@hadoop ~]#

  • 阿里云centos7使用yum安装mysql的正确姿势(推荐)

    yum快速安装mysql 新增yum源 rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm 查看可用的mysql版本(直接略过) yum repolist enabled | grep "mysql.*-community.*" 导入 yum -y install mysql-community-server 加入开机启动 systemctl enable mysqld 启动mysql s

  • 阿里云ecs服务器 修改php上传最大限制的方法

    找到PHP.ini位置,可以通过phpinfo()查看 编辑php vi /etc/php.ini 修改 ①upload_max_filesize 默认2m ②memory_limit  默认128m ③post_max_size 默认8m 修改保存后重启php-fpm和nginx /etc/init.d/php-fpm start /etc/init.d/php-fpm stop /etc/init.d/php-fpm restart /etc/init.d/php-fpm reload se

随机推荐