• 记一次帮朋友解决apache站点403错误的过程


    apache版本:

    [root@iZ25eby2utyZ web]# rpm -qa | grep httpd
    httpd-tools-2.2.15-47.el6.centos.3.x86_64
    httpd-2.2.15-47.el6.centos.3.x86_64

    先说最终解决办法吧:

    1.将/etc/httpd/conf/目录下的httpd.conf文件里面的ServerName改成你的服务器公网IP,但是阿里云的不同,需要用内网IP。本文所讲的的公网IP实际上就是阿里云的内网IP。因为这哥们用的就是阿里云的主机。

    2.将/etc/httpd/conf.d/目录下的virtual.conf文件里面的具体服务器IP改为*号

    解决过程:

    1、apache启动时发现报错:

    Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using [服务器公网IP] for ServerName

    意思是给配置文件/etc/httpd/conf/httpd.conf里的ServerName指定具体的IP,于是指定了IP,如下:

    ServerName [服务器公网IP]:80

    2、这个时候启动成功,访问站点,出来的是apache的测试页面,titile为:Apache HTTP Server Test Page powered by CentOS。而且报的是403错误,于是在网上找资料,有篇文章说是虚拟机配置错误,于是在httpd.conf文件里面添加了虚拟机的配置(我的哥们是单独放在一个virtual.conf文件里面的,第四点会有说明),如下:

    <VirtualHost *:80>
    #    ServerAdmin webmaster@dummy-host.example.com
         DocumentRoot /www/docs/dummy-host.example.com
         ServerName dummy-host.example.com
    #    ErrorLog logs/dummy-host.example.com-error_log
    #    CustomLog logs/dummy-host.example.com-access_log common
    </VirtualHost>

    将DocumentRoot和ServerName改为具体的站点目录和域名,然后重新启动,在浏览器中访问,OK。可以正常访问了。

    参考网址:https://www.cnblogs.com/wajika/p/6481167.html,里面的第三点。

    注意:<VirsualHost>里面要写成*号,不能使用具体的IP。

    3、但是这哥们一台服务器上放了好几个站点啊,于是我依样画葫芦,先拷贝了一份<VirtualHost>,抱着试试看的心态看是否OK,然后重启apache,结果新的问题又产生了:

    Starting httpd: [Sat Jul 07 23:19:47 2018] [warn] _default_ VirtualHost overlap on port 80, the first has precedence.

    这句话的意思是80端口重叠,第一个虚拟机优先,访问第二个虚拟机的时候,实际上就指向了第一个虚拟机。说白了,两个域名都指向第一个虚拟机配置的站点。于是在网上找资料,这篇文章有讲到解决办法:https://www.cnblogs.com/xyh592/p/5762729.html

    需要将#NameVirtualHost *:80取消注释,如下:

    NameVirtualHost *:80

    apache重启后两个站点都可以访问了。

    4、这哥们单独将虚拟机配置放在了一个文件里面,在httpd.conf文件里面可以看到:Include conf.d/*.conf。它的作用是apache启动时会自动扫描conf.d目录下的所有后缀名为.conf的文件,然后加载。于是找到这个文件/etc/httpd/conf.d/virtual.conf。此时此刻,我突然间想到第二步和第三步不用做,只保留第一点的改动(即将ServerName改成公网IP),同时将virtual.conf文件里的IP换成*号应该是可以的。于是试了一把,并重启apache,所有站点都可以访问了。

    最终完美解决问题。

  • 相关阅读:
    第十一章 表单与验证
    第十章 日期与时间
    第九章 正则表达式
    第八章 字符串处理
    纯C实现面向对象之接口编程
    csharp 面向对象编程
    cpp面向对象编程
    javascriptMVC框架面向对象编程
    堆栈的区别
    Java堆栈简介
  • 原文地址:https://www.cnblogs.com/subendong/p/9278901.html
Copyright © 2020-2023  润新知