さくらインターネットのスタンダードでSVN::Webを使ってみた。 最初無謀かと思った、というか十分無謀だったんだけどなんとかなったのでメモ。
ちなみに細かいところまで説明しきれない。
前提
まず前提として、SubversionのPerlバインドが有効になっていることと、 CPANが使えないとダメ。
そもそもSubversionがインストールできたならCPANも使えるはず。
ちなみにこれらについての説明はめどいので省略。
モジュールのインストール
次にshellでCPAN起動して、
cpan > install SVN::Web
をしてみる。と大体モジュールが足りないとか言われるので、それらを突っ込む。 で、たまにうまく入らないやつがあったりするんだけど、なんとかして入れる。
CPANで入らない場合、自力でmake``make testすると原因が分かりやすい。
たまにmake testは問題なく通るのにmake installで失敗するモジュールがあったんだけど、
その場合、手動でコピーすれば問題なく使える。
SVN::Webのインストール
で、必要なモジュール入れ終わったら、もう一度
cpan > install SVN::Web
してみる。問題がない場合これでいけるはず。
ただ、自分の環境場合、テストは問題ないのになぜか共用領域に入れようとして、
パーミッションがねーよといわれたので、~/.capn/build/SVN-Web-0.49の
libの中身を~/perl/libに、binの中身を~/local/binに突っ込んだ。
とりあえず問題なく使えてはいる。
CGIとして動作させる
で、あとはSVN::Webを動作させたいディレクトリで
svnweb-install
して、config.yamlを編集、index.cgiにアクセスすればSVN::Webが使える。 ……といいたいところなんだけど、実は使えない。
そのままCGIを動作させると、ライブラリがみつからない><みたいな事を言われる。 これはたぶんユーザー領域にいれたSubversionにパスが通ってないのが原因。
Apache側でパス通せればいいんだけど、やり方がわからないので、 shスクリプトで対処。
まず、オリジナルのindex.cgiを_index.cgiにリネーム。 次にindex.cgiを作成し、以下の内容を各環境に合わせて変更、保存する。
#!/bin/sh
export LD_LIBRARY_PATH=[ライブラリのパス]
export PERL5LIB=[Perlモジュールへのパス]
/usr/bin/perl [_index.cgiへのパス]
でこのindex.cgiにアクセスすると、問題なく動くはず。
で実際に動作しているのが以下のリンク。
ただし、匿名でチェックアウトできなかったりする。 匿名でチェックアウトするには、Subversion付属のサーバ使うか、 Apacheモジュールを使うかのどちらかなので、共用サーバではムリ。
あと公開したリポジトリに何にも入ってなかったりする。 開発環境まだできてないよ。
Comments
最新のコメント20件を表示しています