轉--DocumentRoot 關係 與 Apache vhost 配置關係

  • 轉載自 http://www.jianshu.com/p/fd3e6112d578
  • 安裝

安裝完成 Wampserver 3.0.6,修改 DocumentRoot。

  • 修改 DocumentRoot
    修改服務器根目錄路徑:/wampserver_intall_dir/to/bin/apache/.../conf/httpd.conf

搜索 “DocumentRoot”,將當前行與下一行的目錄路徑,都修改爲指定的根目錄路徑。

重啓,http://localhost 發現返回相應沒有改變。

  • 測試
    用一個錯誤的路徑“D:\htdocs\”測試,發現 Wampserver 重啓後,出現服務狀態不正常。這說明配置文件肯定是修改對了。

右鍵點擊,使用 Wampserver 工具 "Check httpd.conf syntax",提示 DocumentRoot must be a directory。Windows 中,使用右斜線()表示路徑,結尾處不能帶有 \ 。如果使用左斜線(/),結尾處可帶上左斜線(/),也可以不需要。

確認修改的配置文件是正確的,爲什麼不生效呢?檢查發現,apache 指定了一個 virtualhost:

<VirtualHost *:80>
ServerName localhost
DocumentRoot D:/wamp/wamp64/www
<Directory "D:/wamp/wamp64/www/">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require local
</Directory>
</VirtualHost>

註釋 httpd-vhosts.conf 文件中 vhost 配置,重啓 Wampserver,刷新頁面就正常了。

  • Conclude
    httpd-vhosts.conf 文件中,爲某個 ServerName 指定的 DocumentRoot 是獲得最高優先級的,而不會使用 httpd.conf 中所指定的。

  • 去掉 VirtualHost 配置中的 DocumentRoot 與 Directory

    DocumentRoot D:/wamp/wamp64/www

    <Directory "D:/wamp/wamp64/www/">
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    Require local
    </Directory>

請求 "http://localhost",發現 httpd.conf 中使用 DocumentRoot 的生效了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章