首页主机资讯ubuntu apache虚拟主机如何设置

ubuntu apache虚拟主机如何设置

时间2025-12-11 13:02:03发布访客分类主机资讯浏览941
导读:Ubuntu 下 Apache 虚拟主机设置指南 一 准备与目录结构 安装 Apache:sudo apt update && sudo apt install apache2 启用常用模块(按需):sudo a2enmo...

Ubuntu 下 Apache 虚拟主机设置指南

一 准备与目录结构

  • 安装 Apache:sudo apt update & & sudo apt install apache2
  • 启用常用模块(按需):sudo a2enmod rewrite;如需 HTTPS:sudo a2enmod ssl
  • Ubuntu 的 Apache 采用“分文件 + 软链”机制:站点配置放在 /etc/apache2/sites-available/,启用后通过软链到 /etc/apache2/sites-enabled/;主配置 /etc/apache2/apache2.conf 会自动包含这些目录,便于按站点启停管理。

二 创建并启用虚拟主机

  • 创建站点目录与示例首页:
    • sudo mkdir -p /var/www/example.com
    • echo “Hello example.com” | sudo tee /var/www/example.com/index.html
  • 新建站点配置:
    • sudo nano /etc/apache2/sites-available/example.com.conf
    • 写入示例(*:80 为 HTTP 端口):
      <
          VirtualHost *:80>
          
          ServerAdmin webmaster@example.com
          ServerName example.com
          ServerAlias www.example.com
          DocumentRoot /var/www/example.com
      
          <
          Directory /var/www/example.com>
          
              Options Indexes FollowSymLinks
              AllowOverride All
              Require all granted
          <
          /Directory>
      
      
          ErrorLog ${
      APACHE_LOG_DIR}
      /example.com_error.log
          CustomLog ${
      APACHE_LOG_DIR}
          /example.com_access.log combined
      <
          /VirtualHost>
          
      
  • 启用站点与(可选)禁用默认站点:
    • sudo a2ensite example.com.conf
    • sudo a2dissite 000-default.conf(如不需要默认站点)
  • 检查语法并重新加载:
    • sudo apache2ctl configtest
    • sudo systemctl reload apache2
  • 说明:
    • 将日志拆分到站点目录(如 example.com_error.log)便于排错与审计。
    • 若使用 .htaccess,需将目录中的 AllowOverride 设为 All

三 DNS 与本地测试

  • 域名解析:在域名 DNS 管理添加 A 记录 指向服务器公网 IP;如需同时支持 www,可添加 CNAME 指向主域名或再添加一条 A 记录。
  • 本地测试(无公网域名时):
    • 编辑本机 hosts:sudo nano /etc/hosts
    • 添加行:127.0.0.1 example.com www.example.com
    • 浏览器访问:http://example.com
  • 端口与监听:如需改用其他端口(如 8080),在 /etc/apache2/ports.conf 添加 Listen 8080,并将 VirtualHost 改为 < VirtualHost *:8080>

四 启用 HTTPS 与自动续期

  • 安装 Certbot:sudo apt install certbot python3-certbot-apache
  • 获取并配置证书(同时处理 example.com 与 www.example.com):
    • sudo certbot --apache -d example.com -d www.example.com
  • 自动续期:
    • sudo systemctl enable --now certbot.timer
    • 测试续期:sudo certbot renew --dry-run
  • 完成后,Certbot 会自动创建 HTTPS 虚拟主机并做 HTTP→HTTPS 重定向(若选择)。

五 常用排错与优化

  • 语法与虚拟主机匹配检查:
    • sudo apache2ctl configtest
    • sudo apache2ctl -S(或 httpd -S),可查看加载的站点与匹配规则
  • 权限与目录:
    • 确保目录属主为 www-data:sudo chown -R www-data:www-data /var/www/example.com
    • 目录权限建议 755,文件 644
  • 常见问题:
    • 端口被占用:检查 sudo lsof -iTCP:80 -sTCP:LISTENss -tlnp | grep :80
    • 403 Forbidden:检查 Require all granted 与目录权限
    • 域名访问到默认页:确认已 a2ensite 目标站点并禁用 000-default.conf,且 DNS 已生效
  • 性能与安全建议:
    • 开启 mod_rewrite 以支持框架路由(如 Laravel、WordPress 固定链接)
    • 关闭目录浏览(生产环境将 Options Indexes 移除)
    • 启用 HTTP/2(在启用 SSL 后,按需加载相关模块并调整 MPM)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ubuntu apache虚拟主机如何设置
本文地址: https://pptw.com/jishu/769299.html
Linux FTP Server如何配置自动备份 怎样监控Linux FTP Server的运行状态

游客 回复需填写必要信息