在一个Apache服务器上可以配置多个虚拟主机,实现一个服务器提供多站点服务,其实就是访问同一个服务器上的不同目录。Apache虚拟主机配置有3中方法:基于IP配置、基于域名配置和基于端口配置。下面将演示基于域名的虚拟主机。
1、编辑httpd.conf
<code>[root@juispan ~]</code><code># vi /usr/local/apache2.4/conf/httpd.conf</code>
<code>Include conf</code><code>/extra/httpd-vhosts</code><code>.conf </code><code>##启用httpd-vhosts.conf</code>
2、编辑httpd-vhosts.conf
<code>[root@juispan ~]</code><code># vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf</code>
<code><VirtualHost *:80> </code><code>##默认虚拟主机</code>
<code> </code><code>DocumentRoot </code><code>"/data/www/abc.com"</code> <code>##网站根目录</code>
<code> </code><code>ServerName abc.com </code><code>##主域名</code>
<code> </code><code>ServerAlias abc.net </code><code>##域名别名 </code>
<code> </code><code>ErrorLog </code><code>"logs/abc.com-error_log"</code> <code>##错误日志</code>
<code> </code><code>CustomLog </code><code>"logs/abc.com-access_log"</code> <code>common </code><code>##访问日志</code>
<code><</code><code>/VirtualHost</code><code>></code>
<code><VirtualHost *:80></code>
<code> </code><code>DocumentRoot </code><code>"/data/www/123.com"</code>
<code> </code><code>ServerName 123.com</code>
<code> </code><code>ErrorLog </code><code>"logs/123.com-error_log"</code>
<code> </code><code>CustomLog </code><code>"logs/123.com-access_log"</code> <code>common</code>
3、创建网站目录与文件
<code>[root@juispan ~]</code><code># mkdir /data/www</code>
<code>[root@juispan ~]</code><code># mkdir /data/www/abc.com</code>
<code>[root@juispan ~]</code><code># mkdir /data/www/123.com</code>
<code>[root@juispan ~]</code><code># cat /data/www/abc.com/index.php</code>
<code><?php</code>
<code>echo</code> <code>"abc.com"</code><code>;</code>
<code>?></code>
<code>[root@juispan ~]</code><code># cat /data/www/123.com/index.php</code>
<code>echo</code> <code>"123.com"</code><code>;</code>
<code>[root@juispan ~]</code><code># chmod 755 /data/www/123.com/index.php</code>
<code>[root@juispan ~]</code><code># chmod 755 /data/www/abc.com/index.php</code>
4、重新加载配置
<code>[root@juispan ~]</code><code># /usr/local/apache2.4/bin/apachectl -t</code>
<code>Syntax OK</code>
<code>[root@juispan ~]</code><code># /usr/local/apache2.4/bin/apachectl graceful</code>
5、测试虚拟主机效果
<code>[root@juispan ~]</code><code># curl -x192.168.137.100:80 123.com</code>
<code><!DOCTYPE HTML PUBLIC </code><code>"-//IETF//DTD HTML 2.0//EN"</code><code>></code>
<code><html><</code><code>head</code><code>></code>
<code><title>403 Forbidden<</code><code>/title</code><code>></code>
<code><</code><code>/head</code><code>><body></code>
<code><h1>Forbidden<</code><code>/h1</code><code>></code>
<code><p>You don't have permission to access /</code>
<code>on this server.<br /></code>
<code><</code><code>/p</code><code>></code>
<code><</code><code>/body</code><code>><</code><code>/html</code><code>></code>
测试发现没有权限,由于前面给index.php文件授权过,因此定位问题在httpd.conf。
<code><Directory /></code>
<code> </code><code>AllowOverride none</code>
<code># Require all denied ##将该行注释掉</code>
<code><</code><code>/Directory</code><code>></code>
<code>[root@juispan ~]</code><code># /usr/local/apache2.4/bin/apachectl graceful ##重新加载配置</code>
<code>123.com</code>
<code>[root@juispan ~]</code><code># curl -x192.168.137.100:80 abc.com </code>
<code>abc.com</code>
<code>[root@juispan ~]</code><code># curl -x192.168.137.100:80 ##匹配别名主机 </code>
<code>[root@juispan ~]</code><code># curl -x192.168.137.100:80 abcd.com ##采用默认虚拟主机</code>
<code></code>
本文转自Grodd51CTO博客,原文链接:http://blog.51cto.com/juispan/1951872,如需转载请自行联系原作者