在Ubuntu上優化PHP-FPM(FastCGI Process Manager)的啟動時間可以通過多種方法來實現。以下是一些常見的優化步驟:
編輯PHP-FPM的配置文件 /etc/php/7.x/fpm/pool.d/www.conf
(請根據你的PHP版本調整路徑)。
pm = dynamic
:使用動態進程管理模式。pm.max_children = 50
:設置最大子進程數。pm.start_servers = 5
:啟動時的服務器進程數。pm.min_spare_servers = 5
:最小空閑服務器進程數。pm.max_spare_servers = 35
:最大空閑服務器進程數。request_terminate_timeout = 0
:禁用請求超時,適用于長時間運行的腳本。確保你的Web服務器(如Nginx或Apache)配置了與PHP-FPM的持久連接。
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.x-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php/php7.x-fpm.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
OPcache可以顯著提高PHP腳本的執行速度。
sudo apt-get install php7.x-opcache
編輯 /etc/php/7.x/cli/php.ini
和 /etc/php/7.x/fpm/php.ini
文件,添加或修改以下配置:
[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
啟用慢日志可以幫助你識別和優化慢查詢。
編輯 /etc/php/7.x/fpm/pool.d/www.conf
文件,添加或修改以下配置:
request_slowlog_timeout = 10s
slowlog = /var/log/php-fpm/www-slow.log
如果你使用的是Systemd,可以通過調整服務配置來優化PHP-FPM的啟動時間。
sudo nano /etc/systemd/system/php7.x-fpm.service
在 [Service]
部分添加以下參數:
ExecStartPre=/bin/sleep 5
sudo systemctl daemon-reload
sudo systemctl restart php7.x-fpm
使用工具如 htop
、top
、systemd-cgtop
等監控系統資源使用情況,分析PHP-FPM的性能瓶頸。
通過以上步驟,你可以有效地優化Ubuntu上PHP-FPM的啟動時間。根據你的具體需求和環境,可能需要進一步調整配置。