温馨提示×

Debian Apache虚拟主机配置方法

小樊
43
2025-12-27 15:49:30
栏目: 云计算

Debian Apache 虚拟主机配置方法

一 准备与安装

  • 更新索引并安装 Apache:sudo apt update && sudo apt install apache2
  • 启动并设置开机自启:sudo systemctl start apache2 && sudo systemctl enable apache2
  • 启用常用模块(按需):sudo a2enmod rewrite ssl
  • 防火墙放行(如使用 UFW):sudo ufw allow ‘Apache Full’

二 创建站点目录与测试页

  • 创建目录:sudo mkdir -p /var/www/example.com
  • 写入测试页:echo “

    Welcome to example.com

    ” | sudo tee /var/www/example.com/index.html
  • 设置权限:sudo chown -R www-data:www-data /var/www/example.com && sudo chmod -R 755 /var/www/example.com

三 新建虚拟主机配置文件

  • 新建配置文件:sudo nano /etc/apache2/sites-available/example.com.conf
  • 写入示例(按需修改域名与路径):
<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>
  • 说明:使用 -Indexes 可避免目录无索引文件时列目录;AllowOverride All 便于 .htaccess 生效(如 WordPress 固定链接);日志建议按站点拆分便于排错。

四 启用站点与生效

  • 启用站点:sudo a2ensite example.com.conf
  • 可选禁用默认站点:sudo a2dissite 000-default.conf
  • 语法检查:sudo apache2ctl configtest
  • 重新加载或重启:sudo systemctl reload apache2(或 restart)

五 DNS 与访问测试

  • 在域名注册商添加 A 记录 指向服务器 IP;如需 www,可同时添加 www 的 A 记录或 CNAME 指向主域。
  • 本机测试可临时修改 /etc/hosts:例如 “1.2.3.4 example.com www.example.com”,然后访问 http://example.com 验证。

六 启用 HTTPS 与常见问题

  • 使用 Let’s Encrypt 获取并自动配置证书:sudo apt install certbot python3-certbot-apache,随后执行 sudo certbot --apache -d example.com -d www.example.com;证书会自动续期。
  • 常见问题与排查:
    • 配置未生效:先执行 sudo apache2ctl configtest 检查语法,再查看 /var/log/apache2/error.log 定位问题。
    • 权限被拒:确认目录属主为 www-data:www-data,权限为 755
    • 端口未放行:如使用防火墙,放行 80/443(UFW:sudo ufw allow ‘Apache Full’)。
    • 多域名与默认站点:确保 ServerName/ServerAlias 匹配请求的 Host 头;必要时禁用默认站点避免冲突。

0