apache2 php libapache2-mod-php 後,HTML 正常,PHP 檔案直接顯示原始碼或下載。/etc/apache2/apache2.conf 加入 AddHandler/AddType 無效。Apache 設定檔對行首空格極度敏感。若指令前有空白字元,該行會被視為延續行或忽略,導致指令不生效。此外,PHP 模組可能未正確載入。
ls /etc/apache2/mods-enabled/php*.loadsudo a2enmod php7.4(版本號依安裝而定) → sudo systemctl restart apache2。
sudo nano /etc/apache2/apache2.confAddHandler php7.4-script .php .html
AddType application/x-httpd-php .php .html
關鍵:每行第一字元必須是指令字母,前面不可有任何空格/Tab。
sudo systemctl restart apache2/var/www/html/test.php:<?php phpinfo(); ?>,瀏覽器訪問應顯示 PHP 資訊頁。
sudo nano /etc/apache2/conf-available/php-custom.conf
# 內容同上兩行
sudo a2enconf php-custom
sudo systemctl reload apache2
將自訂設定模組化,避免污染主設定檔,升級套件時不易遺失。
.htaccess 而非主設定:需 AllowOverride All 才生效,效能較差。php5-script 與 php7-script:需與實際安裝模組名稱一致(a2query -m php 查看)。DirectoryIndex:確保 index.php 在 DirectoryIndex 列表中,否則目錄存取不會自動執行 PHP。