在 Ubuntu 上安全配置 PHP-FPM 的步驟如下:
安裝 PHP-FPM: 在終端中運行以下命令以安裝 PHP-FPM:
sudo apt-get update
sudo apt-get install php-fpm
配置 PHP-FPM:
PHP-FPM 的配置文件位于 /etc/php/{version}/fpm/pool.d/www.conf
,其中 {version}
是您安裝的 PHP 版本。例如,如果您安裝的是 PHP 7.4,則配置文件路徑為 /etc/php/7.4/fpm/pool.d/www.conf
。
使用文本編輯器打開配置文件,例如:
sudo nano /etc/php/7.4/fpm/pool.d/www.conf
在配置文件中,您可以設置以下選項以提高安全性:
listen.owner
和 listen.group
:將這兩個選項設置為非 root 用戶和組,以限制對 PHP-FPM 套接字的訪問。例如:
listen.owner = www-data
listen.group = www-data
listen.mode
:將此選項設置為 0660
,以便只有 owner 和 group 可以訪問 PHP-FPM 套接字。
listen.mode = 0660
user
和 group
:將這兩個選項設置為非 root 用戶和組,以限制 PHP-FPM 進程的權限。例如:
user = www-data
group = www-data
clear_env
:將此選項設置為 no
,以防止 PHP-FPM 進程繼承不必要的環境變量。
clear_env = no
security.limit_extensions
:此選項允許您限制 PHP-FPM 處理的文件擴展名。這可以防止潛在的惡意文件上傳。例如,僅允許處理 PHP 和 HTML 文件:
security.limit_extensions = .php .html
保存并關閉配置文件。
重啟 PHP-FPM: 為了使更改生效,請重啟 PHP-FPM 服務:
sudo systemctl restart php{version}-fpm
將 {version}
替換為您安裝的 PHP 版本,例如:php7.4-fpm
。
配置 Nginx 或 Apache: 根據您使用的 Web 服務器(Nginx 或 Apache),您需要相應地配置它以使用 PHP-FPM。確保將 FastCGI 參數指向正確的 PHP-FPM 套接字,并限制對套接字的訪問。
對于 Nginx,您可以在 /etc/nginx/sites-available/{your-site}
文件中添加以下配置:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php{version}-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
將 {your-site}
替換為您的站點名稱,將 {version}
替換為您安裝的 PHP 版本。
對于 Apache,您需要在 /etc/apache2/sites-available/{your-site}.conf
文件中添加以下配置:
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php{version}-fpm.sock|fcgi://localhost"
</FilesMatch>
將 {your-site}
替換為您的站點名稱,將 {version}
替換為您安裝的 PHP 版本。
保存并關閉配置文件。對于 Nginx,運行 sudo nginx -t
以檢查配置文件的語法,然后運行 sudo systemctl restart nginx
重啟 Nginx。對于 Apache,運行 sudo systemctl restart apache2
重啟 Apache。
現在,您已經在 Ubuntu 上安全地配置了 PHP-FPM。請確保定期更新您的系統和軟件包,以保持安全性。