このプログラムの概要

Webサーバで稼動する、ローカル(Webサーバ内の)Subversionのリポジトリ管理。sshで接続してsvnadminコマンドを用いることなく、Web経由でリポジトリを操作できることを目指します。

主に、個人でSubversionを使うことを想定しています。

共用サーバなど、ユーザ権限で(管理者権限を全く使わず)にインストール出来るようになっています。また、依存プログラム、ライブラリなどを極力減らして、インストール出来ないということがなるべく起こらないようにしています。

websvn-admin-02.jpg
新規リポジトリ名入力画面

このプログラムで出来ること

  • 新しいリポジトリの作成(svnadmin create)
  • 既存リポジトリのバックアップ(svnadmin hotcopy, svnadmin dump)
  • 既存リポジトリのベリファイ(svnadmin verify)
  • 既存リポジトリの削除(svnadmin hotcopy + rm -rf [repo dir]
  • 簡易的なユーザ認証による不特定多数の利用防止
  • リポジトリ・ブラウザは含まれていません! (WebSVNなどのサードパーティの製品をお使いください)

対象OS,依存ソフト等

  • Linux/BSD
  • Apache Web Server
  • PHP
  • Subversion

インストール方法

配布しているソースコード・パッケージを、サーバ上の適当なディレクトリ(Webから見れる所)へ解凍してください。

その後、include/config.php に、ユーザの環境に合わせて書き換えてください。例えば、共用サーバでSubversionを /home/user000/local/bin/ にインストールしていて、リポジトリを /home/user000/var/svn/ 以下に作成している場合、次のようになります

$strSvnCmdPath = '/home/user000/local/bin/';
$strBaseDir = '/home/user000/var/svn/';

include/config.php の設定後、Webよりindex.php へアクセスすると、自動的に data/auth.dat が作成され、初期ユーザ名とパスワードが画面に表示されます。なお、パスワードはMD5ハッシュが保存されるようになっています。data/auth.dat ファイルは次のようになっています。

# user, password
test,1a1dc91c907325c69271ddf0c944bc72

最初に、画面左端の Change password を実行して、ユーザ名とパスワードを(セキュリティ上問題ないものに)変更してください。

websvn-admin-03.jpg
簡易的なユーザ認証画面

インストール時の注意事項

PHPの session_start(); 関数をWeb出力の途中で利用しているため、syslogに "Cannot send session cache limiter - headers already sent" のエラーが出る場合、セッション処理に失敗しログオン出来ない場合などの場合に備えて、php.ini を同梱しています。WebSVN-Adminのindex.phpと同じディレクトリにphp.iniを置くと、システムの値を上書きしますので、エラーを抑止できます。このphp.iniが必要かどうか、一度php.iniを削除してWebSVN-Adminを利用してみて、問題ないようであればphp.iniは不必要です。

; use cookie to handle session data
session.use_cookies = On
session.save_path = "/tmp"

; output buffer (for cookie write)
output_buffering = 4096 

プログラムの使い方

現在のところ、リポジトリ新規作成の機能のみを実装しています。リポジトリ名はUNIXのディレクトリ命名規則に従った入力のみを受け付けます。

画面上の説明に従って操作してください。

websvn-admin-01.jpg
新規リポジトリの作成時の画面

自己責任

この説明文書以上の情報、使い方、作用・副作用についてはソースコードを読んでください。ユーザの利用形態に合わせて、自由にソースコードのカスタマイズも可能です。

作者のホームページ

http://oasis.halfmoon.jp/mw/index.php?title=Soft-WebSVN-Admin

プログラムのダウンロード

Latest File Release

websvn-admin (version 0.2 beta-2)2011-01-22 10:22