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运行并且终端的行为有所不同?
答案 0 :(得分:1)
问题是SELinux。我的存储库位于/home/git
目录中。默认情况下,httpd服务无法访问该目录。
跑setsebool -P httpd_enable_homedirs=1
,问题得到解决。