日本語による日本語のための Zope FAQ

2006/03/07 更新

 このFAQを書いたきっかけについては Zopeメモのアーカイブを参照して下さい。

ご意見ご感想は、Zopeメモメーリングリストに投稿してみてください

Zope 2.x について書いています。Zope 3.x は別物と考えて、他をあたってください。


Zope  とは何ですか

 一言ではとても言い表せません。十分とはいえませんがこちら で解説しています。


どこで手に入りますか

 http://www.zope.org/Products/


どの本を読めばよいですか

 1冊だけ選べというのであれば、The ZopeBook でしょう。翻訳本もありますが元になった版の対象とする Zope のバージョンがやや古いので、英語に抵抗が無ければ、オリジナルのものが良いでしょう。原著にはオンライン版もあります。

 もう1冊ということであれば、Zope Bibleをお勧めします。

 もっと他には?という方はこちらをご覧下さい。


メーリングリストに入りたいのですが


どの OSで動作しますか

 いろんな OSで動作します。

MS Windows  にはバイナリが用意されています(安定性の面で 95/98/Me はやめたほうが良いでしょうが)。

UNIX の仲間(含 Linux/FreeBSD)で Cコンパイラがあれば、ソースからビルドして動く可能性大です。その場合

が必要です。

NetBSD では Zopeのpackage(pkgsrc) があれば、それを使うと良いでしょう。


どのバージョンをインストールすればよいですか

 現在2つの系統のバージョンがあります

 それぞれ別のものと考えるのが良いでしょう。 3.x 系は、普通 Zope 3 と呼ばれ、Zope とバージョン番号なしで書かれているものは 2.x のことを言っています。

  Zope は、それを動かすのに必要な Python のバージョンに依存しますし、Plone を使う場合は、サポートしているバージョンの Zope を使う必要があります。


どうやってインストールすればよいですか

Windows の場合は、インストーラーから、UNIX系の場合はソースからインストールするのが良いでしょう。

以下は、ソースからインストールする場合の超抜粋($(INSTANCE_HOME)は、どこかインストールしたい場所)

2.7以降 の場合

  1. taraball を解いて su で ./configure && make && make install
    これで、/opt/Zope-2.7 にZope 本体がインストールされます
  2. /opt/Zope-2.7/bin/mkzopeinstance.py を実行し、インスタンスを作るディレクトリと、管理者のユーザーID、パスワードを入力します。
    bash-2.05b$ /opt/Zope-2.7/bin/mkzopeinstance.py
    Please choose a directory in which you'd like to install
    Zope "instance home" files such as database files, configuration
    files, etc. Directory: /home/nakagami/zope <---------(1) Zope インスタンスを作るディレクトリを入力
    Please choose a username and password for the initial user.
    These will be the credentials you use to initially manage
    your new Zope instance.

    Username: admin <----------(2) 管理者のユーザーIDを入力
    Password: <----------(3) 管理者のパスワードを入力
    Verify password: <----------(4) もう1回パスワードを入力
  3. 「$(INSTANCE_HOME)/bin/zope_ctl start」 で Zopeの起動
    (上記インストールの例では「/home/nakagami/zope/bin/zope_ctl start」と入力)
  4. http://localhost:8080/manage にアクセスして管理画面(ZMI)を開く
その他参考情報

2.6 までの場合

  1. tarball を解いて、$(INSTANCE_HOME)にコピー
  2. cd $(INSTANCE_HOME)
  3. /usr/local/python2.1 wo_pcgi.py
  4. (adminのパスワードをメモって・・)
  5. start の実行で Zope を起動
  6. http://localhost:8080/manage にアクセスして管理画面(ZMI)を開く

詳しくはThe Zope Bookの該当する章を見てください


もっと簡単にインストールする方法はありますか

 Plone.org ダウンロードサイトには、 各プラットフォームのインストールパッケージ形式のアーカイブがあります。 これらでは、Zope の他に Plone や、いろいろなおまけプロダクトもインストール されてさらにお得です。

Windowsへのインストールは紅茶好きの猫さんの書いた手順がわかり易いと思います。


URL に :8080 ってつくのが嫌なんですが

Zopeのインストールはそのままに、手前に Squidを置く方法はこちらを見て下さい。

Zope の設定だけでやるのは・・・
2.7 の場合は、まず、$(INSTANCE_HOME)/etc/zope.conf の http-server ディレクティブのところの address 8080 を 80 に変更します。 次に、Zope を実行する root でないユーザーID を決め(以下では foo)
$(INSTANCE_HOME)/etc/zope.conf に effective-user foo を加えます。
以上の設定を行なったあと、Zopeの起動を root で行なうように設定します。


