SqueakでWikiをたちあげよう!!


旧Swikiインストール手順:

以下Squeak 2.3の場合で説明します。6つの簡単なステップで完了します。

0. Squeakを入手:

Squeakを手にいれてください。最新版は2.3です。

1. Swikiサーバディレクトリを入手:

SwikiはHTMLの自動生成をする際に特定のディレクトリ下のテンプレートファイルを参照します。テンプレートは自作も可能ですが、とりあえず出来合いのものを入手しましょう。

http://guzdial.cc.gatech.edu/st/Swiki-GuzPWS2.tar (Win,Unix)

http://guzdial.cc.gatech.edu/st/Swiki-GuzPWS2.sea (Mac)

からダウンロード!!

サーバが非常に重いので注意してください。

コピーをおいています(Swiki-GuzPWS2.tar, Swiki-GuzPWS2.sea -バージョンが古くなるかもしれませんが悪しからず )

2.適当なディレクトリに上記のファイルを展開:

以下は Windowsで、上記ファイルをC:\lang\Squeak\Server の下に展開したとします。

swiki というサブディレクトリに幾つかのhtmlテンプレートが展開されます。

なお、日本語訳したテンプレートファイルを ここ においています。本家のファイルの代わりに使うことで、日本語による使い方の案内、日本語文字列の取り扱いが可能になります。よろしければお使いください。

3.サーバディレクトリ位置の設定

Squeakを起動し、ServerAction class >> serverAction メソッドを修正します。

(個人的にはクラス変数で設定できるようにしてほしいですが。。)

以下のようにプラットフォーム固有の形で書きます。

   
serverDirectory ^ 'C:\lang\Squeak\Server\'
   

最後のセパレータ(Windowsの場合は\)もお忘れなく。

で"accept"してください。

4.Swikiの初期化

ワークスペースで、PWS initializeAll と"do it"します。

今までの設定が正しければ特に文句は言われないはずです。

serverDirectoryのパスが間違っていた場合、警告ダイアログと修正用ブラウザが立ち上がるので修正、"accept"してください。

5. Swikiディレクトリの登録

SwikiAction setUp: 'swiki'. と"do it"します。これで、Swikiサーバにswikiという名前のWikiディレクトリが登録されたことになります。ディレクトリがSwikiサーバの管理下におかれ、そのディレクトリをトップにWebブラウザ上からのページ編集、追加が可能になったことを意味します。

6.Swikiサーバの実行

ワークスペースで、PWS serveOnPort: 8079 loggingTo: 'log.txt' と"do it"します。

ポート番号、ログのファイル名は御自身の環境にあわせて適当に修正してください。

7.Access、Edit、Add、Search!!

あとは、Wikiの機能を満喫するだけです。存分にWebブラウザ上からすべてのコンテンツの編集、追加、検索を行ってください。 URLは、上記設定の場合では、http://Swikiの立ち上がっているサーバ名:8079/swikiとなります。

以下のような画面イメージとなります。(テンプレートファイルをカスタマイズすればもっと派手なページにできます。が、知識共有のグループウェアとして使う実用を考えるとこれくらいがいいのかもしれません)

 

その他、いくつかのTips:

1. 自分用のwikiディレクトリを作る

デフォルトではサーバディレクトリ以下にswikiというサブディレクトリが作成されているだけです。

これをそのまま使用してもかまわないのですが、やはり自分用のwikiを作成し、そこのページが書きかわるようにしたほうが、今後の拡張性、メンテナンス性も確保できます。 

まずサーバディレクトリ以下に適当な名前のサブディレクトリを作成します。これが自分用のWikiの名前になります。

ここでは仮にmyswikiとします。(例ではe:\lang\Squeak\Server\myswikiを作成)

次にSwikiサーバに新たなWikiディレクトリを登録します。

ワークスペースでSwikiAction setUp: 'myswiki'. と"do it"してください。

あとは、http://Swikiの立ち上がっているサーバ名:8079/myswiki というURLでアクセスするのみです。

2.HeadlessでのSqueakの起動

Headlessとは、画面をださない状態でSmaltalkを立ち上げることを指します。Squeakを開発環境でなく、単なる実行環境、Wikiサーバとして使う場合にはこのほうが便利でしょう。

Squeak.exe -headless squeak.image

また、Windows-NTの場合は、いったん下記のような形で実行することによって、NTのサービスとして登録することが可能です。

Squeak.exe -service: "Swiki" squeak.image

3.Squeak起動と同時に、Swikiを開始

Squeakが立ち上がると自動的にSwikiが開始されるようになっていると便利です。デフォルトでは立ち上げるごとにワークスペースで、PWS serveOnPort: 8079 loggingTo: 'log.txt' と"do it"する必要があります。

SystemDictionary >> processStartUpList の最後にSwiki実行の文を追加します。

PWS serveOnPort: 8079 loggingTo: 'log.txt'

Squeak2.4からは、スタートアップの仕組みがより洗練されました。以下の方法に従ってください。 

  1. クラスSwikiStartUpを定義する(名前はなんでも良い)。
  2. SwikiStartUpにクラスメソッドstartUpを追加。
  3. startUpクラスメソッドに、PWS serveOnPort: 8079 loggingTo: 'log.txt'と書く。
  4. ワークスペースなどで Smalltalk addToStartUpList: SwikiStartUp とdo it。
これでSwikiStartUpがスタートアップリストに追加され、以後は自動的にSqueak起動時にSwikiStartUpのstartUpクラスメソッドが呼ばれるようになります。

4.Squeak再起動時に、以前のSwikiデータをロードする

Swikiはサーバ側でページのファイルを作成していきますが、ページ間のリンク情報はオンメモリにあり、デフォルトではSqueakを再起動した場合にはリンクが無効になってしまいます。

Swikiには、ファイルからリンク情報をロードし、回復する機能が備わっています。そこでSqueak再起動時にこの機能が動作するようにします。

3で示しました再起動時に呼ばれるメソッド(SystemDictionary >> processStartUpList または SwikiStartUp class >> startUp )に以下の文を追加します。(PWS serveOnPort: 8079 loggingTo: 'log.txt' の前です)

(PWS actions select: [ :action | action isKindOf: SwikiAction ]) do: [ :action | action restore: action name ].

3.4まとめたSwikiStartUpの実装を置いておきました。ダウンロードしてお使いください。

横着するには

Swikiのバイナリを入手することもできます。お気軽に、Wikiの機能を自分のサイトで使いたいというかたはこちらでもいいでしょう。

Swiki Administration Utility

ともあれこのバイナリ版を使えば環境のセットアップも含め、すべてWebブラウザ上から操作することができます。Smalltalkをまったく知らなくとも、Swikiを動かすことが可能になります。

0. Squeakを入手:

Squeakを手にいれてください。古いほうの2.2です。

2.2のバーチャルマシン (SqueakBeta.exe) とソースファイル(SqueakV2.sources)をダウンロードしてください。

1.Swiki Administration Utilityのバイナリ入手、展開:

Squeak2.2.images、Squeak2.2.changes、readme.txtのファイルに展開されます。

これらのファイルが何なのか気になるというかたはぜひHappySqueakingを見てください。

2.ファイルを同じディレクトリにおき、Squeak2.2.imageをSqueakBeta.exeにドラック&ドロップ

カラフルな画面が立ち上がりますが、とりあえずほっておきます。

3.Webブラウザを開き、http://localhost:8080/にアクセス

以後はwebページ上の指示にしたがってください。

 


ご意見は umejava@mars.dti.ne.jp まで