温馨提示×

ubuntu apache2如何设置密码

小樊
48
2026-10-25 17:00:38
栏目: 智能运维

在 Ubuntu 上使用 Apache2 设置访问密码(HTTP Basic Auth),通常步骤如下:


一、安装所需工具

一般系统已自带,如果没有:

sudo apt update
sudo apt install apache2 apache2-utils

二、创建密码文件

使用 htpasswd 创建用户和密码:

sudo htpasswd -c /etc/apache2/.htpasswd 用户名

首次创建用 -c,之后追加用户不要加 -c,否则会覆盖

示例:

sudo htpasswd -c /etc/apache2/.htpasswd admin

查看文件:

cat /etc/apache2/.htpasswd

三、配置 Apache 密码保护

方式 1:保护整个站点(虚拟主机)

编辑站点配置:

sudo nano /etc/apache2/sites-available/000-default.conf

在 <VirtualHost *:80> 内添加:

<Directory /var/www/html>
    AuthType Basic
    AuthName "Restricted Area"
    AuthUserFile /etc/apache2/.htpasswd
    Require valid-user
</Directory>

方式 2:只保护某个目录

例如保护 /var/www/html/admin:

<Directory /var/www/html/admin>
    AuthType Basic
    AuthName "Admin Area"
    AuthUserFile /etc/apache2/.htpasswd
    Require valid-user
</Directory>

方式 3:使用 .htaccess(不推荐但方便)

  1. 启用 .htaccess:
<Directory /var/www/html>
    AllowOverride AuthConfig
</Directory>
  1. 在要保护的目录中创建 .htaccess:
AuthType Basic
AuthName "Restricted"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

四、启用并重启 Apache

sudo a2enmod auth_basic
sudo systemctl restart apache2

五、测试

浏览器访问:

http://你的服务器IP

会提示输入用户名和密码 ✅


六、常见问题

  • 403 Forbidden:检查目录权限
  • 无密码提示:确认 AuthType / Require 配置正确
  • 想用 HTTPS:建议配合 Let’s Encrypt 使用

如果你是想:

  • 保护 phpMyAdmin
  • 只限制 某个 IP + 密码
  • 使用 Digest 认证

可以告诉我具体场景,我给你对应配置。

0 踩