在Ubuntu系統中配置和調優PHP-FPM(FastCGI Process Manager)是一個重要的過程,可以提高Web服務器的性能和穩定性。以下是一個詳細的指南,涵蓋了從安裝到性能調優的各個方面。
首先,確保你的系統已經安裝了PHP和PHP-FPM。你可以使用以下命令來安裝它們:
sudo apt update
sudo apt install php-fpm
主要配置文件:
php-fpm.conf
:主配置文件。www.conf
:包含PHP-FPM與Web服務器通信的配置。你可以編輯 www.conf
文件來配置PHP-FPM監聽的地址和端口。例如:
sudo nano /etc/php/7.4/fpm/pool.d/www.conf
找到 listen
指令并修改為你想要的地址和端口。例如:
如果你想讓PHP-FPM監聽Unix套接字:
listen /run/php/php7.4-fpm.sock
如果你想讓PHP-FPM監聽TCP端口:
listen 127.0.0.1:9000
配置Web服務器:
Nginx:
編輯Nginx的站點配置文件(通常位于 /etc/nginx/sites-available/
目錄下),添加或修改以下內容:
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;
}
}
然后,重新加載Nginx配置:
sudo nginx -s reload
Apache:
確保啟用了 proxy_fcgi
和 setenvif
模塊:
sudo a2enmod proxy_fcgi setenvif
編輯Apache的站點配置文件(通常位于 /etc/apache2/sites-available/
目錄下),添加或修改以下內容:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
Directory /var/www/html
Options Indexes FollowSymLinks AllowOverride All
Require all granted
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost"
</FilesMatch>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
然后,重新加載Apache配置:
sudo systemctl reload apache2
啟動和啟用PHP-FPM服務:
確保PHP-FPM服務正在運行并設置為開機自啟動:
sudo systemctl start php7.4-fpm
sudo systemctl enable php7.4-fpm
調整進程池設置:
pm.max_children
:設置最大的子進程數量。pm.start_servers
:設置啟動時的進程數量。pm.min_spare_servers
:設置最小空閑進程數量。pm.max_spare_servers
:設置最大空閑進程數量。pm.max_requests
:設置每個子進程在被重新生成之前可以處理的請求數。啟用OPcache:
啟用PHP的OPcache擴展,可以緩存編譯后的PHP代碼,從而減少服務器負載和提高性能。在 php.ini
文件中啟用OPcache,并配置相關參數:
opcache.enable=1
opcache.memory_consumption=64
opcache.validate_timestamps=1
調整內核參數:
增加網絡緩沖區大?。?/p>
sudo sysctl -w net.core.rmem_max=16777216
sudo sysctl -w net.core.wmem_max=16777216
調整TCP連接隊列長度:
sudo sysctl -w net.core.somaxconn=4096
減少 time_wait
狀態連接數量:
sudo sysctl -w net.ipv4.tcp_tw_reuse=1
sudo sysctl -w net.ipv4.tcp_tw_recycle=1
使用更快的存儲:
升級服務器的磁盤存儲,使用更快的SSD硬盤,以提高磁盤I/O性能。
監控和調優:
定期監控服務器的性能指標(如CPU、內存、磁盤I/O等),并根據實際情況進行調整??梢允褂霉ぞ呷?htop
、vmstat
、iostat
等。
代碼優化:
對PHP代碼進行優化,減少不必要的計算和內存使用,提高代碼執行效率??梢允褂么a分析工具和性能監控工具來找出性能瓶頸。
通過以上步驟,你應該能夠在Ubuntu系統中成功配置和調優PHP-FPM,從而提高Web服務器的性能和穩定性。根據你的具體需求,可能還需要進行其他配置調整。