首页主机资讯ubuntu lamp如何部署多站点

ubuntu lamp如何部署多站点

时间2025-11-28 23:34:04发布访客分类主机资讯浏览414
导读: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
Debian清理不必要的软件包 ubuntu lamp版本如何更新

游客 回复需填写必要信息