天天看点

Apache默认虚拟主机

一台服务器可以访问多个网站,每个网站都是一个虚拟主机

DocumentRoot "/data/wwwroot/www.123.com" //定义了网站的根目录所在位置

概念:域名(主机名)、DNS、解析域名、hosts

任何一个域名只要指向了这台机器ip,都可以访问到这个站点。这个站点就叫默认虚拟主机。

为了便于管理(一个默认主机显然不合适),打开一个虚拟主机配置文件

vim /usr/local/apache2/conf/httpd.conf //搜索httpd-vhost,去掉#去掉#就生效httpd.conf ducumentRoot和ServerName失效

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf //改为如下(

一对

<VirtualHost *:80>

</VirtualHost>

就代表一个虚拟主机,就是一个网站)

ServerAdmin [email protected] //定义管理员邮箱(不要也可)

DocumentRoot "/data/wwwroot/aming.com" //定义网站根目录

ServerName aming.com //网站域名

ServerAlias www.aming.com //别名。一个网站可以有多个域名访问,访问内容一样的

ErrorLog "logs/aming.com-error_log" //错误日志

CustomLog "logs/aming.com-access_log" common //访问日志

mkdir /data/wwwroot/abc.com -p

mkdir /data/wwwroot/111.com -p

cat /data/wwwroot/111.com/index.php //网站默认的主页就是index.php

<?php

echo "111.com"

?>

cat /data/wwwroot/abc.com/index.php

echo "abc.com";

/usr/local/apache2/bin/apachectl –t

/usr/local/apache2/bin/apachectl graceful

总结:

1.只要conf/httpd.conf文件里的Include conf/extra/httpd-vhosts.conf打开虚拟主机生效。

那么文件的ServerName和Documentroot失效

3.虚拟主机一旦打开里面可以定义很多个<VirtualHost *:80></VirtualHost>,每一个VirtualHost代表一个站点,就是一个虚拟机。都有一个对应的ServerName和Documentroot。比较特殊的就是默认虚拟主机,无论访问什么域名(域名只有不在ServerName出现)只要解析到这个ip上,都会访问这个虚拟主机

本文转自 虾米的春天 51CTO博客,原文链接:http://blog.51cto.com/lsxme/2051891,如需转载请自行联系原作者