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