git-http-backend with apache2.4 Centos 7
git-http-backend with apache2.4 Centos 7
我尝试在我的 apache 服务器上设置一个 Git-server 但它不起作用!
我得到以下 git.conf
SetEnv GIT_PROJECT_ROOT /var/www/html/git/project1
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/
<Directory "/var/www/html/git/project1">
Options ExecCGI Indexes
Require all granted
</Directory>
<LocationMatch "^/git/.*/git-receive-pack$">
AuthType Basic
AuthName "Git Access"
AuthUserFile /var/www/html/git/users/.htpasswd
Require valid-user
</LocationMatch>
我创建了一个用户,但我无法访问该站点。
Forbidden
You don't have permission to access /git/ on this server.
如果我注释第 3 行
#ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/
现在我可以访问站点并可以看到 git 存储库。有谁知道我该如何解决这个问题。
英语不是我的第一语言,所以请耐心等待我的文字。
感谢您阅读最诚挚的问候
山姆
正在关注 git http-backend
doc:
SetEnv GIT_PROJECT_ROOT /var/www/git
这应该是您拥有 git 存储库(repo1.git、repo2.git、...)的根文件夹。它不应该是 /git/project1
,它看起来像 repo 本身的名称。
所以试试这个例子:
SetEnv GIT_PROJECT_ROOT /var/www/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/
<LocationMatch "^/git/.*/git-receive-pack$">
AuthType Basic
AuthName "Git Access"
Require group committers
...
</LocationMatch>
注意:在互动环节之后,您需要确定:
- apache 读取或服务的数据属于 apache:apache (chown -R)
- SElinux (Security-Enhanced Linux)允许httpd服务读取Z:ls -Z
如果后面的点不包括httd_rw,您需要键入(如“How come my Apache can only access root owned files?”),以更改其上下文:
chcon -vR --type=httpd_sys_content_t /html/
我尝试在我的 apache 服务器上设置一个 Git-server 但它不起作用! 我得到以下 git.conf
SetEnv GIT_PROJECT_ROOT /var/www/html/git/project1
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/
<Directory "/var/www/html/git/project1">
Options ExecCGI Indexes
Require all granted
</Directory>
<LocationMatch "^/git/.*/git-receive-pack$">
AuthType Basic
AuthName "Git Access"
AuthUserFile /var/www/html/git/users/.htpasswd
Require valid-user
</LocationMatch>
我创建了一个用户,但我无法访问该站点。
Forbidden
You don't have permission to access /git/ on this server.
如果我注释第 3 行
#ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/
现在我可以访问站点并可以看到 git 存储库。有谁知道我该如何解决这个问题。 英语不是我的第一语言,所以请耐心等待我的文字。 感谢您阅读最诚挚的问候 山姆
正在关注 git http-backend
doc:
SetEnv GIT_PROJECT_ROOT /var/www/git
这应该是您拥有 git 存储库(repo1.git、repo2.git、...)的根文件夹。它不应该是 /git/project1
,它看起来像 repo 本身的名称。
所以试试这个例子:
SetEnv GIT_PROJECT_ROOT /var/www/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/
<LocationMatch "^/git/.*/git-receive-pack$">
AuthType Basic
AuthName "Git Access"
Require group committers
...
</LocationMatch>
注意:在互动环节之后,您需要确定:
- apache 读取或服务的数据属于 apache:apache (chown -R)
- SElinux (Security-Enhanced Linux)允许httpd服务读取Z:ls -Z
如果后面的点不包括httd_rw,您需要键入(如“How come my Apache can only access root owned files?”),以更改其上下文:
chcon -vR --type=httpd_sys_content_t /html/