★GanttProjectをWebDAVで共有
みなさん、いかがお過ごしでしょうか? さて、会社の方もおかげさまで仕事が増えてきて、うれしい悲鳴ではありますが、プロジェクトの管理の負担が大きくなりつつあるようです。 そこで、プロジェクト管理にGanttProjectという、オープンソースのプロジェクト管理システムを利用し、Webサーバにアップして複数人で共有しようじゃないかという提案がありました。 ■本格的なガントチャートでプロジェクト管理 GanttProject http://web-tan.forum.impressrd.jp/e/2007/04/12/725 ということでインストール時のメモです。巷のGanttProject + WebDAVの記事は、端折りすぎて分かりづらいので、自分なりになるべく端折らずに書いていきたいと思います。 まず、前提となる情報ですが(この辺の認識不足で苦労しました)、GanttProjectはjavaで作られており、基本的にはスタンドアロンのアプリケーションです。断じてサーブレットなどではありません。javaで作られたプログラムはJava Web Start(以下JWS)という名の仕組みによってWebサーバからプログラム本体をダウンロードし、直接実行することができます。インストール不要ってのがその利点で、.NETのClick Once(懐かしいw)と同じ概念です。で、巷ではJWSを利用すれば、GanttProjectはWeb上のサービスとして展開できますよと謳われている訳です。 今回の作業の概要は、CentOS4の社内Webサーバ(外部にも公開されてます)にGanttProjectを配置し、JWSによって各クライアント(WindowsXP)への配布の手間を解消し、さらにデータをWebDAV対応のWebサーバに保存可能にすることです。それによって情報を共有するというのが今回の目的です。 まずは、WebサーバへのGanttProjectの配置ですが、当初GanttProjectをサーブレットだと思いっきり勘違いしていたため、Webサーバ(CentOS4)にJREなどを無駄にインストールしてしまいました。 基本的には、GanttProjectのプログラムをそのままWebサーバの公開ディレクトリにアップするだけで良いです。 で、どこからGanttProjectのプログラムファイルを持って来るかですが、オフィシャル(http://ganttproject.biz/)では、クライアントPCにインストールして利用するためのパッケージのみ配布されており、JWS用のパッケージは用意されておらず、デモのページでJWS版のDEMOが試用できるようになっているのみです。 他にJWS版のソースがないか方々探しつくしたのですが、見つけられず。JWSの概念から推測するに Windows版をそのままサーバにアップすれば行けるんじゃないか?と思いやってみましたが、いきなり例外が発生したりと全く動かず。(今考えると、jarに署名したり設定次第でこのやり方でも行けると思います。) 途方に暮れていたところ、ふと「JWSがWebサーバ上のjarファイルを実行するしくみなら、httpでjarファイルを手動でダウンロードできるはず!」 閃きまして、オフィシャルのJWSデモから直接必要なファイルをダウンロードしてみました。必要なファイルは以下の通りです。 http://ganttproject.biz/jws20/ganttproject.jnlp http://ganttproject.biz/jws20/ganttproject.gif http://ganttproject.biz/jws20/configuration.jar http://ganttproject.biz/jws20/eclipsito.jar http://ganttproject.biz/jws20/net.sourceforge.ganttproject_2.0.0.jar http://ganttproject.biz/jws20/org.ganttproject.chart.pert_2.0.0.jar 予想どおり普通にダウンロードできました。で、ganttproject.jnlpのjnlpタグのcodebase属性と2番目のargumentタグ(GanttProjectでデフォルトで開くプロジェクトファイルの指定)を環境に合わせて書き換え、.htaccessに「AddType application/x-java-jnlp-file jnlp」を追加し、ブラウザからjnlpファイルを開くとJWSでGanttProjectを実行することに成功しました!長かった・・・。 がしかし、これで終わりではなくまだWebDAVの設定が終わっていません。このままでは、プロジェクトファイルの共有ができません。 ということで、Apache2にWebDAVのモジュールをインストールします。Apache2用のWebDAVモジュール名はmod_davです。ただ、これだけではWebDAVは動きません。なぜかというと、mod_davはクライアントからの要求の窓口を提供するのみで、クライアントからのファイルのアップロードをサーバのファイルシステムに保存するか、はたまたDBへ保存するかなどの保存処理は別のモジュールの仕事になります。今回は普通にファイルシステムに保存できればよいのでmod_dav_fsを使いました。以下それぞれのインストール方法です。 # cd /Apache2のソースディレクトリ/modules/dav/main # /usr/local/apache2/bin/apxs -c mod_dav.c liveprop.c props.c providers.c std_liveprop.c util.c util_lock.c # /usr/local/apache2/bin/apxs -i -a -n dav mod_dav.la # cd /Apache2のソースディレクトリ/modules/dav/fs # /usr/local/apache2/bin/apxs -c mod_dav_fs.c dbm.c lock.c repos.c # /usr/local/apache2/bin/apxs -i -a -n dav_fs mod_dav_fs.la 次に/usr/local/apache2/conf/httpd.confに以下の記述を追加しました。(ここでは敢えて<>を全角で表記してるので注意) DavLockDB /var/lock/dav/lock <directory> Dav on </directory> 次に、/var/lock/dav/lockと/usr/local/apache2/htdocs/GanttProjectを格納しているディレクトリにApache実行ユーザが書き込み可能な権限を与えました。 実際、こんなにスムーズには進みませんでしたが、とりあえずWebDAVの設定ができました。で、Apacheを再起動し、GanttProjectをJWSで起動し、プロジェクトファイルをサーバ上に保存できることを確認しました。 ただ、社内サーバは外部にも公開してるので、このままではアドレスがバレれば、誰でも書き込み放題になってしまうので、とりあえずBASIC認証を設定してみることに。WebDAVはHTTPを拡張した規格なので、ふつうのBASIC認証の設定でWebDAVにも反映されるハズです。で、.htaccessに以下を追加しました。 AuthType Basic AuthName "GanttProject Dir" AuthUserFile /usr/local/apache2/htdocs/省略/.htpasswd require valid-user でまぁ、WebDAV的にはこれで認証を要求されるようになったわけですが、今度はGanttProjectをJWSで起動したときにデフォルトで設定してるプロジェクトファイルのオープンに失敗するようになりました。どうも、GanttProjectの中で認証に蹴られてる感じです。ダイアログぐらい出して欲しいものです。LLで作られてれば自力で改造するところですが、javaは下手すると例外地獄に陥りそうだったので改造はしないことに。というかjavaの開発環境は会社にはないし。なんとか設定のみで切り抜けられないか考えてたら、閃きました。jnlpファイルのデフォルトで開くプロジェクトファイルのアドレスを指定してる部分を、ユーザIDとパスを含む形に書き換えたら良いんじゃないかと。で、以下のように書き換えてみました。(ここでは敢えて<>を全角で表記してるので注意) <argument>http://www.example.jp/ganttproject/hoge.gan</argument> ↓ <argument>http://userid:password@www.example.jp/ganttproject/hoge.gan</argument> これで、GanttProjectをJWSで起動し、BASIC認証をしつつ、WebDAVによってWebサーバ上にプロジェクトファイルを保存することに成功しました! 長かった・・・ しかし楽しかったです。 |
Comments on "GanttProjectをWebDAVで共有"
HTMLを直接編集して投稿したのですが、実体参照がきちんと記号に変換されたり、そのまま出てきたりしますね。
とりあえず、<>とかは全角で書きましたが、なんかすっきりしないです。
使うのがこれからとても楽しみです。
ありがとうございます!!
ガントチャートは見てすぐに状態が把握できるので、便利ですね♪これなら途中修正も簡単に入れられるそうですし!!
Bloggerはあんまり融通は利かないようですね。HTML編集でないほうで書いても、うまくタグが適用されていなかったりします。クライアントが使いにくいのでは。。。とちょっぴり心配です。
提案した石橋さん、インストールしてくださった益本さん、ありがとうございます(*´(エ)`*)
>ところでブロッガってサーバに入れても、グーグルアカウントの入力は必須なんだね…。
>そういうもの?
ブロッガはグーグルアカウントを持っていないと使えないってことでしょうね。。。
ヘルプに「Blogger アカウントを持っていないメンバーは、アカウントを作成する必要があります。」と書いてあります。
今、ためしに自分のほかのアドレスに招待状を出したら「投稿者としてこのブログに参加するには、 Google アカウントを使ってログインし、招待を承認してください。」という画面が出ました。
田波先生!ちょっとお願いが…
(;A; = ;A;)オロオロ
管理者権限で削除とかできない?
匿名でよかったのにー
さっきから削除しているのに、名まえのとこだけが残ってしまう!!
ちょっと時間が経たないとだめなのかも。しばらく待ってみて確認もう一度するね。