在Linux下,PHP-FPM(FastCGI Process Manager)的權限設置對于確保系統安全和正常運行非常重要。以下是一些建議的權限設置:
用戶和組設置:
PHP-FPM通常以一個特定的用戶和組身份運行,例如www-data或php-fpm。這樣可以限制PHP-FPM進程訪問其他系統資源的能力。你可以在/etc/php-fpm.d/www.conf(或其他相應的配置文件)中找到這些設置。
user = www-data
group = www-data
確保這個用戶和組擁有訪問你的網站文件和目錄的權限。通常,將文件權限設置為644,目錄權限設置為755是一個不錯的選擇。
監聽套接字或端口的權限: PHP-FPM可以通過Unix套接字或TCP/IP端口與Web服務器通信。確保監聽套接字的文件權限設置正確,以防止未經授權的訪問。例如,如果你使用Unix套接字,可以這樣設置:
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
如果你使用TCP/IP端口,請確保防火墻允許相應的端口通信。
文件和目錄權限: 確保你的網站文件和目錄權限設置正確。通常,將文件權限設置為644,目錄權限設置為755是一個不錯的選擇。對于包含敏感信息的文件(如數據庫配置文件),可以設置更嚴格的權限,例如600。
PHP-FPM進程限制:
在/etc/php-fpm.d/www.conf中,你可以設置PHP-FPM進程的數量和資源限制。例如,你可以限制每個子進程的最大請求數,以防止內存泄漏:
pm.max_requests = 500
你還可以設置進程管理器類型(如dynamic、static或ondemand)以及啟動的子進程數量。
安全模塊和配置:
根據你的需求,可以考慮啟用PHP安全模塊,如OPcache、Xdebug等。同時,確保你的PHP配置文件(php.ini)中的設置是安全的,例如禁用危險的功能(如allow_url_fopen)。
總之,確保PHP-FPM在Linux下的權限設置正確,可以提高系統安全性并防止潛在的攻擊。請根據你的具體需求和環境調整這些建議。