apache版本:
[[email protected] 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
先说最终解决办法吧:
将/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错误,于是在网上找资料,有篇文章说是虚拟机配置错误,于是添加了虚拟机的配置(我的哥们是单独放在一个virtual.conf文件里面的,第四点会有说明),如下:
<VirtualHost *:80> # ServerAdmin [email protected]-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,里面的第三点。
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,于是找到这个文件,将文件里面的所有ip都改成*号就行了。
最终完美解决问题。
原文地址:https://www.cnblogs.com/subendong/p/9278901.html