Apache error_log 出現:(13)Permission denied: exec of '.../index.php' failed
Apache 執行身分(通常為 www-data、apache、nobody)對 PHP 腳本檔案缺乏執行權限(x 權限)。PHP 檔案雖不需像 CGI 腳本般必須可執行,但某些配置(如 cgi.force_redirect、suEXEC、或直接以 CLI 模式執行)會檢查執行位元。
cd /path/to/projectchmod +x index.php 或 chmod 755 index.phpchmod -R +x /path/to/project(謹慎使用)x 權限才能進入。644(擁有者可寫、群組/其他可讀)通常足夠。755。755 或 775(群組可寫)。777,防止安全風險。若權限正確仍報錯,檢查強制存取控制:
# SELinux
getenforce # 查狀態
ls -Z index.php # 查安全語境
chcon -R -t httpd_sys_content_t /var/www/html # 修正語境
setsebool -P httpd_unified 1 # 允許讀寫統一目錄
# AppArmor
aa-status # 查狀態
# 編輯 /etc/apparmor.d/usr.sbin.apache2 添加路徑權限
Permission denied 多數為檔案系統權限問題,chmod +x 可快速解決。生產環境請遵循最小權限原則,並檢查 SELinux/AppArmor 策略,避免權限過大帶來安全隱患。