0

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 运行而终端的行为会有所不同?

4

1 回答 1

1

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

setsebool -P httpd_enable_homedirs=1,问题就解决了。

于 2012-12-06T23:30:00.320 回答