fossilリポジトリをapacheで公開する
個人作業用のITSとして使うのにfossilを調べている。
ノートPC内にリポジトリファイルを保管しておくだけでなく、サーバ上に公開してどこからでもアクセスできるようにしておいたほうが便利だけど、リポジトリ毎にポートを別にするのはアクセスするのに面倒なので、apacheからまとめてアクセスできるようにする方法を調べた。
手順は以下の通り。
リポジトリベースのディレクトリを作成する
sudo mkdir /var/repos sudo mkdir /var/repos/fossils
リポジトリ公開用のcgiスクリプトを作成する
ファイルをあちこちに置くとバックアップが面倒なので、リポジトリベースのディレクトリ内にcgiスクリプトファイルを置くことにした。
sudo vi /var/repos/fossils/fossil.cgi
リポジトリベースのディレクトリ以下にあるリポジトリファイル (*.fossil) を公開するように設定する。存在しないリポジトリを指定した場合のURLを用意するの面倒なので、ホームページに戻すようにしてある。
#!/usr/bin/fossil
directory: /var/repos/fossils
notfound: http://HOSTNAME/
作成したcgiファイルに実行権限を付与する。
sudo chmod a+x /var/repos/fossils/fossil.cgi
作成したcgiスクリプトを呼び出すようにapacheの設定を変更する
使用しているapacheはパッケージ導入したもので、/etc/httpd/conf.dに設定ファイルを置けば勝手に読み取ってくれる。
sudo vi /etc/httpd/conf.d/fossil.conf
とりあえず使えるように以下のように設定した。
※昔apacheのポケットリファレンスとか買ったけど、まともに読んでいないしapacheの設定自体やったことがない。これから勉強せねば。
ScriptAlias /fossil "/var/repos/fossils/fossil.cgi" <Location /fossil"> AllowOverride None Options None Order allow,deny Allow from all </Location>
apacheサービスを再起動する。
sudo /etc/init.d/httpd restart
リポジトリファイルを作成する
リポジトリファイルを作成して、ファイルの所有権をapacheに変更する。
リポジトリ作成時に管理者ユーザと初期パスワードが表示されるのでメモしておく。
sudo fossil init /var/repos/fossils/test.fossil sudo chown -R apache:apache /var/repos/fossils
パスワード忘れたら以下のコマンドでパスワードを再設定する。
sudo fossil user password USERNAME -R /var/repos/fossils/test.fossil
管理者ユーザ名はリポジトリ作成したときのOSアカウント名になっているはずだが、それも分からない場合は以下のコマンドで作成して権限を付与する。
sudo fossil user new USERNAME -R /var/repos/fossils/test.fossil sudo fossil user capabilities USERNAME -R /var/repos/fossils/test.fossil
以下のURLでfossilリポジトリのWEBページにアクセスできるようになった。
http://HOSTNAME/fossil/test/
ついでに、以下のコマンドでリポジトリのクローンを作成することができる。
fossil clone http://HOSTNAME/fossil/test/ test_clone.fossil