ubuntu

如何使用Ubuntu PHP-FPM进行多站点配置

小樊
64
2025-04-05 15:01:31
栏目: 编程语言

在Ubuntu上使用PHP-FPM进行多站点配置,可以让你在同一台服务器上托管多个独立的网站。以下是一个基本的步骤指南:

1. 安装PHP-FPM

首先,确保你已经安装了PHP和PHP-FPM。你可以使用以下命令来安装它们:

sudo apt update
sudo apt install php-fpm php-cli php-mysql

2. 配置PHP-FPM池

PHP-FPM使用池(pool)来管理不同的PHP进程。你可以为每个网站创建一个单独的池。

创建一个新的PHP-FPM池配置文件

sudo cp /etc/php/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/site1.conf

编辑新的池配置文件(例如site1.conf):

sudo nano /etc/php/7.4/fpm/pool.d/site1.conf

修改以下内容:

[site1]
user = www-data
group = www-data
listen = /run/php/php7.4-fpm-site1.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
php_value[sendmail_path] = /usr/sbin/sendmail -t -i
php_admin_value[error_log] = /var/log/php7.4-fpm-site1.log
php_admin_flag[log_errors] = on

3. 配置Nginx

假设你已经安装了Nginx,接下来配置Nginx以使用PHP-FPM处理请求。

创建一个新的Nginx服务器块配置文件

sudo nano /etc/nginx/sites-available/site1

添加以下内容:

server {
    listen 80;
    server_name site1.example.com;

    root /var/www/site1;
    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-site1.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

启用新的服务器块配置:

sudo ln -s /etc/nginx/sites-available/site1 /etc/nginx/sites-enabled/

测试Nginx配置:

sudo nginx -t

重新加载Nginx:

sudo systemctl reload nginx

4. 重复步骤2和3

为其他网站重复上述步骤,只需更改池配置文件和Nginx服务器块配置文件中的相关部分。

5. 配置DNS

确保你的域名(例如site1.example.com)指向你的服务器IP地址。你可以使用DNS提供商的管理界面来配置DNS记录。

6. 测试

访问你的网站,确保一切正常运行。例如,访问http://site1.example.com应该显示你的网站内容。

通过以上步骤,你可以在Ubuntu上使用PHP-FPM进行多站点配置。每个网站都有自己的PHP-FPM池和Nginx服务器块,这样可以更好地隔离和管理不同的网站。

0
看了该问题的人还看了