日本語は使えますか

 日本語を使うの意味に大きく4つの意味に分けられます(狭義に日本語を使うというのは 1.に相当するでしょう)。

  1. 管理画面(ZMI)で日本語を使う
  2. ZCatalogで日本語を使う
  3. メールで日本語を使う
  4. プログラム中で日本語を使う

 いずれの場合も文字コードは、UTF-8 もしくは EUC-JP を使いましょう。Zope 自体が UNICODE centric な方向に進んでいるので、連動する RDBMS等の事情が許せば UTF-8 を使うのが良いでしょう。
 Shift JIS 、7bit JIS では使用できないと考えたほうが良いです。(どうしても使いたい場合は、自分でプログラムするか、フロントに DeleGate等の文字コード変換プロキシを置くようにする方法が考えられますが)


管理画面(ZMI)で日本語を使うにはどうすればよいですか

 管理画面(ZMI)で、フォルダオブジェクトのプロパティに management_page_charset (文字列型)として、'UTF-8' や 'EUC-JP' を設定すると、そのフォルダ内では指定した文字コードで DTML や Page Template が編集できる(=日本語表示のWebページが作れる)ようになります。


ZCatalogで日本語を使うにはどうすればよいですか

 Zope にはオブジェクトを検索するための ZCatalog というオブジェクトがあります。ZCatalog による検索については The Zope Book を参照してください。オリジナルの Zopeのままでは、日本語の検索ができません。日本語での検索を可能にするためには、日本語のための Splitterが必要になります。初心者であれば、インストールが簡単な ejSplitter を使うのが良いでしょう。


メールで日本語を使うにはどうすればよいですか

 Zopeのバージョンが2.6 以降であれば jaMailHost をインストールします。


プログラム中で日本語を使うにはどうすればよいですか

 一貫して、文字コードに UTF-8 もしくは EUC-JP を使うのであれば、特に必要なものはありません。文字コード変換を行いたい場合は、Zope を起動している Python に日本語関連のモジュールをインストールすれば、そのモジュールが使えるようになります。
いろいろありますが、ここでは

を紹介しておきます。


XXXX プロダクトを使いたいのですが

 基本的には、アーカイブを解いて、$(INSTANCE_HOME)/Products (2.6 の場合は lib/python/Products) ディレクトリにコピーすることによりインストールしますが、手順については、プロダクトのアーカイブの中にあるはずです。

 プロダクトは、ものによって品質にばらつきがあり、Zopeのバージョンが上がることにより動かなくなっているものもありますので、その点注意が必要です。使うにあたっては

を確認する必要があります。業務で使うような場合は、いざとなればソースを見て自分で直すぐらいの意気込みが必要です。

 また、Zope のバージョンが上がることにより、そのプロダクトが動かなくなってしまう可能性があります。そのときに

のいずれかになるので、プロダクト自体のメンテナンスが続けられそうかどうか(また、過去にデータ移行ツールが用意されたかなど) 、ソースを見て自分でもメンテナンスできそうか、を確認しておいたほうが良いでしょう。


RDBMS と連動させたいのですが

 使い方については、The Zope Book を参照してください。

私は、以下のデータベースを使ってみたことがあります

MySQLを使ってないのは、単に嗜好の問題で、実績はあるようです。
ZODBCDAは、現状では、難ありですが、ソースを直せばちゃんと動きそうです。コンパイラを持っている方、直してください。

Zopeに同梱されている ZGadflyDA は、実用には耐えないようです。


DTMLや PythonScript で XXXXXX という処理をしたいのですが

 Zopeのソースを読みましょう。特に lib/pythyon/App にある管理画面(ZMI)のソースが参考になります。


私の Plone が遅いんですけど

Zopeを debug mode で起動していませんか?
Zope 2.6 以前の場合は、start スクリプト(Windowsでは start.bat)で z2.py 起動している行の -D オプションを外してみましょう。
Zope 2.7 以降の場合は、etc/zope.conf に debug-mode offを追加してみましょう。

それでも遅いと思っているあなたの Zope マシンが大量のメモリをもっているなら、etc/zope.conf の <zodb_db main>~</zodb_db> の中で cache-size 20000 などと、キャッシュサイズを大きくしてみると良いでしょう。


ある nakagami のメモ