如何修复 Ubuntu 11.10 服务器和 gitweb 的问题?

如何修复 Ubuntu 11.10 服务器和 gitweb 的问题?

你好,首先抱歉我的英语不好:(......

我有一台 ubuntu 11.10 服务器,我想建立 gitweb 服务器。我参考了这个网站 -http://www.snowfrog.n​​et/2011/08/02/setting-up-gitweb-on-your-ubuntu-workstation/

因此,我尝试安装 gitweb 并重新启动 apache 服务器。

(as root account)
$ apt-get install gitweb
$ service apache2 restart

我尝试连接我的 gitweb 服务器,但无法连接 - 内部服务器错误。我搜索了很长时间并试图解决这个问题,但我做不到。

这是我的 gitweb 和我的服务器信息 -

  1. 已安装“mediawiki”并且现在可运行。
  2. 安装了“apache2”并且也可以运行。
  3. git 也在工作。我尝试将 git repo 克隆到我的桌面,并且成功连接。
  4. 安装了“gitweb”但是……不工作。- 内部服务器错误。
  5. 我检查了我的 apache2 日志。

    [error] [client ---.---.---.---] (13)Permission denied: exec of '/usr/share/gitweb/index.cgi' failed
    [error] [client ---.---.---.---] Premature end of script headers: index.cgi
    
  6. gitweb 安装到 /usr/share/gitweb。

  7. 这是 /usr/share/gitweb 文件夹的权限。

    -rwxr-xr-- 1 root root 221331 2012-05-08 02:24 gitweb.cgi
    lrwxrwxrwx 1 root root     10 2011-06-11 18:17 index.cgi -> gitweb.cgi
    drwxrwxrwx 2 root root   4096 2012-05-07 19:36 static
    
  8. 这是‘perl /usr/share/index.cgi’的结果。

    Status: 404 Not Found^M
    Content-Type: text/html; charset=utf-8^M
    ^M
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
    <!-- git web interface version 1.7.5.4, (C) 2005-2006, Kay Sievers <[email protected]>, Christian Gierke -->
    <!-- git core binaries version 1.7.5.4 -->
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <meta name="generator" content="gitweb/1.7.5.4 git/1.7.5.4"/>
    <meta name="robots" content="index, nofollow"/>
    <title>Untitled Git</title>
    <link rel="stylesheet" type="text/css" href="static/gitweb.css"/>
    <link rel="shortcut icon" href="static/git-favicon.png" type="image/png" />
    </head>
    <body>
    <div class="page_header">
    <a title="git homepage" href="http://git-scm.com/"><img class="logo" height="27" src="static/git-logo.png" alt="git" width="72" /></a><a href="/">projects</a> / </div>
    <div class="page_body">
    <br /><br />
    404 - No projects found
    <br />
    </div>
    <div class="page_footer">
    <a class="rss_logo" href="?a=opml">OPML</a> <a class="rss_logo" href="?a=project_index">TXT</a>
    </div>
    <script type="text/javascript" src="static/gitweb.js"></script>
    </body>
    </html>
    
  9. /etc/gitweb.conf

    # path to git projects (<project>.git)
    $projectroot = "/home/git/repositories";
    
    # 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 = "indextext.html";
    
    # file with project list; by default, simply scan the projectroot dir.
    $projects_list = "/home/git/projects.list";
    
    # stylesheet to use
    @stylesheets = ("static/gitweb.css");
    
    # javascript code for gitweb
    $javascript = "static/gitweb.js";
    
    # logo to use
    $logo = "static/git-logo.png";
    
  10. /etc/apache2/conf.d/gitweb

    Alias /gitweb /usr/share/gitweb
    
    <Directory /usr/share/gitweb>
      Option FollowSymLinks +ExecCGI
      AddHandler cgi-script .cgi
    <Directory>
    
  11. 我执行了这个命令 - “a2enmod cgi,a2enmod perl”并且已经启用。

答案1

看起来 apache 无法执行 index.cgi,因为它没有权限。index.cgi 是 gitweb.cgi 的符号链接,我从它的权限中可以看到只有 root 可以执行它。

通常 Apache 不以 root 用户身份运行,因此您需要更改 gitweb.cgi 的权限以允许 Apache 执行它。

尝试运行此命令(以 root 身份)来更改 gitweb.cgi 的权限

chmod +x /usr/share/gitweb/gitweb.cgi

相关内容