且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Apache默认虚拟主机

更新时间:2022-08-13 09:14:47

一台服务器可以访问多个网站,每个网站都是一个虚拟主机
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>
就代表一个虚拟主机,就是一个网站)

<VirtualHost *:80>
ServerAdmin admin@aminglinux.com //定义管理员邮箱(不要也可)
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 //访问日志
</VirtualHost>

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
<?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,如需转载请自行联系原作者