之前在apache下配置Zend Framework,都是使用最简单的方式,便是一次只能有一个Zend Framework工程在运行,如果要调试另一个工程,必须要修改apache的配置文件,很麻烦,后来在网上找到了通过VirtualHost 方式来配置,使多个ZendFramework工程同时运行。好,闲话少说,下面说一下具体配置。我的目标是两个ZendFramework工程在 apache下同时运行,这两个Zend Framework工程分别是:
1. XXX工程,位置是D:/project/php_wp/xxx/
2. YYY工程,位置是D:/project/php_wp/yyy/
- 打开apache的配置文件对httpd.conf,注释下面三个选项。
#ServerAdmin #ServerName #DocumentRoot
- 找到 #Include conf/extra/httpd-vhosts.conf 这行,将行首的 '#' 去掉
- 找到
#LoadModule proxy_module modules/mod_proxy.so #LoadModule proxy_ajp_module modules/mod_proxy_ajp.so 将这两行行首的 '#' 去掉
- 将DocumentRoot屏蔽掉
- 屏蔽<Directory "D:/Program Files/Apache Software Foundation/Apache2.2/htdocs">这个标签中的所有内容。
- 打开apache目录下的\conf\extra\httpd-vhosts.conf 文件,修改如下:
NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin xxx@gmail.com ServerName www.xxx.com DocumentRoot "D:/project/php_wp/xxx/public" ErrorLog "logs/xxx-error.log" CustomLog "logs/xxx-access.log" common <Directory "D:/project/php_wp/xxx/public"> DirectoryIndex index.php Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
<VirtualHost *:80> ServerAdmin yyy@gmail.com ServerName www.yyy.com DocumentRoot "D:/project/php_wp/yyy/public" ErrorLog "logs/yyy-error.log" CustomLog "logs/yyy-access.log" common <Directory "D:/project/php_wp/yyy/public"> DirectoryIndex index.php Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
- 修改 C:\WINDOWS\system32\drivers\etc\hosts文件,在后面增加两行
127.0.0.1 www.xxx.com
127.0.0.1 www.yyy.com
- 重启apache,
打开浏览器,输入www.xxx.com和www.yyy.com,你是不是已经看到两个Zend Framework工程都在运行了。
今天下载了最新的xampp,配置了一个虚拟主机,一直在报错,Access forbidden! Error 403
这很明显是服务器不允许访问文件,但是我的虚拟主机配置如下:
DocumentRoot "D:/work/test"
ServerName test
Options None
Order allow,deny
Allow from all
竟然还是访问不成功,折腾了一会终于发现在httpd.conf里面有这个配置。
把这个改成如下配置,重启apache就行了。
我想这应该是xampp里面关于虚拟主机配置的一个bug,因为我在单个的虚拟主机里面已经有了Allow from all 这个配置,根据软件设计的思想,应该是局部的配置优先级要大于全局的设置,这个还有待改进。
|