久久久久久AV无码免费看大片,亚洲一区精品人人爽人人躁,国产成人片无码免费爱线观看,亚洲AV成人无码精品网站,为什么晚上搞的时候要盖被子

Apache中DocumentRoot和Directory的區(qū)別

時(shí)間:2021-04-20 09:11:56 類(lèi)型:WEB服務(wù)器
字號(hào):    

  在一段Apache配置中往往會(huì)出現(xiàn)一對(duì)令人疑惑的值,DocumentRoot和Directory,原因在于它們后面跟了一樣的路徑。

  一.虛擬主機(jī)

  以一段vhost(虛擬主機(jī))的配置為例。該配置由軟件自動(dòng)生成,由于它可以正常運(yùn)行,我們從這里入手。

  
  <VirtualHost *:80>
    DocumentRoot "E:\www\public"     --①
    ServerName www.test.com
    ServerAlias 
  <Directory "E:\www\public">        --②
      Options FollowSymLinks ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all
      Require all granted
  </Directory>
</VirtualHost>
  

 ?、貲ocumentRoot代表根目錄

 ?、诖碓撃夸浀幕緦傩?/p>

  可以看到的一個(gè)現(xiàn)象是:①②目錄一致,且該路徑下一般都有index.php入口文件。

  二.服務(wù)器配置

  httpd.conf一般用于配置Apache的主體依賴(lài)環(huán)境。在其中有一段配置定義:

#
# Deny access to the entirety of your server's filesystem. You must
# explicitly permit access to web content directories in other 
# <Directory> blocks below.
#
DocumentRoot  "D:\phpStudy\WWW"
<Directory />
    Options +Indexes +FollowSymLinks +ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
    Require all granted
</Directory>

  注意到包含關(guān)系,即主體配置中會(huì)包含虛擬主機(jī)標(biāo)簽,可以推測(cè)出虛擬主機(jī)的設(shè)置是在全局主體配置的基礎(chǔ)上進(jìn)行增量定義的。

  httpd.apache.org/docs/2.4/mod/core.html#directory

  在A(yíng)pache的官方文檔中給出了Directory標(biāo)簽的說(shuō)明:定義該目錄、及子目錄的配置屬性。

  有意思的是各個(gè)屬性配置項(xiàng)的含義,如下:

  

 Options:復(fù)寫(xiě)選項(xiàng)策略,可選值有Indexes、FollowSymLinks和ExecCGI等。

     分別代表"允許列舉目錄"、"允許Directory路徑定義以外的鏈接文件"、"允許執(zhí)行CGI程序"。

  AllowOverride:復(fù)寫(xiě)重定向策略

  Order:復(fù)寫(xiě)可用指令集

  Allow:復(fù)寫(xiě)可訪(fǎng)問(wèn)網(wǎng)站的地址集


  三.對(duì)比結(jié)論

  實(shí)際上明白各種語(yǔ)法的含義后,至此答案已經(jīng)明了。

  DocumentRoot屬性用于指定了一種URL映射的根目錄路徑。例如http://localhost/

  而Directory標(biāo)簽是為了指定URL路徑在后續(xù)的請(qǐng)求中可以進(jìn)行操作的權(quán)限范圍屬性。

  注意到二的一段黑字,我們將有可能把一的①②路徑寫(xiě)得不一致,即DocumentRoot為子目錄,Directory為父目錄。

<VirtualHost *:80>
    DocumentRoot "E:\www\public"
    ServerName test.com
    ServerAlias 
  <Directory "E:\www">
      Options -Indexes -FollowSymLinks +ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all
     Require all granted
  </Directory>
</VirtualHost>

  在此配置文件中指定了不允許列舉目錄、禁止PHP程序訪(fǎng)問(wèn)Directory路徑定義以外的鏈接文件、允許執(zhí)行CGI程序、對(duì)根目錄授予了允許所有訪(fǎng)問(wèn)都接受的權(quán)限。

  由于根目錄(DocumentRoot)的路徑是目錄訪(fǎng)問(wèn)定義(Directory)的一個(gè)子目錄,理應(yīng)也能正常運(yùn)行。

  在E:\www\public下新建一個(gè)index.php文件,echo "Hello World"。

  啟動(dòng)httpd.exe后一切正常


<