Apache 虚拟主机账号密码访问权限设置方法

一、核心原理

某个虚拟主机开启 HTTP 基础认证,访问时弹出登录框:
  • 输入正确账号密码 → 能看网站
  • 输错 / 取消 → 401 拒绝访问

二、3 步完成设置(新手必看)

第一步:生成密码文件(关键)

Apache 需要一个专门存账号密码的文件(.htpasswd

1. Windows(XAMPP)

打开 CMD 命令行,进入 xampp/apache/bin
cmd
D:
cd D:\xampp\apache\bin
执行命令生成账号密码(把 admin 换成你要的账号):
cmd
htpasswd -c "D:\xampp\apache\conf\.htpasswd" admin
然后输入两次密码,生成成功!

2. Linux(CentOS / Ubuntu)

bash
运行
# 先安装工具
yum install httpd-tools -y   # CentOS
apt install apache2-utils -y # Ubuntu

# 生成账号密码(admin 是账号)
htpasswd -c /etc/httpd/.htpasswd admin

第二步:在虚拟主机中加入密码配置

打开你的虚拟主机配置文件,加入以下配置:

完整示例(直接复制)

apache
<VirtualHost *:80>
    ServerName www.mimasi.com
    DocumentRoot "D:/xampp/htdocs/mimasi"

    # ========= 账号密码权限 开始 =========
    <Directory "D:/xampp/htdocs/mimasi">
        AllowOverride All
        AuthType Basic
        AuthName "请登录后台"  # 弹窗提示文字
        AuthUserFile "D:/xampp/apache/conf/.htpasswd"  # 密码文件路径
        Require valid-user       # 验证通过才能访问
    </Directory>
    # ========= 账号密码权限 结束 =========

</VirtualHost>

Linux 路径版

apache
AuthUserFile "/etc/httpd/.htpasswd"

第三步:重启 Apache 生效

  • Windows:XAMPP → Stop Apache → Start
  • Linux
    bash
    运行
    systemctl restart httpd   # CentOS
    systemctl restart apache2 # Ubuntu
    

三、测试效果

访问你的网站:
plaintext
http://www.mimasi.com
自动弹出账号密码登录框,输入你设置的账号密码才能进入 ✅

四、添加多个账号(可选)

第一次用 -c之后加账号不要用 -c(会覆盖文件):
cmd
htpasswd "D:\xampp\apache\conf\.htpasswd" user2

五、最常见问题

  1. 不弹密码框 / 直接访问

    密码配置没写在 <VirtualHost> 内部

  2. 弹框但总提示错误

    密码文件路径写错

  3. 403 无权限

    缺少 <Directory> 配置


总结

  1. htpasswd 生成密码文件
  2. 在虚拟主机里加入 4 行认证配置
  3. 重启 Apache 完成
上一篇 华为CE交换机-配置通过VLAN hand-off实现DCI互联示例
下一篇 常见数据库国产替换