用apache做项目时,是经常需要在httpd-vhost.conf文件中配置虚拟主机,用于单独的项目,每新开一个项目就需要重新加一个配置,着实麻烦,apache2其实是支持在配置虚拟主机的时候,设置变量的 ,这样可以通过域名来指向相应的文件夹,因此每个项目的域名只要遵循一定的规则,服务器基本不用配置。
比如我本地会有school weixin test这三个项目 按照传统做法是需要配置三个虚拟主机,但是按照以下的配置,一条配置就够了:
<VirtualHost *:80>
ServerAlias local.*.cn
VirtualDocumentRoot /home/qiang/www/%2
</VirtualHost>
这样 本地的三个项目只需要按照 local.school.cn local.weixin.cn local.test.cn这样的域名来访问 服务器就自动找到对应的项目路径 在/home/qiang/xxx下了(当然域名要配host)
注意:使用这个VirtualDocumentRoot配置需要apache加载了vhost_alias这个模块
动态安装这个模块的方法是 进入之前下载的编译安装的apache文件夹目录里边 即 xxxxxx/httpd-2.2.xxxx/modules/mappers/ 目录下
进入这个目录后 会找到一个mod_vhost_alias.c
然后执行以下命令
/usr/local/apache/bin/apxs -i -a -c ./mod_vhost_alias.c
待命令执行完毕 重启服务器 配置就生效了