我已经在 Windows 7 Ultimate 64 位上的默认位置安装了 Zend Server CE 5.1.0,这意味着我的 htdocs 路径是C:\Program Files (x86)\Zend\Apache2\htdocs
。每次我从 Eclipse 中的 SVN 检出项目时,我都不想输入这个路径。
我想将 DocumentRoot 设置为不同的文件夹,即D:\www
。
我做了什么
我编辑了conf/httpd.conf
,其中重要的几行是:
DocumentRoot "D:\www"
<Directory "D:\www">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Include conf/extra/httpd-vhosts.conf
我进行了编辑conf/extra/httpd-vhosts.conf
以添加虚拟主机:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot D:\www
ServerName localhost
ServerAlias localhost
SetEnv APPLICATION_ENV development
SetEnv APPLICATION_DOMAIN localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot D:\www\UmbraCMS
ServerName umbracms.local
ServerAlias umbracms.local
SetEnv APPLICATION_ENV development
SetEnv APPLICATION_DOMAIN umbracms.local
</VirtualHost>
我进行了编辑C:\Windows\System32\drivers\etc\hosts
以添加此行:
127.0.0.1 umbracms.local
我还向 添加了 PHP 项目D:\www\UmbraCMS
。然后重新启动了 Apache。实际上,为了以防万一,我还重新启动了计算机。
应该发生什么
在浏览器的地址栏中输入内容后http://umbracms.local/
,我显然希望看到我的 PHP 项目启动。
实际情况
无论我输入http://umbracms.local/
或http://localhost/
,我都会被带到位于 的测试 zend 页面C:\Program Files (x86)\Zend\Apache2\htdocs\index.html
,就好像 DocumentRoot 没有改变,基于名称的虚拟主机也没有起作用一样。
有趣的是,当我放入另一个项目C:\Program Files (x86)\Zend\Apache2\htdocs\bugraid\
,然后在浏览器中输入时http://localhost/bugraid
,该项目实际上打开了,或者至少尝试打开,因为它完全忽略了该项目的.htaccess
文件。
额外注意事项
Zend Server的Apache版本是2.2.16,PHP版本是5.3.0
我已经单独安装了 MySQL CE 5.5.13,并且它可以从命令行和通过 MySQL Workbench 运行。
我安装了 XAMPP,但其组件均未启动。它自带 Apache 2.2.17 和 MySQL 5.5.1。PHP 版本是 5.3.5(我认为)。
问题
您以前遇到过类似的情况吗?为了让 Zend Server 的 Apache 用作D:\www
我的 PHP 项目的文档根目录,还需要注意什么?
答案1
Vista 不会对用户编辑的管理员拥有的文件进行欺骗,基本上是制作只有用户才能看到的副本吗?我相信这是“文件系统重定向”——尝试使用 runas + 管理员,你会发现 httpd.conf 并没有真正改变。