首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >配置GitWeb - 404 -未找到项目

配置GitWeb - 404 -未找到项目
EN

Stack Overflow用户
提问于 2012-04-23 14:00:15
回答 6查看 21.9K关注 0票数 17

我在OpenSUSE (非虚拟主机)中通过Apache在我的系统中配置gitweb。但是,我得到以下错误:404 - No projects found

/etc/gitweb.conf

代码语言:javascript
复制
# path to git projects (<project>.git)
$projectroot = "/home/zhijian/gitweb";

# directory to use for temp files
$git_temp = "/tmp";

# target of the home link on top of all pages
#$home_link = $my_uri || "/";

# html text to include at home page
$home_text = "/gitweb/static/indextext.html";

# file with project list; by default, simply scan the projectroot dir.
$projects_list = $projectroot;

# stylesheet to use
$stylesheet = "/gitweb/static/gitweb.css";

# logo to use
$logo = "/gitweb/static/git-logo.png";

# the 'favicon'
$favicon = "/gitweb/static/git-favicon.png";

/etc/apache2/conf.d/gitweb.conf

代码语言:javascript
复制
Alias /gitweb "/home/zhijian/gitweb"

<Directory "/home/zhijian/gitweb">
    Options +Indexes +ExecCGI +FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    AddHandler cgi-script .cgi
    DirectoryIndex gitweb.cgi

</Directory>

我在gitweb文件夹中添加了一个软链接来链接gitweb.cgi和静态文件夹。Apache错误日志显示gitweb.cgi: Can't opendir(/home/zhijian/gitweb): Permission denied,但gitweb文件夹上的权限已设置为755。有没有人知道是什么原因导致了这个问题?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-01-27 21:18:49

gitweb cgi必须与您正在扫描的repo拥有相同的所有者。也就是说,如果您的数据是www- $projectroot :www-data,那么gitweb.cgi也必须是www-data:www-data。

此外,$projectroot下的目录也必须具有相同的权限。您应该能够执行chown -R www-data:www-data .,这应该会有所帮助。您将希望查看权限和所有权,但这更棘手,您需要确保它是正确的并且没有打开任何安全漏洞。

票数 8
EN

Stack Overflow用户

发布于 2013-08-31 11:35:09

我在OpenSuse 11.4中也遇到了同样的问题。在我的例子中(我怀疑这就是最初的发帖者的情况,他也是一名opensuse用户),问题最终被证明是AppArmor的事情,我对它知之甚少。

以下是我注意到的最终解决方案的一些要点:

  • 在OpenSuse中,会安装git - rpm包,以便$projectroot默认位于"/srv/git“文件夹中。如果您在此"/srv/git/...”子文件夹中添加git repos,则一切正常。<>H111如果您决定在其他位置,例如,srv,则它将失败。尽管将所有者设置为wwwrun:www,正如其他帖子中所建议的那样。
    • 这里的问题是AppArmor,它似乎对允许应用程序执行的操作设置了更严格的策略
    • 执行“"/etc/apparmor.d/usr.share.git-web.gitweb.cgi"
    • Open rpm -ql git-web<代码>E223”将显示一个名为:“/etc/apparmor.d/usr.share.git-web.gitweb.cgi
    • Open this file up with su/sudo以便您可以编辑该文件的文件<代码>H228<代码>H129在这里,您将看到以下各行:<代码>H230<代码>F231

..。

代码语言:javascript
复制
/srv/git/ r,
/srv/git/** r,

..。

将它们更改为包含git存储库的父文件夹的路径,例如,如果您将它们存放在"/home/myname/srv/git/",中,则使用""/home/myname/srv/“父文件夹,例如:

..。

代码语言:javascript
复制
/home/myname/srv r,
/home/myname/srv/** r,

..。

  • 将您的更改保存到文件
  • 我认为您还必须将此父文件夹的所有者更改为wwwrun:www,例如,"sudo chown -R wwwrun:www sudo AppArmor
  • “sudo rcapparmor restart"

现在一切都应该很好了:)

票数 12
EN

Stack Overflow用户

发布于 2012-05-16 17:31:43

我也有同样的问题。"404找不到项目“,但配置很好。Apache缓存了404响应,并且没有再次运行cgi脚本:

未编辑火狐中的

  1. 配置(默认ubuntu
  2. 使用web浏览器访问gitweb.conf : Got "no projects found"
  3. I更新配置
  4. 我按ctrl-r但再次:"no projects found“(尽管配置现在是正确的)
  5. I hit shift-ctrl-r (火狐),我得到了正确的结果!

<代码>G213

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10275536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档