Zope 2.7.4 のページから、 Zope-2.7.4-0-win32.exe を適当なフォルダにダウンロードします。
ダウンロードしたファイルをダブルクリックなどして実行します。以下、画面とともに説明します。
これからZope 2.7.4のSetupがはじまりますよ。というだけなので、何も考えず Next をクリックします。
次にZopeをインストールする場所を聞いてくるので、デフォルトの C:\Program Files\Zope-2.7.4-0 で問題なければ、そのまま Next をクリックします。
それ以前のZopeと違い、Zope2.7からはデータなどはインスタンスというところに入れるようになりました。で、そのインスタンスも一緒にインストールするか聞いてきます。ここでは一緒にインストールするので、そのまま Next をクリックします。
次に、ZopeをWindowsのスタートメニューのどこに入れるかを選択します。このままで問題ないので Next をクリックします。
ここでは、ZopeをWindowsのサービスとして設定し、Windowsの起動時に自動的に立ち上げるかを聞いてきます。ここも、そのまま Next をクリックします。
自動起動をやめたい場合などは、スタートメニューのプログラム→管理ツール→サービスでWindowsのサービスを管理する画面を起動して、設定を変更することができます。
Select Components画面 で選択したインスタンスをインストールするディレクトリを聞いてきます。デフォルトの C:\Zope-Instance で問題なければそのまま Next をクリックします。
次に、そのインスタンスのadminユーザのパスワードを設定します。任意のパスワードを入力して(忘れないでください!)から Next をクリックします。
これでやっと、インストールの準備が完了できました。ここまでに設定した内容でインストールして問題がなければ Install をクリックします。
インストールが完了すると、インストールの完了画面が表示されます。早速Zopeを起動してアクセスしてみます。
Web Browserに http://localhost:8080/ というURLを入力して、インストールしたZopeのトップページが表示されるかを確認します。 正常にインストールしてZopeが起動できていれば、Zope Quick Start 画面が表示されます。
次に、Zopeの管理画面にアクセスします。
Web Browserに http://localhost:8080/manage
というURLを入力します。
するとパスワードの入力画面が表示されるので、ユーザ名 admin と先ほど設定したパスワードを入力します。
正しくパスワードを入力すると、Zopeの管理画面が表示されます。
Windows環境にインストールしたZopeをアンインストールするには、アプリケーションの追加と削除で Zope 2.7.4-0 を選択して 変更と削除 ボタンをクリックするだけです。
ただし、この作業だけではインスタンスと一部のファイルが残っているかもしれないので、完全に削除する場合は下記のディレクトリを削除して下さい。
C:\Zope-InstanceC:\Program Files\Zope-2.7.4-0このディレクトリにはZopeを構成する基本的なファイルが入ります。 基本的に、ここにあるディレクトリやファイルを操作することはほとんどないと思います。
C:\Zope-Instance 等のインスタンスが作成されます。zope.conf という名前の設定ファイルが入っています。ファイルの書き方は Apache の httpd.conf に似ています。
どのサービスを立ち上げるか、ポート番号を何番にするか、どこからアクセスできるかなど色々設定することができます。*.zexp)を入れます。Data.fs 等が入っています。もともとVine Linux 3.1ではZope 2.7.4がパッケージとして配布されているので、aptコマンドでインストールします。 なお、apt-get等のaptコマンドはroot権限で実行する必要があるので、sudoを使って実行します。
# apt-get update # apt-get install Zope Zope-zserver
Zope 2.7.4がパッケージとして配布されるようになったので、以下の打ち消し線で消してある作業は不要になりました。すでにZope 2.7.2または2.7.3をVine Linuxにインストールしていて、アップグレードしたい人は、下記のコマンドを実行してください。
# apt-get update # apt-get upgrade
また、owaさんの 象歩 というサイトで、Zope 2.7.3 の Vine Linxux 用パッケージが置いてあります。下記の2ファイルをダウンロードして、rpmコマンドを使ってアップグレードします。
% sudo rpm -Uvh Zope-2.7.3-0vl1.i386.rpm \
Zope-zserver-2.7.3-0vl1.i386.rpm
w3mや他のWeb Browserに http://localhost:8080/ というURLを入力して、インストールしたZopeのトップページが表示されるかを確認します。 正常にインストールしてZopeが起動できていれば、Zope Quick Start 画面が表示されます。
他のマシンからアクセスする場合は、localhost の変わりにIPアドレスや適当なマシン名を入力してください。
次にZopeの管理画面にアクセスします。
Web Browserに http://localhost:8080/manage というURLを入力します。
するとパスワードの入力画面が表示されるので、ユーザ名 admin と初期パスワード 123 入力します。(パスワードはあとで必ず変更してください)
正しくパスワードを入力すると、Zopeの管理画面が表示されます。
以下はZopeパッケージでインストールされるディレクトリやファイルです。
下記のファイルの所有者/所有グループは全て root になります。
/var/lib/zope 等のインスタンスが作成されます。以下はZope-zserverパッケージでインストールされるディレクトリやファイルです。
zope になります。zope ユーザで bin/runzope コマンドを実行すると、詳細なメッセージが表示されるので問題点がわかりやすくなります。*.zexp)を入れます。/var/log/zope へのシンボリックリンクです。Data.fs 等が入っています。/etc/init.d/zope start /etc/init.d/zope stop といった形で実行できます。httpd.conf に似ています。 どのサービスを立ち上げるか、ポート番号を何番にするか、どこからアクセスできるかなど色々設定することができます。 まずはじめに、セキュリティのためにZopeを管理するユーザの変更、またはパスワードの変更をしましょう。(adminという名前のユーザは下記の手順で削除することをおすすめします)
ユーザ情報は acl_users フォルダに入っているので、クリックします。
するとユーザの一覧画面が表示されるので、Add... ボタンを押して新規ユーザを作成します。
新しい管理ユーザの名前、パスワード(確認のため2回入力)、と権限(Roles)で Manager を選択してから、Add ボタンで新しい管理ユーザを追加します。
すると下記のように、新規ユーザが作成されます。
ここで、今作成した新しい管理ユーザ(myadmin)でログインしなおします。
Zope管理画面の右上から Logout を選択します。
すると、Web Browserからユーザ名とパスワードの入力プロンプトが表示されるので、新しい管理ユーザのユーザ名とパスワードを入力します。うまくログインできない場合は、一旦パスワードの入力をキャンセルしてから、もういちど http://localhost:8080/manage にアクセスして入りなおしてみてください。
正常にログインできると、以下のようにログインしたユーザ名が新しい管理ユーザの名前で表示されます。
新しい管理ユーザで入りなおしたら、もともとある管理ユーザ admin を削除します。ユーザの削除は簡単で acl_users に入って、削除したいユーザを選択して Delete ボタンを押すだけです。
これで、adminユーザが存在しなくなったため、Zopeサーバに他の人が管理者となって侵入する可能性がの低くなりました。
http://localhost:8080/manage で表示される管理画面では、さまざまなZopeのオブジェクトを作成することができます。 しかし、初期状態ではそれらのオブジェクトのタイトルに日本語を使うことができません。
例えば、テスト用のコンテンツを保存する テスト という名前のフォルダを作成するとします。
まず、Zope管理画面の右上にあるリストボックスから、Folder を選択して追加します。
次にフォルダの作成画面が表示されるので、Idを 'Test'、Titleを テスト と入力して追加します。(Idに日本語を設定することはできません。)
新しいフォルダが作成されると、ルート('/)フォルダのコンテンツ一覧画面に戻ります。ここで、TestフォルダのTitle部分を見ると テ' とかいう謎な文字列が表示されています。
上記の様に文字化けしてしまう原因は、Zope管理画面の文字コードが設定されていないために発生します。文字コードが設定されていないと、入力された文字列がどのような内容なのかをZopeサーバが判断できないのです。
そのため、Zopeサーバに対して、管理画面の文字コードを指定する必要があります。
文字コードは対象となるフォルダ(この場合はルートフォルダ)に対するプロパティとして設定できます。プロパティを設定するためには、Properties タブをクリックします。
management_page_charsetstringutf-8ここでは utf-8 を文字コードとして指定していますが、euc-jp や shift_jis 等を指定することも可能です。
新しく作成したフォルダ(Test2)では、日本語タイトルが正しく表示されることが確認できます。
ploneで文書を書くときに(私は)よく使う構造化テキストでは、初期状態では一部日本語に対応していない部分があります。
具体的に説明すると "takanory.net":http://takanory.net/ と記述すると、takanory.net というようにリンクになります。
しかし、同様に "たかのりぃ.net":http://takanory.net/ と記述しても、"たかのりぃ.net" の部分にリンクがはられません。
これは、全角文字が入っていると、構造化テキストが「処理すべき文字列」と認識してくれないためです。
そこで、Zopeのソースコードを修正します。
修正するファイルは STletters.py というファイルで、このファイルは以下の場所にあります。
C:\Program Files\Zope-2.7.3-0\lib\python\StructuredText\STletters.py/usr/lib/zope/lib/python/StructuredText/STletters.pyファイルをエディタ等で開いて、以下の部分を修正します。
letters = string.letters
letters = string.letters + '\200-\377\?\!'
修正したコードを読み込ませるために、Zopeサーバを再起動します。
再起動はZopeの管理画面 http://localhost:8080/
の Control_Panel から Restart ボタンをクリックして行ないます。
再起動後に、正しく日本語を含んだ構造化テキストの処理ができていることを確認します。
参考) Zopeメモ の 日本語関連モジュール+α
プロダクトを追加したい場合は、必要なプロダクトのアーカイブ('*.tar.gz'等)をダウンロードしてきて解凍し、そのファイルをZopeサーバのインスタンスにある Products ディレクトリに保存します。
ここでは、COREBlog というBlogを作成するためのプロダクトのインストールを例にして説明します。
他にも、Zopeで仕える有用なプロダクトが http://www.zope.org/ 等で公開されているので、色々探してみてください。
まず、プロダクトを構成するアーカイブファイル COREBlog10.tgz をダウンロードします。
次に、アーカイブを解凍します。すると COREBlog というディレクトリができます。このディレクトリを Products ディレクトリに移動します。デフォルトでは下記のディレクトリになります。
C:\Zope-Instance\Products/var/lib/zope/Products/ ただし、Vine Linux環境の場合は、プロダクトの所有者と所有グループを zope にしておく必要があります。下記のコマンドを実行して所有権の変更をしてください。
% sudo chown zope:zope /var/lib/zope/Products/COREBlog % ls -l /var/lib/zope/Products/ drwxr-xr-x 6 zope zope 4096 Dec 15 23:50 COREBlog/
ただし、Products ディレクトリにファイルを置いただけでは、まだCOREBlogを使用することはできません。Zopeサーバに新しいプロダクトを読み込ませなければなりません。
プロダクトを読み込むために手っ取り早いのは、Zopeサーバを再起動することです。
Zope管理画面のルートフォルダにある Control_Panel を選択すると、このZopeサーバに関する情報が表示されます。
ここで、Restart ボタンをクリックすると、Zopeサーバが再起動します。
再起動されたら、プロダクトが読み込まれたかを確認します。Zopeサーバで使用できるプロダクトの一覧は、Control_Panel の下の Product Management から参照できます。
プロダクトの一覧を参照すると、COREBlog が正しく読み込まれていることが確認できます。(他のプロダクトはZopeにデフォルトでインストールされているものです)
新規プロダクトを使用したオブジェクトを作成します。
オブジェクトの作成の方法は、フォルダを作成したときと同様で、右上のリストボックスからここでは COREBlog を選択して作成します。
あとは、それぞれのプロダクトの説明などに従って利用してください。
ここでは日本語関連と、画像関連のpythonのライブラリをインストールします。
基本的なpythonのライブラリをインストールする方法は全て同じで。python setup.py install というコマンドを実行するのみです。
そうすると、ライブラリの生成とインストールが実行されます。ライブラリのインストール場所は Vine Linux でpython2.3を使用している場合は以下のディレクトリとなります。
/usr/lib/python2.3/site-packages/JapaneseCodecsはUnicodeをサポートした最近のpythonに、EUC-JP、Shift_JIS、ISO-2022-JP等の日本語の文字エンコーディングを扱えるようにするためのものです。このライブラリをインストールすることにより、pythonで日本語の文字コードの変換を行なえるようになります。
PyKfは日本語の文字コードを相互に変換するためのライブラリです。また、JapaneseCodecsにない機能として、全角カタカナと半角カタカナの変換ができます。
kconvも同様に日本語の文字コードを相互に変換するためのライブラリです。他のライブラリにない機能としては英数記号の全角と半角の変換、ひらがなとカタカナの変換、全角英字の大文字・小文字変換があります。
Python Imaging Libarary(PIL)は名前の通り画像を扱うライブラリです。このライブラリを使用することにより各種画像ファイルの情報取得・サイズ変更・変換等が行なえるようになります。
写真を扱うzope/ploneのプロダクトでよく利用されます。しかし、PILの画像のリサイズはちょっと処理が荒い気がするので、個人的には ImageMagick を併用することをおすすめします。(たいていのプロダクトは両方に対応しているので)
PIL 1.1.5 のインストールは下記のコマンドを実行して行います。
% python setup.py build_ext -i % python selftest.py % sudo python setup.py install
zopeのデータが入っている Data.fs ファイルには、変更履歴も残っていてアンドゥができるようになっています。
ただし、この情報をいつまでも残しているとデータがどんどん膨らんでしまうので、定期的に圧縮した方がいいと思います。
また、過去のデータをバックアップもした方がいいと思うので、データをまとめて Export するスクリプトを作成します。
以下のスクリプトを /etc/cron.weekly/packzodb というファイルで作成すると、週に一回実行されます。:
cd /var/lib/zope/var rm root.4.zexp.gz mv root.3.zexp.gz root.4.zexp.gz mv root.2.zexp.gz root.3.zexp.gz mv root.1.zexp.gz root.2.zexp.gz mv root.zexp.gz root.1.zexp.gz wget -O /dev/null \ --http-user=admin \ --http-passwd=XXXXXXXX \ http://localhost:8080/manage_exportObject mv .zexp root.zexp gzip root.zexp wget -O /dev/null \ --http-user=admin \ --http-passwd=XXXXXXXX \ "http://localhost:8080/Control_Panel/Database/main/manage_pack?days:float=7"
このスクリプトの内容は以下のとおりです。
Data.fs が存在するディレクトリに移動して、過去のバックアップファイルの名前をずらします。http://localhost:8080/manage_exportObject にzopeの管理ユーザでアクセスし、.zexp という全データの入ったファイルを作成します。root.zexp というファイル名に変更して圧縮します。zope管理画面(ZMI) から作成できる Python Script には、セキュリティの観点から利用できるモジュールが極端に制限されています。(string, math, randam とか程度)
それだけじゃ不便で使いたいモジュールが存在する場合には、このモジュールを使えるようにするという設定を zope サーバに対して行う必要があります。
モジュールを追加するためには、モジュールを追加するという命令を記述したプロダクトを作成する必要があります。
といってもそんなに難しいわけではなく、雛形が用意されているのでそれを利用します。
まず、zope インスタンスの Products ディレクトリに GlobalModules とかいた適当なディレクトリを作成ます。
# cd /var/lib/zope/Products # mkdir /var/lib/zope/Products/GlobalModules
次に、/usr/lib/zope/lib/python/Products/PythonScripts/
にあるサンプル(modyle_access_examples.py)を
__init__.py という名前でコピーします。
# cp /usr/lib/zope/lib/python/Products/PythonScripts/module_access_examples.py \ __init__.py
このスクリプトを見れば使い方がわかりますが allow_module や allow_class という関数を使って利用可能なモジュールやクラスを指定します。
私の場合は以下の部分をコメントアウトして、re と fnmatch を利用できるようにしました。:
ModuleSecurityInfo('fnmatch').declarePublic('fnmatch', 'fnmatchcase')
ModuleSecurityInfo('re').declarePublic('compile', 'findall',
'match', 'search', 'split', 'sub', 'subn', 'error',
'I', 'L', 'M', 'S', 'X')
import re
allow_type(type(re.compile('')))
allow_type(type(re.match('x','x')))
あとは zope サーバを再起動すると、これらのモジュールが Python Script から使えるようになります。