社内にこさえた gitorious
ここにアレを置いといて clone する仕掛けにしときゃ良いな、と言いつつリポジトリを置いて clone しようとしたら git と ssh な URL はあるんですが、http なナニが出てこない。
Google 先生に確認入れた所、x-sendfile なるソレを導入しなければならない模様。Ubuntu だとパケジになっておりました。
$ apt-cache search xsendfile libapache2-mod-xsendfile - Serve large static files efficiently from web applications $
ので、こちらを導入して apache の設定に以下なカンジで盛り込めば良いらしいです。
ServerName versotest.it.jyu.fi DocumentRoot /var/www/gitorious/public # Enable X-SendFile for Gitorious repo archiving to work XSendFile on XSendFileAllowAbove on <Directory /var/www/gitorious/public> AllowOverride all Options -MultiViews </Directory> ServerName versotest.it.jyu.fi DocumentRoot /var/www/gitorious/public <Directory /var/www/gitorious/public> AllowOverride all Options -MultiViews </Directory>
Installing and Setting Up Gitorious on RHEL 5より引用
DebianSqueezeInstallation も確認しつつ以下なカンジで盛り込んで
<VirtualHost *:80> ServerName fuga DocumentRoot /var/www/gitorious/public <IfModule mod_xsendfile.c> XSendFile on XSendFileAllowAbove on </IfModule> </VirtualHost>
apache2 再起動したのですが http な URL は出ぬ。こっちじゃなくて /etc/apache/mods-available/xsendfile かな、とか色々ヤッてるんですがねぇ。
そもそもこのモジュールについての知識がゼロ、というあたりがもの凄いイキオイで微妙だったりしますな。
んで
ソース見るか、と言いつつ app/metal/git_http_cloner.rb の中身を見たり GitoriousConfig なナニを確認したりとかしてて config に gitorious.yml というナニがあることが判明。中身を眺めてみるに
# Should we hide HTTP clone urls? hide_http_clone_urls: true #hide_http_clone_urls: false
なるソレを発見。自分で hide を true にしたのかどうかは謎。がしかし、盛り込んでみたのですが挙動は微妙。ホスト名のアタマに git. が付いてたり https な証明書が無いって言われたりとか超面倒。
ちなみに w3m で指定された URL にアクセスしてみると 404 っぽい出力。上記な設定はリポジトリなコンテンツに http clone な URL を出すかどうか、というだけ、なのかどうか。あ、https なソレに w3m でアクセスしたら repo.git を取りにいって No Line な出力だな。
やはり XSendFile な設定が微妙らしい。ちょっと限界気味なのでネカセます。