ubuntu lamp如何部署多站点
导读:Ubuntu LAMP 多站点部署指南 一 环境准备 更新系统并安装 LAMP 组件: 命令:sudo apt update && sudo apt install apache2 mysql-server php li...
Ubuntu LAMP 多站点部署指南
一 环境准备
- 更新系统并安装 LAMP 组件:
- 命令:sudo apt update & & sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql
- 验证安装:
- Apache:在浏览器访问服务器 IP,出现默认页面即正常
- PHP:创建 /var/www/html/info.php,内容为 ,访问应显示 PHP 信息页
- 防火墙(如使用 UFW):
- 命令:sudo ufw allow ‘Apache Full’(开放 80/443)
二 基于域名的多站点配置步骤
- 规划目录(示例两个站点):
- 站点1:/var/www/site1,站点2:/var/www/site2
- 命令:sudo mkdir -p /var/www/site1 /var/www/site2
- 创建虚拟主机配置(以站点1为例):
- 新建:sudo nano /etc/apache2/sites-available/site1.conf
- 示例配置:
< VirtualHost *:80> ServerAdmin webmaster@site1.test ServerName site1.test ServerAlias www.site1.test DocumentRoot /var/www/site1 < Directory /var/www/site1> Options Indexes FollowSymLinks AllowOverride All Require all granted < /Directory> ErrorLog ${ APACHE_LOG_DIR} /site1_error.log CustomLog ${ APACHE_LOG_DIR} /site1_access.log combined < /VirtualHost> - 站点2 使用相同结构,仅修改 ServerName/ServerAlias/DocumentRoot/日志文件名
- 启用站点与默认站点处理:
- 启用:sudo a2ensite site1.conf & & sudo a2ensite site2.conf
- 可选禁用默认站点:sudo a2dissite 000-default.conf
- 检查语法并重启:
- 检查:sudo apache2ctl configtest(应返回 Syntax OK)
- 重启:sudo systemctl restart apache2
- 本地测试解析(无公网 DNS 时):
- Ubuntu 客户端:在 /etc/hosts 添加 “服务器IP site1.test site2.test”
- Windows 客户端:在 C:\Windows\System32\drivers\etc\hosts 添加同样记录
三 基于端口的多站点配置步骤
- 配置监听端口(如新增 8080):
- 编辑:sudo nano /etc/apache2/ports.conf,添加或确认:Listen 8080
- 为站点创建带端口的虚拟主机(示例):
< VirtualHost *:8080> ServerAdmin webmaster@site3.test ServerName site3.test DocumentRoot /var/www/site3 < Directory /var/www/site3> Options Indexes FollowSymLinks AllowOverride All Require all granted < /Directory> ErrorLog ${ APACHE_LOG_DIR} /site3_error.log CustomLog ${ APACHE_LOG_DIR} /site3_access.log combined < /VirtualHost> - 启用站点并重启:sudo a2ensite site3.conf & & sudo systemctl restart apache2
- 访问方式:浏览器打开 http://服务器IP:8080
- 防火墙:如启用 UFW,放行端口 sudo ufw allow 8080
四 常见问题与优化
- 403 Forbidden(权限被拒):
- 确保目录属主与权限正确:sudo chown -R www-data:www-data /var/www/siteX
- 在 中使用:Require all granted;必要时设置目录权限为 755,文件为 644
- 目录列表与索引:
- 生产环境建议关闭目录浏览:Options -Indexes +FollowSymLinks
- .htaccess 与重写规则不生效:
- 确认 中 AllowOverride All
- 启用重写模块:sudo a2enmod rewrite
- 默认站点冲突:
- 多站点时建议禁用默认站点:sudo a2dissite 000-default.conf
- 语法检查与日志排错:
- 语法:sudo apache2ctl configtest
- 错误日志:/var/log/apache2/error.log(或虚拟主机自定义日志)
五 可选配置与后续
- 启用 HTTPS(Let’s Encrypt 免费证书):
- 安装 Certbot:sudo apt install certbot python3-certbot-apache
- 获取并自动配置证书:sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
- 数据库与权限(示例):
- 登录:mysql -u root -p
- 建库与授权:
- CREATE DATABASE db1 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- GRANT ALL ON db1.* TO ‘db1user’@‘localhost’ IDENTIFIED BY ‘StrongPass!’;
- FLUSH PRIVILEGES;
- 远程数据库(如确有需要):
- 编辑 MySQL 配置(如 /etc/mysql/mysql.conf.d/mysqld.cnf 或 /etc/mysql/my.cnf),将 bind-address 改为 0.0.0.0
- 授权远程:GRANT ALL ON db1.* TO ‘db1user’@‘%’ IDENTIFIED BY ‘StrongPass!’; FLUSH PRIVILEGES;
- 注意:开放远程存在安全风险,务必限制来源 IP 并使用强密码
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu lamp如何部署多站点
本文地址: https://pptw.com/jishu/759579.html
