正直、自分一人だったら要らないんですが、共同作業するなら、必ず一人はいますよね。「わたしgit使えないんで(キリッ」みたいな
まぁ事情はともかく、Gitllistは、Gitビューワとして非常にシンプルで最低限の機能はあるものなので、いろいろなサーバに建てるために
git clone https://github.com/klaussilveira/gitlist.git cd gitlist/ curl -s http://getcomposer.org/installer | php php composer.phar install chmod 777 cache/ sudo a2enmod rewrite sudo /etc/init.d/apache2 restartくらいは、いつでもコピペできるようにしてあったりします。
環境によっては
sudo a2enmod userdir sudo /etc/init.d/apache2 restartも必要ですね。まぁそれくらいは誤差の範囲です。
ただ、最近になって、Ubuntu 14.04のサーバを手にしたのですが、「アレッ?」ってなりました。
最終的には
http://aoba.web-hack.org/gitlist/
にあるように、ちゃんと動いたのですが、ユーザディレクトリでRewriteがなかなか動かなくてちょっと戸惑いました。
Directory /home/*/public_html/ > AllowOverride Allとか書く場所は…
正直、これだけで躓きました。他はフィーリングで行けます。今まで(Apache 2.2)だと、/etc/apache2/sites-available/defaultあたりに、それっぽい記載があったので、真似して
<Directory /home/*/public_html> AllowOverride All </Directory>
とかてきとーに書いていました。(セキュリティの云々はともかくとして…)
しかし、Apache 2.4になって、/etc/apache2/sites-available/defaultは見当たりません。
一体どこに行ったのか・・・。
じつは/etc/apache2/apache2.confにそれっぽい記載があります。
でも、本家confに書いちゃうのって微妙ですよね…。
というわけで、いろいろ試してみたところ、
/etc/apache2/conf-available/rewritable-userdir.conf
<Directory /home/*/public_html> AllowOverride All </Directory>こんなかんじで1ファイル作って、
sudo a2enconf rewritable-userdir sudo /etc/init.d/apache2 restartってやれば、本家のconfigをオーバーライドする感じで、設定が出来ました。(confにするかsiteにするかは悩ましいところですが…)
Apache2で「あれ?AllowOverrideの設定箇所どこ行った??ユーザディレクトリでRewrite効かないぞ?!」ってなった方は、ぜひお試しあれ。
(参考)
以下、完全に個人的な趣向の問題ですが、Gitlistをちょっとだけ手直しして使ってます。
nano src/GitList/Config.php
public static function fromFile($file) { if (!file_exists($file)) { die(sprintf('Please, create the %1$s file.', $file)); } $data = parse_ini_file($file, true); + $repo = parse_ini_file($file.".repos.inc"); + $data["git"]["repositories"] = $repo["repositories"]; $config = new static($data); $config->validateOptions(); return $config; }
これで、
config.ini
[git] client = '/usr/bin/git' ; Your git executable path default_branch = 'master' ; Default branch when HEAD is detached ;repositories[] = '/home/git/repositories/' ; Path to your repositories ★←コメントアウト ; If you wish to add more repositories, just add a new line ; WINDOWS USERS ;client = '"C:\Program Files (x86)\Git\bin\git.exe"' ; Your git executable path ;repositories[] = 'C:\Path\to\Repos\' ; Path to your repositories
config.ini.repos.inc
;QAEP repositories[] = /home/yi01/mirror/LA.BF64.1.1-00110-8x94.0/ ;AOSP ;repositories[] = /home/yi01/mirror/android-5.0.0_r2/
こうすることで、純粋なconfigと、リポジトリのメンテを別ファイルで行うことができるようになります。