温馨提示×

centos lnmp如何实现多站点托管

小樊
45
2025-10-09 05:57:45
栏目: 智能运维

在CentOS上使用LNMP(Linux, Nginx, MySQL, PHP)实现多站点托管,可以通过配置Nginx来实现。以下是一个基本的步骤指南:

1. 安装必要的软件

首先,确保你已经安装了Nginx、MySQL和PHP。如果没有安装,可以使用以下命令进行安装:

sudo yum install epel-release
sudo yum install nginx mysql-server php-fpm php-mysqlnd

2. 启动并启用服务

启动Nginx和MySQL服务,并设置它们开机自启:

sudo systemctl start nginx
sudo systemctl enable nginx

sudo systemctl start mysqld
sudo systemctl enable mysqld

3. 配置MySQL

登录到MySQL并创建数据库和用户:

sudo mysql -u root -p

在MySQL shell中执行以下命令:

CREATE DATABASE site1;
CREATE USER 'site1user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON site1.* TO 'site1user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

重复上述步骤为其他站点创建数据库和用户。

4. 配置Nginx

为每个站点创建一个Nginx配置文件。假设你有两个站点:site1.comsite2.com

站点1配置 (/etc/nginx/conf.d/site1.conf)

server {
    listen 80;
    server_name site1.com www.site1.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:/var/run/php-fpm/site1.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

站点2配置 (/etc/nginx/conf.d/site2.conf)

server {
    listen 80;
    server_name site2.com www.site2.com;

    root /var/www/site2;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php-fpm/site2.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

5. 创建站点目录

为每个站点创建相应的目录,并设置权限:

sudo mkdir -p /var/www/site1
sudo mkdir -p /var/www/site2

sudo chown -R nginx:nginx /var/www/site1
sudo chown -R nginx:nginx /var/www/site2

6. 配置PHP-FPM

为每个站点配置PHP-FPM池。编辑PHP-FPM配置文件:

sudo vi /etc/php-fpm.d/www.conf

找到并修改以下行:

listen = /var/run/php-fpm/site1.sock
;listen = /var/run/php-fpm/site2.sock

然后重启PHP-FPM服务:

sudo systemctl restart php-fpm

7. 测试配置并重启Nginx

测试Nginx配置是否正确:

sudo nginx -t

如果没有错误,重启Nginx服务:

sudo systemctl restart nginx

8. 更新DNS记录

确保你的域名(如 site1.comsite2.com)指向你的服务器IP地址。

9. 创建站点文件

在相应的目录中创建HTML或PHP文件,例如:

echo "Welcome to Site 1" | sudo tee /var/www/site1/index.php
echo "Welcome to Site 2" | sudo tee /var/www/site2/index.php

现在,你应该能够通过访问 http://site1.comhttp://site2.com 来访问你的站点。

通过以上步骤,你可以在CentOS上使用LNMP实现多站点托管。

0