git /gitweb1.7.1とhttpd2.2.15がインストールされているCentOS6.2サーバーでgitwebをセットアップしようとしています。
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
。
何がこれを失敗させているのか考えていますか?これは私には意味がありません。
編集:このCentOSボックスのSELinux拡張機能が無効になっているように見えることに注意してください:
$ sudo sestatus
SELinux status: disabled
編集:すべてをから/var/lib/git
に移動し/git
ても効果はありません。ユーザーを実際のシェルに変更し、apache
そのユーザーとしてログインして、問題のすべてのディレクトリとファイルにアクセスできることを確認しました。