Apache 网络服务器要求有效用户导致内部服务器错误

Apache webserver Require valid-user leads to internal server error

我正在设置一个 SVN 服务器并想限制访问,这样所有用户都必须先登录才能 view/modify 文件。我的 dav_svn.conf 看起来像这样:

<Location /svn>
  DAV svn
  SVNParentPath /home/pi/repos
  # Authentication: Digest
  AuthName "Subversion repository"
  AuthType Digest
  AuthUserFile /etc/apache2/svn-auth.htdigest
  # Authorization: Authenticated users only
  Require valid-user
</Location>

当我尝试访问网页时,它显示 "Internal Server Error"。查看“/var/log/apache2/error.log”内部显示以下行:

[Mon Sep 11 20:36:47.755229 2017] [authn_core:error] [pid 30331:tid 1972368432] [client 192.168.0.103:59263] AH01796: AuthType Digest configured without corresponding module, referer: http://192.168.0.100/svn/A/

我可以通过在 "Require valid-user" 周围放置一个额外的 XML 标签来更改 dav_svn.conf 来 "fix" 错误:

<LimitExcept GET PROPFIND OPTIONS REPORT>
  Require valid-user
</LimitExcept>

但是,有了这个,我显然向所有人和他们的母亲开放了观看权。我也可以通过尝试访问该网页来验证这一点,我确实没有密码就进入了。尝试 POST 时,我再次遇到同样的错误。

我已经多次尝试在线搜索错误,但是除了给出这个例子的无数例子之外,似乎没有人对此有任何问题...非常感谢帮助。

好的,事实证明默认情况下未启用身份验证功能的这个特定部分。我在网上找到的例子没有提到的东西。我做了以下事情:

sudo a2enmod auth_digest

给出了这个输出:

Considering dependency authn_core for auth_digest:
Module authn_core already enabled
Enabling module auth_digest.
To activate the new configuration, you need to run:
service apache2 restart

所以 authn_core 已经启用,但不是摘要。这很奇怪,因为已经可以创建摘要密码文件了:

sudo htdigest -c /etc/apache2/svn-auth.htdigest realm "Subversion repository"