Я пытаюсь настроить gitweb на сервере CentOS 6.2 с установленными git / gitweb 1.7.1 и httpd 2.2.15.
Корнем проекта gitweb по умолчанию (проверено в скрипте CGI) является / var / lib / git, поэтому я создал его и пустой репозиторий git:
$ ls -laF /var/lib/git
total 12
drwxrwxr-x. 3 git git 4096 Feb 8 16:37 ./
drwxr-xr-x. 15 root root 4096 Feb 8 14:20 ../
drwxrwxr-x. 7 git git 4096 Feb 8 15:37 foo/
$ git init --bare --shared foo
Initialized empty shared Git repository in /var/lib/git/foo/
$ ls -lF foo
total 32
drwxrwsr-x. 2 git git 4096 Feb 8 17:16 branches/
-rw-rw-r--. 1 git git 126 Feb 8 17:16 config
-rw-rw-r--. 1 git git 73 Feb 8 17:16 description
-rw-rw-r--. 1 git git 23 Feb 8 17:16 HEAD
drwxrwsr-x. 2 git git 4096 Feb 8 17:16 hooks/
drwxrwsr-x. 2 git git 4096 Feb 8 17:16 info/
drwxrwsr-x. 4 git git 4096 Feb 8 17:16 objects/
drwxrwsr-x. 4 git git 4096 Feb 8 17:16 refs/
$ cat foo/HEAD
ref: refs/heads/master
Однако при просмотре http://localhost/git/
я вижу "404 Проекты не найдены".
Я отлаживал через скрипт и вижу, что он находит /var/lib/git/foo
, но оператор Perl -e
не работает на /var/lib/git/foo/HEAD
. В том же месте в файле обратный вызов ls
показывает, что файл там виден, но я не могу заставить Perl -e
увидеть файл.
Есть идеи, что может привести к неудаче? Это не имеет смысла для меня.
РЕДАКТИРОВАТЬ: обратите внимание, что расширения SELinux в этом окне CentOS отключены:
$ sudo sestatus
SELinux status: disabled
РЕДАКТИРОВАТЬ: перемещение всего с /var/lib/git
на /git
не помогло. Я изменил пользователя apache
на настоящую оболочку, вошел в систему под этим пользователем и подтвердил, что у него есть доступ ко всем каталогам и файлам, о которых идет речь.