在 Ubuntu 下優化 PHP-FPM 配置可以顯著提升 PHP 應用程序的性能。以下是一些常見的優化步驟和建議:
首先,確保你已經安裝了 PHP-FPM。你可以使用以下命令來安裝:
sudo apt update
sudo apt install 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
。
編輯 www.conf
文件,調整以下參數:
pm
:選擇進程管理方式,推薦使用 dynamic
或 ondemand
。
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests
:每個子進程在重啟之前可以處理的請求數量,有助于防止內存泄漏。
pm.max_requests = 500
request_terminate_timeout
:設置腳本的最大執行時間。request_terminate_timeout = 30s
catch_workers_output
:設置為 yes
可以捕獲子進程的輸出到主進程日志。catch_workers_output = yes
如果你使用 Nginx 或 Apache 作為 Web 服務器,確保它們的配置與 PHP-FPM 正確集成。
編輯 Nginx 配置文件(通常位于 /etc/nginx/sites-available/default
),確保 fastcgi_pass 指向正確的 PHP-FPM 監聽地址和端口:
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 根據你的 PHP 版本調整
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
如果你使用 Apache,確保啟用了 proxy_fcgi
模塊,并在虛擬主機配置中添加以下內容:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
使用監控工具(如 htop
、php-fpm status
)來監控 PHP-FPM 的性能,并根據實際情況進一步調整配置參數。
啟用 OPcache:在 php.ini
文件中啟用 OPcache 可以顯著提高 PHP 腳本的執行速度。
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
調整數據庫連接:如果你使用數據庫,確保數據庫連接池配置正確,避免頻繁的連接和斷開操作。
通過以上步驟,你可以有效地優化 Ubuntu 下的 PHP-FPM 配置,提升應用程序的性能。