热烈祝贺台州朗动科技的站长论坛隆重上线!(2012-05-28)    热烈庆祝伟大的祖国60周年生日 点击进来我们一起为她祝福吧(2009-09-26)    站长论坛禁止发布广告,一经发现立即删除。谢谢各位合作!.(2009-08-08)    热烈祝贺台州网址导航全面升级,全新版本上线!希望各位一如既往地支持台州网址导航的发展.(2009-03-28)    台州站长论坛恭祝各位新年快乐,牛年行大运!(2009-01-24)    台州Link正式更名为台州网址导航,专业做以台州网址为主的网址导航!(2008-05-23)    热烈祝贺台州Link资讯改名为中国站长资讯!希望在以后日子里得到大家的大力支持和帮助!(2008-04-10)    热烈祝贺台州Link论坛改名为台州站长论坛!希望大家继续支持和鼓励!(2008-04-10)    台州站长论坛原[社会琐碎]版块更名为[生活百科]版块!(2007-09-05)    特此通知:新台州站长论坛的数据信息全部升级成功!">特此通知:新台州站长论坛的数据信息全部升级成功!(2007-09-01)    台州站长论坛对未通过验证的会员进行合理的清除,请您谅解(2007-08-30)    台州网址导航|上网导航诚邀世界各地的网站友情链接和友谊联盟,共同引领网站导航、前进!(2007-08-30)    禁止发广告之类的帖,已发现立即删除!(2007-08-30)    希望各位上传与下载有用资源和最新信息(2007-08-30)    热烈祝贺台州站长论坛全面升级成功,全新上线!(2007-08-30)    
便民网址导航,轻松网上冲浪。
台州维博网络专业开发网站门户平台系统
您当前的位置: 首页 » AMPZ/Nginx/IIS发布安装 » 基于apache mod_vhost_alias模块的虚拟主机配置教程

基于apache mod_vhost_alias模块的虚拟主机配置教程

论坛链接
  • 基于apache mod_vhost_alias模块的虚拟主机配置教程
  • 发布时间:2008-10-30 08:57:22    浏览数:7402    发布者:tznktg    设置字体【   
前言:我有几台服务器托在机房,连年亏损. 我想我应该考虑将他们向外出租.准备明年运营,以扭转几年来尴尬的局面.于是,就有了这个教程.

目标:

1.用户开通FTP后,自动在/www/下创建一个与域名同名的目录.
(假如phpv.net的管理员购买空间后,他的主目录将是 /www/phpv.net)
2.空间知道泛域名绑定.
(即:访问者在浏览器内输入www.phpv.net将会自动访问/www/phpv.net/www.phpv.net目录下的index文件.而输入bbs.phpv.net则访问/www/phpv.net/bbs.phpv.net/这个目录.....)


按以前的,我得挨个绑虚拟主机.然后再restart apache
像这样:

<VirtualHost *:80>
ServerAdmin [email]webmaster@phpv.net[/email]
DocumentRoot /www/phpv.net/www.phpv.net
ServerName www.phpv.net
ErrorLog logs/phpv-error_log
CustomLog logs/phpv-access_log common
</VirtualHost>

<VirtualHost *:80>
ServerAdmin [email]webmaster@phpv.net[/email]
DocumentRoot /www/phpv.net/bbs.phpv.net
ServerName bbs.phpv.net
ErrorLog logs/bbs-phpv-error_log
CustomLog logs/bbs-phpv-access_log common
</VirtualHost>

...............

#apache restart

简直太烦人太累了.

后来经过自己的测试和多位好友的帮助,我使用Apache 的 mod_vhost_alias模块.完美实现了这个要求.


我是这样开始的:

1.把原来的虚拟主机配置都删除掉, NameVirtualHost *:80 这句也加上个#在它前面.

2.接着,在httpd.conf使用下面的mod_vhost_alias配置

UseCanonicalName Off
VirtualDocumentRoot /www/%2+/%0

(注意:以上/www/是我的网站根目录,在实现操作中请按自己要求更改.)

重启apache.
#apache restart

3.测试
使用FTP服务器的功能,使得用户登录时,自动以其域名创建主目录.(我用的是 pureftpd 具体配置请参阅相关文献)
以刚刚创建好的FTP用户登录,在目录下创建文件夹www.phpv.net 上传一个phpinfo的index.php
输入http://www.phpv.net 看看是否正常. (域名的A记录要指向本机IP) 如果能正常显示出info信息,就表明成功了.

4.但,问题来了,使用http://phpv.net 访问的却是 /www/net/phpv.net这个目录.
想使用rewirte做一个自动跳转来解决这个问题,使得用户输入http://phpv.net时能访问到/www/phpv.net/www.phpv.net 这个目录

rewirte解决方式:

加以下rule到http.conf中

RewriteEngine On
#RewriteCond %{HTTP_HOST} ^w+.w{1,3}$
RewriteCond %{HTTP_HOST} ^[a-z-0-9]+.w{1,3}$RewriteRule (.*) http://www.%{HTTP_HOST}$1 [R=301,L]


再次重启Apache,访问http://phpv.net,自动跳转到http://www.phpv.net


5.相关问答:
如果把不需要执行PHP的目录禁用PHP解析?

这样:
<Directory "/www/phpv.net/manual.phpv.net">
php_flag engine off
</Directory>

好了.配置基本OK.

感谢:fluck boban 吴洪声 对本文的贡献.

附后:此配置基本能满足大部分用户的需求.
但有以下缺点:不能根据虚拟主机做个性化设置,比如,设置一个虚拟主机的PHP执行目录范围.
还有不能自动绑定两个域名到同一目录.

TAG: Apache apache 虚拟主机 alias mod
娱乐休闲专区A 影视预告B 音乐咖啡C 英语阶梯D 生活百科
网页编程专区E AMPZF HTMLG CSSH JSI ASPJ PHPK JSPL MySQLM AJAX
Linux技术区 N 系统管理O 服务器架设P 网络/硬件Q 编程序开发R 内核/嵌入
管理中心专区S 发布网址T 版主议事U 事务处理