2012-02-08 19 views
1

git/gitweb 1.7.1とhttpd 2.2.15がインストールされているCentOS 6.2サーバーでgitwebセットアップをしようとしています。HEADファイルが表示されないため、gitwebにリポジトリが表示されませんか?

(CGIスクリプトで検証)

gitwebのデフォルトプロジェクトのルートがの/ 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/を見に、I 「404プロジェクトが見つかりません」を参照してください。

スクリプトでデバッグしましたが、それは/var/lib/git/fooですが、Perlの-e演算子は/var/lib/git/foo/HEADで失敗しています。ファイル内の同じ場所で、lsへの逆戻りの呼び出しにより、ファイルがそこに表示されていることが示されますが、Perl -eにファイルを表示させることはできません。

これを失敗させる原因は何でしょうか?これは私には意味がありません。

EDIT:

$ sudo sestatus 
SELinux status:     disabled 

EDIT:移動/var/lib/gitから/gitにすべてが役立っていない。このCentOSのボックス上のSELinuxの機能拡張を無効にするように見えることに注意してください。 apacheのユーザーに、実際のシェルを持ち、そのユーザーとしてログインし、問題のすべてのディレクトリとファイルにアクセスできることを確認しました。

+0

このチュートリアルで役立つ追加の手順はありますか? (http://bcaccinolo.wordpress.com/2010/12/28/gitweb-configuration-the-easy-way/)または...多分このフォーラムの投稿からの何か? (http://ubuntuforums.org/showthread.php?t=1536963)それは、そのフォーラムのポスターの1つが発見したように、親ディレクトリが 'chmod a + x'になる必要性に関連する可能性があります。また...それはCentOSです。私はこれがSELinuxのものと何か関係があるのだろうかと思っています... – summea

+0

@summeaこれらの2つは、関連するGoogleの検索でポップアップするので、私は数時間前にそれらを読んでいます。しかし、懐かしい表情をありがとう。 –

+0

これはおそらくSELinuxではなく、現在は無効になっています。それを反映するために上記のテキストを編集しました。 –

答えて

2

実際にはSELinuxでした。 SELinuxはそれが無効になったと報告しましたが、httpdの下で実行されているCGIスクリプトのためにいくつかのファイルへのアクセスを何らかの形で妨げていました。 SELinuxを有効にしてpermissiveモードに設定すると、動作し始めました。

これは非常に非直感的で、私をイライラさせますが、少なくとも動作しています。

+1

CentOSを愛して...まあ、少なくともそれは働いています。 – summea

+0

Alan KrugerがSELinuxをpermissiveモードに設定する提案も私のために働いていました。 CentOSでは、私は 'setenforce 0'というコマンドを使いました。しかし、セキュリティ上の理由から、これは一時的な解決策に過ぎません。 – user64141

0

私はまだそれがアクセス権の問題だと思っています...しかし、私は間違っている可能性があります。 /var/lib/gitディレクトリにつながるすべての親ディレクトリにアクセス権があることを確認しましたか?

他の誰かがsimilar problem hereを持っていて、完全に別のディレクトリを試してみる価値があるかもしれません...おそらく/optでも。

+0

はい、私はすでにこれを試しましたが、これは長いディレクトリリストを与えた理由です。 –

+0

私はブランチの新しいツリー '/ git'にすべてのものを移して、'/etc/gitweb.conf'を変更してみました。運がない。 –

+0

そして 'httpd'を再起動(停止/起動)しましたか? – summea