Apache-2.2

Apache 拒絕更改 DocumentRoot

  • May 12, 2012

我已經在 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 的 ApacheD:\www用作我的 PHP 項目的文件根目錄,還需要注意什麼?

vista 不會對您的使用者編輯的管理員擁有的文件進行欺騙,基本上是製作只有您的使用者才能看到的副本?我相信這是“文件系統重定向”——嘗試 runas + 管理員,你會發現 httpd.conf 並沒有真正改變。

引用自:https://serverfault.com/questions/285663