温馨提示×

ubuntu apache怎样设密码

小樊
36
2026-10-14 00:48:21
栏目: 智能运维

在 Ubuntu 上用 Apache 给网站或目录设置访问密码,通常是通过 基本身份认证(Basic Auth) 来实现的。下面是最常用的做法:


一、安装必要工具

Apache 一般已经装好,主要需要 htpasswd 工具:

sudo apt update
sudo apt install apache2 apache2-utils

二、创建密码文件

假设你想保护的用户叫 admin:

sudo htpasswd -c /etc/apache2/.htpasswd admin
  • 第一次创建用 -c
  • 之后加用户不要加 -c,否则会覆盖:
sudo htpasswd /etc/apache2/.htpasswd user2

查看文件内容(已加密):

cat /etc/apache2/.htpasswd

三、配置 Apache 启用密码保护

方法 1:保护整个站点或目录(推荐)

编辑站点配置,例如:

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

在 <VirtualHost> 里加:

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

/var/www/html/secret 是你想保护的目录


方法 2:用 .htaccess(更简单但稍慢)

  1. 允许 .htaccess 生效:
<Directory /var/www/html>
    AllowOverride AuthConfig
</Directory>
  1. 在要保护的目录里创建 .htaccess:
sudo nano /var/www/html/secret/.htaccess

内容:

AuthType Basic
AuthName "Restricted"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

四、启用并重启 Apache

sudo a2enmod auth_basic
sudo systemctl restart apache2

五、测试

浏览器访问:

http://你的服务器IP/secret/

会弹出用户名和密码框 ✅


六、常见问题

1. 提示 500 错误

  • 检查 .htpasswd 路径是否正确
  • 检查文件权限:
sudo chmod 644 /etc/apache2/.htpasswd

2. 想只允许某个 IP + 密码

Require valid-user
Require ip 192.168.1.100

3. 不使用密码,只允许 IP

Require ip 192.168.1.0/24

如果你告诉我:

  • 是 整个网站 还是 某个目录
  • 用 配置文件 还是 .htaccess
  • Ubuntu 版本

我可以给你更精确的配置示例。

0 踩