Gitweb Apache输出不同于终端

时间:2012-12-06 22:32:51

标签: perl apache2 cgi-bin gitweb

Apache的配置如下:

Alias /git /var/www/gitweb
Alias /gitweb /var/www/gitweb

<Directory "/var/www/gitweb">
  AllowOverride None
  Options +ExecCGI +Indexes
  Order allow,deny
  Allow from all

  DirectoryIndex gitweb.cgi
  AddHandler cgi-script .cgi

  SetEnv GITWEB_CONFIG /var/www/gitweb/gitweb.conf
</Directory>

我正在尝试设置Gitweb,但我不断遇到可怕的404 - No projects found问题。通常这是一个权限错误,所以我想查看perl没有权限打印的是否有任何内容,所以我使用此命令从终端运行它

sudo -u apache GITWEB_CONFIG=/var/www/gitweb/gitweb.conf perl gitweb.cgi

该脚本回显了HTML,并正确列出了所有存储库(即没有404)。

以下是问题:为什么同一个脚本会从Apache运行并且终端的行为有所不同?

1 个答案:

答案 0 :(得分:1)

问题是SELinux。我的存储库位于/home/git目录中。默认情况下,httpd服务无法访问该目录。

setsebool -P httpd_enable_homedirs=1,问题得到解决。