Xampp下apache多站点配置

以前很看不起LAMP的集成环境,无非就是打包而已。集成不透明,版本更新缓慢,而且并非纯绿色产品(比如织梦做的那个集成环境)。与其如此,我不如装个虚拟机跑测试环境了。

在集成环境里,名头大的莫过于Xampp。以前觉得不过如此,下了,用了,删了。直到某天无意发现,Xampp竟然可以做到不改注册表,不往系统添加任何附件,甚至可以做到U盘里,随用随启动,不要随时删除。而且集成环境竟然包含WEB\MAIL\FTP的多种应用,模块齐备。不由敬仰得一塌糊涂,于是定下Xampp作为工作测试环境了。 

作为测试环境,多站点支持是必须的。Xampp没有提供配置多站点的界面,但是没有关系,既然它是一个彻底透明的集成环境,那么按照正式建站那样配置apache,应该就能实现多站点了。查了下资料,一般有三种方法。

一种是使用多个配置文件,使用不同的服务器端口,然后运行多个服务器进程。这种方法没什么技术含量,占用资源并且使用端口非常麻烦。

第二种是巧妙使用了本地IP(127.*.*.*)均指向本地的特性,在不绑定额外IP的情况下,用简单的IP来区分站点。具体做法:

20110207增补内容:

在D:\xampp\apache\conf\extra目录下打开httpd-vhosts.conf,将最下面的那段例子代码的关键行的注释号删除,并修改为:

<VirtualHost 127.0.0.2:80>
##ServerAdmin postmaster@dummy-host2.localhost
DocumentRoot “/xampp/htdocs/127-0-0-2”
##ServerName dummy-host2.localhost
##ServerAlias www.dummy-host2.localhost
ErrorLog “logs/127-0-0-2-error.log”
CustomLog “logs/127-0-0-2-access.log” combined
</VirtualHost>

其中设定了两个日志文件,可以查看错误信息和访问信息。

因为Apache的主设置文件 httpd.conf中嵌入了这个文件,所以Apache启动后,这个设置就会生效。

以下为早期内容:

修改apache的httpd.conf文件( httpd.conf 位于 Apache2.2\conf ):
1、Listen部分,必须直接指定端口,不指定ip地址,配置应写为:
Listen 80
2、不用像基于域名的虚拟主机那样写“NameVirtualHost”。
3、虚拟主机配置段:在httpd.conf 最后加上
<VirtualHost 127.0.0.2:80>
DocumentRoot d:/AppServ/www2
ServerName 127.0.0.2:80
</VirtualHost>

<VirtualHost 127.0.0.3:80>
DocumentRoot d:/AppServ/www3
ServerName 127.0.0.3:80
</VirtualHost>…

4、然后相应的配置好各个目录属性,下面是一个目录属性的典型配置:
<Directory “d:/AppServ/www2”>
Options Indexes FollowSymLinks Multiviews
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>

<Directory “d:/AppServ/www3”>
Options Indexes FollowSymLinks Multiviews
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>

重启apache2以后,你的虚拟主机就配置好了,以后就可以通过127.0.0.1和127.0.0.2,127.0.0.3进入不同的站点了。

第三种就是在生产环境下常用的域名方式了。具体操作方法如下:

在 APACHE 的HTTP.CONF文件最后加上:
NameVirtualHost 192.168.1.4
<VirtualHost 192.168.1.4>
DocumentRoot “E:\PHPServer\root\zhaohui1”
ServerName www.a.com
</Virtualhost>

<VirtualHost 192.168.1.4>
DocumentRoot “E:\PHPServer\root\zhaohui2”
ServerName www.b.com
</Virtualhost>

<VirtualHost 192.168.1.4>
DocumentRoot “E:\PHPServer\root\zhaohui3”
ServerName www.c.com
</Virtualhost>

然后在C:\WINDOWS\system32\drivers\etc\hosts
加上下面的:
192.168.1.4  www.a.com
192.168.1.4  www.b.com
192.168.1.4  www.c.com

当然,如果有富余的域名,在DNS中解析到内网本地IP也行。
重启APACHE.

Xampp下有2个虚拟目录:phpmyadmin,security。起初找不到他们的设置,后来发现在 apache\conf\extra目录下的httpd-xampp.conf。主配置文件的最末尾用Include嵌入了这些文件,这样apache可以很方便的管理复杂设置。以上多站的设置应该也可以这样进行。

发表评论

电子邮件地址不会被公开。 必填项已用*标注