PHP Docroot 詳解
在開發 Web 應用程序時,我們經常會需要配置一個可訪問的目錄,這個目錄被稱為“文檔根目錄”(Document Root)。簡單的說,文檔根目錄指的是帶有訪問權限的 Web 服務器上的路徑。在大部分情況下,這個路徑是用戶能夠通過瀏覽器訪問到的,因為 Web 服務器會在這個目錄下提供 HTML 和其他資源。
文檔根目錄由兩個變量定義:
1. $_SERVER['DOCUMENT_ROOT'] :這個變量包含了文檔根目錄的物理路徑。
2. apache $_SERVER["CONTEXT_DOCUMENT_ROOT"]: 這個變量包含了文檔根目錄的虛擬路徑。
舉個例子:
文檔根目錄被設置成 /var/www/html/,那么可以使用下面的代碼來獲取文檔根目錄:
<?php
$docroot = $_SERVER['DOCUMENT_ROOT'];
?>
這個代碼會返回 /var/www/html/,這是 Web 服務器上的物理路徑。
接下來看一下如何獲取 apache $_SERVER["CONTEXT_DOCUMENT_ROOT"]:<?php
$docroot = $_SERVER["CONTEXT_DOCUMENT_ROOT"];
?>
上面的代碼將返回虛擬路徑,即文檔根目錄下的路徑,例如 /var/www/html。
你也可以在服務器配置文件中進行配置:
在 apache2 配置文件 /etc/apache2/sites-enabled/000-default.conf 或 /etc/apache2/apache2.conf 文件中修改為下面的內容,就可以將文檔根目錄設置到 /var/www/myweb/ 目錄下了:<VirtualHost *:80>DocumentRoot /var/www/myweb/
ServerName myweb.net
ServerAlias www.myweb.net
<Directory /var/www/myweb>Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>ErrorLog ${APACHE_LOG_DIR}/myweb_error.log
CustomLog ${APACHE_LOG_DIR}/myweb_access.log combined
</VirtualHost>
在上面的代碼中,將文檔根目錄設置到了 /var/www/myweb/,將訪問域名改為了 myweb.net,這樣就可以通過瀏覽器來訪問文檔根目錄了。
總結
在本文中,我們詳細介紹了 PHP 文檔根目錄的概念和作用,其中包括 $_SERVER['DOCUMENT_ROOT'] 和 apache $_SERVER["CONTEXT_DOCUMENT_ROOT"]這兩個變量的用法,以及如何在 Web 服務器上進行配置。希望這些內容可以對開發者們有所幫助。