Kozupon.com    
 
 アプリケーションサーバを使う


アプリケーションサーバとは、WebサーバとDBサーバの中間にあり、取引サイトの受発注システム等で仲介するミドルウェア的存在とイメージする。小生が思い浮かべるのは、Netscape社のアプリケーションサーバである。
JAVAとOracleを使ったDBサイト構築はこれを使ってる方がかなりおられるかと思う。通常データベーストランザクションはWebサーバから行う場合、サーバサイドで動かすようなマネージメントソフトが必要で、Perl、JAVA、PHP等を使いプログラミングする。いわゆる、コモンゲートウェイインターフェースである。したがって、プログラミングの知識が当然必要になってくる。次にサイトの規模である。サイトが大きくなればなるほどサイト管理は容易ではない。また、セキュリティに対しても考慮が必要になってくる。この問題を解決するために、サイト管理を容易にし多少のプログラム知識でDB連携までしてくれるのがアプリケーションサーバである。個人的だが、今後アプリケーションサーバはかなり使われていくと考える。そこで、オープンソースのアプリケーションサーバ、Zopeを今回使ってみた。これは、Python(オブジェクト指向型スクリプト言語)でモジュール自体が作られていてWindows及びUnixプラットホームで使えるバージョンが揃っている。Zopeは、自身がWebサーバの機能を持っているため、Apache等のWebサーバを必要としない。勿論、Apacheと共用も出来る。いわゆる、ApacheをフロントエンドでZopeをバックエンドで同時に使いこなすことが可能である。Zopeは基本的にPythonのプログラミングは勿論、Perlインターフェースも用意されているのでPerlを使ったプログラミングもできる。さらに、ZopeはDTMLと言うHTMLに動的な要素を加えるタグ言語が用意されていてページ自体は、これを使い構築する。また、プロダクトと言うプラグインのようなモジュールを追加することにより、雛形によるBBSシステムとか簡単なコミュニティサイトなんか作れちゃうようである。以降、Zopeのインストールから説明する。
始めに、言っておくがZopeはデフォルトで8080ポートを使う。プロキシサーバで使ってる場合は、あらかじめプロセスを落として欲しい。だが、80ポートで単独のWebサーバとして使うことも出来るのでそれについては後述する。


1.インストール

1.1 インストールした環境

マシン         :自作PC/AT互換機(PentiumU/400MHzだったような (._. )( ・_・)(・_・ )( ・_・)アレ?)
コンベンショナルメモリ :128MB(Zopeは、メモリを食うので最低でこのくらい必要のようである)
OS           :Solaris8インテル版(Solarisで有るが、元々Linuxにもインストールしてうまくいった)

1.2 インストールの前に

Solaris8には、OSインストール時点で開発ツールも組み込まれますが、最新のGNUの開発ツールでは有りません。
したがって、別途開発ツールを事前にインストールしておく必要があります。tarボールとかpacth等も含めてGNUの最新バージョンを入れておくことをお勧めします。
あらかじめ、モジュールをダウンロードする。小生は以下のモジュールをダウンロードした。
Zopeのバージョンは最新ではないが、後述するが現時点でSquishdotという掲示板システムの雛形を組み込めるのは、Zope 2.3.3であったので、これをインストールすることとした。さらに、PostgresqlデータベースインターフェースもインストールするのでPostgresqlはインストされている物として説明する。

Python 2.1.1

Zope 2.3.3

Squishdot 1.2.1

Squishdot日本語化パッチ Squishdot-1-2-1-J2.diff.gz

psycopg 1.0.3

egenix-mx-base 2.0.3

1.3 Pythonのインストール

Zopeは、Pythonスクリプトを徹底的に利用している。だから、これがないと話にならない(笑)。ちなみに、pythonはインタプリタである。Linuxなどの場合は、しょっぱなからpythonがインストされているようだが、一応バージョンを見て2.1.1以上で有るかを確認する。古いバージョンの場合は、以下の方法でインストールする。

