在Ubuntu上實現PHP-FPM集群部署可以通過多種方式來完成,其中一種常見的方法是使用Nginx作為反向代理服務器,并將請求分發到多個PHP-FPM實例。以下是一個基本的步驟指南:
首先,確保你的系統是最新的:
sudo apt update
sudo apt upgrade
然后安裝Nginx和PHP-FPM:
sudo apt install nginx php-fpm
編輯PHP-FPM配置文件,通常位于 /etc/php/7.x/fpm/pool.d/www.conf
(根據你的PHP版本調整路徑):
sudo nano /etc/php/7.x/fpm/pool.d/www.conf
找到并修改以下行,設置監聽地址和端口:
listen = /run/php/php7.x-fpm.sock
或者如果你更喜歡使用TCP/IP:
listen = 127.0.0.1:9000
保存并退出編輯器。
啟動PHP-FPM服務并設置為開機自啟:
sudo systemctl start php7.x-fpm
sudo systemctl enable php7.x-fpm
編輯Nginx的默認站點配置文件,通常位于 /etc/nginx/sites-available/default
:
sudo nano /etc/nginx/sites-available/default
在 server
塊中添加或修改以下內容,配置反向代理:
server {
listen 80;
server_name your_domain.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.x-fpm.sock; # 或者使用 tcp:127.0.0.1:9000
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
保存并退出編輯器。
啟動Nginx服務并設置為開機自啟:
sudo systemctl start nginx
sudo systemctl enable nginx
如果你有多個PHP-FPM實例,可以使用Nginx的負載均衡功能。編輯Nginx配置文件,添加負載均衡配置:
sudo nano /etc/nginx/nginx.conf
在 http
塊中添加以下內容:
upstream php_backend {
server unix:/run/php/php7.x-fpm.sock; # 第一個PHP-FPM實例
server unix:/run/php/php7.y-fpm.sock; # 第二個PHP-FPM實例
# 可以添加更多實例
}
server {
listen 80;
server_name your_domain.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 php_backend;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
保存并退出編輯器。
應用配置更改:
sudo systemctl restart nginx
確保所有服務都正常運行:
sudo systemctl status nginx
sudo systemctl status php7.x-fpm
訪問你的域名,確保請求被正確分發到多個PHP-FPM實例。
通過以上步驟,你可以在Ubuntu上實現PHP-FPM的集群部署。根據實際需求,你可以進一步優化和擴展配置。