Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 无法通过智能http推送目录_Git_Redmine_Smart Http - Fatal编程技术网

Git 无法通过智能http推送目录

Git 无法通过智能http推送目录,git,redmine,smart-http,Git,Redmine,Smart Http,我已经连续两天在做这件事了,现在我放弃了独自寻找解决方案。 我正在尝试在服务器上设置Redmine-这部分进行得很顺利。我也在尝试安装git存储库,但尽管我已经能够通过SSH很好地克隆和拉取,但我在HTTP上也很难做到这一点 首先,这里是详细的git推送错误: ================================================================ $GIT\u CURL\u VERBOSE=1 GIT推送主机 *在_netrc文件中找不到主机192.16

我已经连续两天在做这件事了,现在我放弃了独自寻找解决方案。 我正在尝试在服务器上设置Redmine-这部分进行得很顺利。我也在尝试安装git存储库,但尽管我已经能够通过SSH很好地克隆和拉取,但我在HTTP上也很难做到这一点

首先,这里是详细的git推送错误:

================================================================

$GIT\u CURL\u VERBOSE=1 GIT推送主机 *在_netrc文件中找不到主机192.168.0.13;使用默认值 *即将连接()到192.168.0.13端口80(#0) *正在尝试192.168.0.13…*0x20ab4f0位于发送管头处! *连接到192.168.0.13(192.168.0.13)端口80(#0)

GET/gitweb/Project/info/refs?service=git接收包HTTP/1.1 用户代理:git/1.7.4.3282.g844cb 主机:192.168.0.13 接受:/ Pragma:没有缓存

  • 请求的URL返回错误:403
  • 过期清除
  • 正在关闭连接#0
  • 在_netrc文件中找不到主机192.168.0.13;使用默认值
  • 即将连接()到192.168.0.13端口80(#0)
  • 正在尝试192.168.0.13…*0x20ab4f0位于发送管头处
  • 连接到192.168.0.13(192.168.0.13)端口80(#0)

    GET/gitweb/Project/info/refs HTTP/1.1 用户代理:git/1.7.4.3282.g844cb 主机:192.168.0.13 接受:/ Pragma:没有缓存

  • 请求的URL返回错误:403

  • 正在关闭连接#0 错误:访问时请求的URL返回错误:403 /gitweb/Project/info/refs
致命:HTTP请求失败

================================================================

因此,显然存在一些配置错误的权限,尽管我已将存储库文件夹临时命名为777

我想您也会对apache的配置感兴趣:

================================================================

服务器管理员webmaster@localhost

[...snip...]

PerlLoadModule Apache::Redmine
SetEnv GIT_PROJECT_ROOT /var/cache/git/
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/

<Location "/git/">
    DAV on
    AuthType Basic
    AuthName "Git Repository"
    Require valid-user

    PerlAccessHandler Apache::Authn::Redmine::access_handler
    PerlAuthenHandler Apache::Authn::Redmine::authen_handler

    RedmineDSN "DBI:mysql:database=redmine;host=localhost"
    RedmineDbUser "redmine" 
    RedmineDbPass "XXXXXXX" 
    RedmineGitSmartHttp yes
</Location>

Alias /gitweb/ "/var/cache/git/public/"
<Location "/gitweb/">
    Order deny,allow
    Deny from all
    <Limit GET PROPFIND OPTIONS REPORT>
       Options Indexes FollowSymLinks MultiViews
       Allow from 127.0.0.1
       Allow from localhost
    </Limit>
</Location>
[…剪断…]
PerllodModule Apache::Redmine
SetEnv GIT_PROJECT_ROOT/var/cache/GIT/
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias/git//usr/lib/git-core/git-http后端/
达文
AuthType Basic
AuthName“Git存储库”
需要有效用户
PerlAccessHandler Apache::Authn::Redmine::access\u处理程序
PerlAuthenHandler Apache::Authn::Redmine::authen\u处理程序
RedmineDSN“DBI:mysql:database=redmine;host=localhost”
RedmineDbUser“redmine”
红色通道“XXXXXXX”
RedmineGitSmartHttp是
别名/gitweb/“/var/cache/git/public/”
命令拒绝,允许
全盘否定
选项索引跟随符号链接多视图
允许从127.0.0.1开始
允许从本地主机

================================================================


所以,如果有人能给我一个提示,告诉我该做什么,我会非常感激。提前谢谢

您似乎没有使用任何身份验证。默认情况下,git只允许在使用身份验证时通过智能http推送

您应该能够向正在使用的url添加用户名并提示您输入密码,或者您可以在_netrc文件中设置用户名和密码。

好的,问题解决:)这是要严格遵循的教程:

在我的例子中,最终条目如下所示:

PerlLoadModule Apache::Redmine

Alias /git/ "/var/cache/git/public/"
<Directory "/git/">
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<Location "/git/">
    DAV on
    AuthType Basic
    AuthName "My Git Repository"
    Require valid-user

    PerlAccessHandler Apache::Authn::Redmine::access_handler
    PerlAuthenHandler Apache::Authn::Redmine::authen_handler

    RedmineDSN "DBI:mysql:database=redmine;host=localhost"
    RedmineDbUser "redmine" 
    RedmineDbPass "XXXXXXX" 
    RedmineGitSmartHttp yes
</Location>
PerlLoadModule Apache::Redmine 别名/git/“/var/cache/git/public/” 选项无 不允许超限 命令允许,拒绝 通融 达文 AuthType Basic AuthName“我的Git存储库” 需要有效用户 PerlAccessHandler Apache::Authn::Redmine::access\u处理程序 PerlAuthenHandler Apache::Authn::Redmine::authen\u处理程序 RedmineDSN“DBI:mysql:database=redmine;host=localhost” RedmineDbUser“redmine” 红色通道“XXXXXXX” RedmineGitSmartHttp是
重点是使用Redmine的内置身份验证系统——这就是PerlAccessHandler的作用所在。我同意应该提示我输入密码。netrc文件是客户端,用于告诉curl要发送到服务器的用户名和密码。