$ cd /usr/local/src
$ tar -zxvf Python-2.1.1.tgz
$ cd Python-2.1.1
$ ./configure
$ make

root権限で、

$ su
# make install

エラーが無ければインストール完了。

$ which python
/usr/local/bin/python
$ python -V
Python 2.1.1

一応、確認!

1.4 Zopeのインストール

Zopeのインストールは簡単です。

$ cd /usr/local/src
$ tar -zxvf Zope-2.3.3-src.tgz
$ cd Zope-2.3.3-src
$ python wo_pcgi.py
$ python zpasswd.py access
        ←Zopeのログオン用ユーザとパスワードの設定

Username:例えば"admin"
次に、パスワードを2回聞いてくるので、パスワードを入力する。
次に、パスワードのエンコーディング方法を聞いてくるので"SHA"と入力する。

注:このユーザ名とパスワードは、Zopeの管理画面にアクセスするときに必要となるので忘れないこと!

以上でインストール完了。

1.5 Squishdotのインストール

Squishdotは、Zopeのプラグインのような物で掲示板システムの雛形である。

$ cd /usr/local/src/Zope-2.3.3-src/lib/python/Products/
$ tar -zxvf Squishdot-1-2-1.tar.gz

次に、日本語パッチ当て、

$ cd Squishdot
$ zcat Squishdot-1-2-1-J2.diff.gz | patch -p1

以上でインストール完了。

1.6 PostgreSQL-DAのインストール

ZopeからPostgresqlのデータベースへアクセスするためのプラグインである。データベースアダプタ(DA)と呼ぶ。
PostgreSQL-DAの本体はpsycopgであるが、これをインストールするためには、mxDateTimeと言うPythonの拡張モジュールが必要であるため、これを先にインストールする。

$ cd /usr/local/src
$ tar -zxvf egenix-mx-base-2.0.3.tar.gz
$ cd egenix-mx-base-2.0.3
$ python setup.py build

ルート権限で、

$ su
# python setup.py install

次に、psycopgのインストール、

$ cd /usr/local/src
$ tar -zxvf psycopg-1.0.3.tar.gz
$ cd psycopg-1.0.3

$ ./configure --with-postgres-includes=/usr/local/pgsql/include \
--with-postgres-libraries=/usr/local/pgsql/lib --with-mxdatetime\
-includes=/usr/local/lib/python2.1/site-packages/mx/DateTime/mxDateTime \
--with-zope=/usr/local/src/Zope-2.3.3-src

$ make

root権限で、

$ su
# make install

ユーザ権限に戻る。

# exit
$ make install-zope

以上で、インストール完了だが小生の場合、ここでエラーが出た。
しかし、なにやらlibpq.so.2が無いというエラーメッセージであった。そこで、

# ln -s /usr/local/pgsql/lib/libpq.so.2 /usr/lib

として、/usr/libへシンボルリンクを張った結果うまくインストールが完了した。


2.起動と運用

2.1 Zopeの起動

$ cd /usr/local/src/Zope-2.3.3-src
$ ./start &

2.2 Zopeの停止

$ cd /usr/local/src/Zope-2.3.3-src
$ ./stop

2.3 運用

Zopeを起動したら、まず管理画面にアクセスする。

http//ホスト名:8080/manage/

ユーザ名とパスワードを入力すれば、管理画面出るはずである。
これで、一応成功である。
細かい説明は、別な情報として掲載する予定であるが、管理画面で初めにやっておくことは、

● ログインユーザの登録。
● Zopeはデフォルトで8080ポートで待ち受けるため、それがいやなら"./start -w 80 -f 21 &"で起動すれば、通常のhttp80ポートとFTP21ポートでアクセス可能。
● ProductにPostgresqlとSquishdotのプラグインが登録されているかの確認。

Zopeの詳しい情報は、

日本Zopeユーザ会

Zope本家

を参照されたい。

以上


 
 
 



Copyright 2005 Kozupon.com.