在Ubuntu系統上配置PHP-FPM時,安全性是一個重要的考慮因素。以下是一些關鍵的安全配置要點:
使用非root用戶運行PHP-FPM:
www-data
用戶和組運行。配置監聽地址和端口:
ufw
)限制訪問。設置進程池參數:
pm.max_children
:控制進程池中最多能有多少個進程,根據服務器的內存和負載情況設置。pm.start_servers
:PHP-FPM啟動時創建的進程數。pm.min_spare_servers
和pm.max_spare_servers
:定義進程池中的最小和最大空閑進程數。pm.max_requests
:每個子進程在重啟前處理的請求數,防止內存泄漏。限制資源使用:
rlimit_files
和rlimit_core
限制PHP-FPM進程可以打開的文件數量和核心轉儲文件大小,防止資源耗盡攻擊。配置日志文件:
啟用錯誤日志和慢查詢日志:
php_flag[display_errors]
:關閉錯誤信息顯示,防止敏感信息泄露。php_admin_value[error_log]
:指定錯誤日志路徑。php_admin_flag[log_errors]
:開啟錯誤日志記錄。php_admin_value[error_reporting]
:設置錯誤報告級別,記錄所有信息。使用安全的文件權限:
定期更新和監控:
php-fpm-status
)監控PHP-FPM的運行狀態,及時發現和處理異常。配置防火墻:
ufw
或iptables
限制對PHP-FPM端口的訪問,僅允許必要的IP訪問。通過以上配置,可以顯著提高Ubuntu系統上PHP-FPM的安全性,減少潛在的安全風險。