我想在 Apache Web 服务器后面设置一个 GitLab,并为 Web 界面配置了 htpasswd。
在我当前的设置中,我启动并运行了 GitLab 和使用 docker-compose 作为容器的 Apache。第一次通过浏览器访问我的 GitLab 站点时,我必须输入 htpasswd 凭据。之后,我被定向到登录屏幕。一些简单的测试证明测试用户可以创建项目。
但问题是,由于 Apache 中的 htpasswd,我无法直接使用 git clone
拉出测试存储库(错误:IP - testUser [30/Jul/2021:09:03:35 +0000] "GET /testUser/myfirstproject.git/info/refs?service=git-upload-pack HTTP/1.1" 401 381
)。
这是我的这个虚拟主机的 apache-config。
<VirtualHost *:443>
ServerName <SERVER_NAME>
ServerAdmin <SERVER_ADMIN>
SSLEngine on
SSLProtocol All -SSLv2 -SSLv3
SSLCertificateFile /etc/letsencrypt/live/<SERVER_NAME>/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/<SERVER_NAME>/privkey.pem
DocumentRoot "/var/www/gitlab"
<Location />
AuthType Basic
AuthName "Restricted Files"
# (Following line optional)
AuthBasicProvider file
AuthUserFile "/usr/local/apache2/passwd/password"
Require user auth-user
</Location>
ProxyPass / http://gitlab:80/
ProxyPassReverse / http://gitlab:80/
ErrorLog logs/gitlab_error_log
CustomLog logs/gitlab_access_log common env=!dontlog
</VirtualHost>
我想我需要添加另一个 Location 或 Locationmatch 规则,但目前我不确定我的规则需要是什么才能使我的远程推送、拉取和克隆工作。 git-cli-tool 中是否还有一个选项可以实现这一点?
感谢每一个提示或建议!
更新 30.07
为了让 git cli 与我的 GitLab 一起工作,我必须添加另一个 Locationmatch-Rule,它在 .git
中触发,以存储库结束 位置规则 {{1 }}。
/
由于我不知道我是否以这种方式很好地解决了我的任务,但我仍然期待更好的解决方案或提示建议。