apache版本:

[root@iZ25eby2utyZ web]# rpm -qa | grep httpd
httpd-tools-2.2.-.el6.centos..x86_64
httpd-2.2.-.el6.centos..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]:

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

<VirtualHost *:>
# 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 *:

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

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

最终完美解决问题。

记一次帮朋友解决apache站点403错误的过程的更多相关文章

  1. Apache Forbidden 403错误提示

    在配置Linux的 Apache服务时,经常会遇到http403错误,我今天配置测试时也出现了,最后解决了,总结了一下.http 403错误是拒绝访问的意思,有很多原因的.还有,这些问题在win平台的 ...

  2. linux运行apache出现403错误

    1.文档权限问题,这是linux操作系统下经常会遇到的问题,需要使用chmod的指令把网站所在目录的权限提升到755.2.SElinux,开启它也会导致403错误的产生. 查看SELinux状态:1. ...

  3. 帮朋友 解决一道 LeetCode QJ上问题

    引言 对于刷题,自己是没能力的. 最经一个朋友同事考我一道数组题 . 也许能当面试分享吧. 娱乐娱乐. 事情的开始是这样的. 前言 题目 截图 大概意思 是 在一个 数组中,找出其中两个不重复出现的元 ...

  4. 牛刀小试——记一次帮朋友小幅优化SQL

    和一个小朋友聊天,小朋友愁眉苦脸,不爱说话,我问怎么了,他说:经理交代的一个任务完成不了.我问:什么任务?他说:程序里的一个功能对应的SQL,太慢了.我问:现在性能是什么样?他说:一分钟.我问:达到什 ...

  5. Linux下解决apache 报 403 forbidden 错

    三步搞定: 1. 打开终端 2. 输入 chcon -R -t httpd_sys_content_t /var/www/html # 后面的/var/www/html是网站的默认目录,可以根据自己的 ...

  6. Linux中访问Apache报403错误处理方法

    1.先说本地环境,脱离基础环境的解决策略都是耍流氓 (1)Linux:CentOS7.5 (2)Apache: Apache/2.4.6 (CentOS) (3)Apache的安装路径在 /usr/l ...

  7. apache访问403错误

    1.排查selinux 2.目录权限 3.WEB主目录是否正确

  8. Apache服务器出现Forbidden 403错误提示的解决方法总结

    在配置Linux的 Apache服务时,经常会遇到http403错误,我今天配置测试时也出现了,最后解决了,总结了一下.http 403错误是拒绝访问的意思,有很多原因的.还有,这些问题在win平台的 ...

  9. wamp下开启SSL,解决APACHE启动问题

    wamp开启SSL解决wamp5_1.7.4中APACHE启动问题 1.#修改httpd.conf文件LoadModule ssl_module modules/mod_ssl.soInclude c ...

随机推荐

  1. Visual Studio 2017 for Mac

    Visual Studio 2017 for Mac Last Update: 2017/6/16 我们非常荣幸地宣布 Visual Studio 2017 for Mac 现已推出. Visual ...

  2. python面向对象(六)之元类

    元类 1. 类也是对象 在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段.在Python中这一点仍然成立: In [13]: class ObjectCreator(object): . ...

  3. Extjs6设置Store、Ajax、form的请求方式(GET、POST)

    Extjs6 设置Store.Ajax.form的请求方式(GET.POST) Ajax请求和Form的submit方法设置请求方式和原来一样,使用method : 'POST'设置 // 表单提交 ...

  4. eclipse导入/导出项目要注意三个地方

    这个三个地方的jdk必须保持一致,不报错

  5. plsql developer配置

    一:今天plsql developer连接 出问题了 ,Oracleclient没正确安装 0.连接vpn 1.环境变量:TNS_ADMIN = D:\worksoftware\oracleClien ...

  6. 5 个非常有用的 Laravel Blade 指令,你用过哪些?

    接下来我将带大家认识下五个 Laravel Blade 指令,这些指令将让你在解决特定问题时如虎添翼.如果你是刚接触 Laravel 的用户,这些小技巧能带你认识到 Laravel Blade 模板引 ...

  7. Unix IPC之共享内存区(1)

    1 共享内存区 共享内存区是可用IPC形式中最快的,只有映射和解除映射需要进入内核的系统调用,映射后对共享内存区的访问和修改不再需要系统调用(内核只要负责好页表映射和处理页面故障即可),但通常需要同步 ...

  8. Python 离线环境

    一.应用场景 比如:对于数据安全要求比较严格的机房,服务器是不允许上网的.那么我现在开发了一套python程序,需要一些模块,怎么运行? 二.离线包制作 有2个解决方案: 1. 使用requireme ...

  9. Http PipeLining

    Http PipeLining */--> div.org-src-container { font-size: 85%; font-family: monospace; } pre.src { ...

  10. Celery 框架学习笔记(生产者消费者模式)

    生产者消费者模式 在实际的软件开发过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类.函数.线程.进程等).产生数据的模块,就形象地称为生产 ...