在Ubuntu上配置LNMP(Linux, Nginx, MySQL, PHP)以支持多站点访问,可以按照以下步骤进行:
首先,确保你已经安装了Nginx。如果没有安装,可以使用以下命令进行安装:
sudo apt update
sudo apt install nginx
Nginx使用服务器块(server blocks)来处理不同的域名请求。你需要为每个站点创建一个单独的服务器块文件。
为每个站点创建一个目录来存放网站的文件:
sudo mkdir -p /var/www/site1.com/html
sudo mkdir -p /var/www/site2.com/html
在/etc/nginx/sites-available
目录下为每个站点创建一个服务器块文件。例如,为site1.com
创建一个文件:
sudo nano /etc/nginx/sites-available/site1.com
在文件中添加以下内容:
server {
listen 80;
server_name site1.com www.site1.com;
root /var/www/site1.com/html;
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/php7.4-fpm.sock; # 根据你的PHP版本调整
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
保存并关闭文件。
创建一个符号链接将站点文件链接到sites-enabled
目录:
sudo ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/
测试Nginx配置是否正确:
sudo nginx -t
如果配置正确,你会看到类似以下的输出:
nginx: configuration file /etc/nginx/nginx.conf test is successful
重新加载Nginx以应用新的配置:
sudo systemctl reload nginx
为每个站点创建一个数据库和用户,并授予相应的权限。你可以使用phpMyAdmin或命令行来完成这些操作。
CREATE DATABASE site1_db;
CREATE USER 'site1_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON site1_db.* TO 'site1_user'@'localhost';
FLUSH PRIVILEGES;
确保PHP-FPM正在运行,并且Nginx可以连接到它。你可以使用以下命令启动和启用PHP-FPM:
sudo systemctl start php7.4-fpm
sudo systemctl enable php7.4-fpm
确保你的域名(如site1.com
和site2.com
)已经指向你的服务器IP地址。你可以在你的DNS提供商的控制面板中进行配置。
打开浏览器,访问你的站点(如http://site1.com
),确保一切正常工作。
通过以上步骤,你可以在Ubuntu上配置多个站点访问。每个站点都有自己的目录、Nginx服务器块、数据库和PHP-FPM配置。