本文主要介紹如何在Apache服務器上配置PHP,以避免將PHP腳本作為下載文件返回。對于許多初學者來說,當他們在瀏覽器中訪問一個包含PHP代碼的頁面時,頁面不會正確顯示,而是提示下載該頁面的源文件。這通常是由于未正確配置Apache服務器導致的。下面將詳細介紹配置過程。
首先,我們需要檢查是否已經正確安裝和配置了Apache服務器和PHP解析器。在命令行中輸入以下命令,可以驗證是否安裝有PHP:
php -v
如果顯示PHP版本信息,則說明已經成功安裝PHP。如果未安裝,請根據您的操作系統和版本安裝適用的PHP版本。
接下來,我們需要確保Apache服務器已正確配置以使用PHP解析器。打開Apache配置文件(通常位于`/etc/apache2/apache2.conf`或`/etc/httpd/conf/httpd.conf`)進行編輯。查找以下行并確保未注釋(去掉行首的#):
LoadModule php7_module modules/libphp7.so
這是用于加載PHP解析器的模塊。注意,這是根據您的PHP版本而定的,因此可能需要相應調整。
保存并退出配置文件后,重啟Apache服務器以使更改生效。
現在,我們需要確保Apache服務器正確解析包含PHP代碼的文件。默認情況下,Apache僅會解析擴展名為`.php`的文件。但是,在某些情況下,我們可能會使用其他擴展名(如`.html`或`.htm`)來包含PHP代碼。為了確保Apache正確解析這些擴展名的文件,我們需要編輯Apache配置文件并添加以下行:
AddType application/x-httpd-php .html .htm
這將告訴Apache將`html`和`htm`文件的內容作為PHP代碼進行解析。
保存并退出配置文件后,重啟Apache服務器。
此外,我們還需要確保Apache服務器允許使用`.htaccess`文件進行重寫規則。為此,我們需要編輯Apache配置文件并找到以下行:
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
將其中的`AllowOverride None`修改為`AllowOverride All`,并保存文件。
重啟Apache服務器后,`AllowOverride All`將允許網站根目錄(通常為`/var/www/`)下的`.htaccess`文件中的重寫規則生效。
通過以上配置,現在我們再次訪問包含PHP代碼的頁面時,頁面將正常顯示,而不會下載源文件。例如,我們有一個`index.html`文件,其中包含一些PHP代碼:
<html>
<head>
<title>My PHP Page</title>
</head>
<body>
<?php echo "Hello, World!"; ?>
</body>
</html>
在瀏覽器中訪問該頁面時,將顯示 `Hello, World!`,而不是下載`index.html`文件。
通過正確配置Apache服務器和PHP解析器,我們可以確保PHP腳本在瀏覽器中正常解析,而不是被下載為文件。這對于開發和部署PHP應用程序非常重要。