2009/02/10(火)Ploneの概要と、Ubuntu/Debianへのインストール方法
Ubuntu8.04上に、Ploneと呼ばれるWeb型CMSをインストールしたときの記録。
よければこちらも参照ください→Ploneメモ、Plone / Archetypes のプロダクトサンプル
Plone(ぷろーん)とは
PythonというRubyっぽいオブジェクト指向言語の上で動く、CMSツールです。Zopeと呼ばれるWebアプリケーションワークフレームの上で動作します。Ploneの動作サンプルはオフィシャルを見るのが良いようです。
Zopeとは、Pythonで記述されたWebアプリケーションフレームワーク。CGIフレームワークとは異なり、それ自体がWebサーバ機能、データベース機能を内包しています。
スタンドアローンで動作するので通常のレンタルサーバ等では動作しません。ユーザーのホームにPython+Zopeをインストールし、特権ポートをListenしなければユーザー権限で動作させることもできます。Apacheからのmod_proxyなりで透過的に接続させることもあるようです。
……というレベルの説明が、どうしてPloneオフィシャルサイトに書いてないのか謎。*1
Ploneの準備
執筆時点での最新版はPlone 3.2.xですが、まだ日本語化がされていないので、今回は日本語化がされているPlone 3.1.xをインストールします。
必要な環境は次のとおりです。(参考資料)
- Zope 2.10.x
- Python 2.4.x
Ploneの配布形態には「Unified Installer」と「Product Package」版があります。前者は一般ユーザーを想定したものらしく、利用すると「PythonやZopeごと」環境を構築された上、Pythonのコンパイル済バイナリ(バイトコード)だけ置き去りにされるので、中身を参照したいときにはありがた迷惑です。*2
通常の感覚でのパッケージは後者の「Product Package版」です。Plone本体のみが配布されています。
Zopeのインストール
バージョン依存が激しいらしく、PloneがZope 2.10に依存し、Zope 2.10がPython 2.4に依存しています。Ubuntu8.04*3にはPython 2.5がインストールされていますが、2.4を別でインストールする必要があります。
難しいことは考えず、apt-get (synapticでも可)で次のパッケージをインストールします。
# apt-get install zope2.10
依存関係でPython 2.4も一緒に入ります。Plone動作のための必要なライブラリも入れます。
# apt-get install python-imaging-tk python-elementtree
このようにインストールしたZopeはそのままでは特に何も動作しません。というのも、ZopeはWebサーバではなくアプリケーションフレームワークであるからです。Zopeフレームワークは、スクリプトによりユーザーが指定したディレクトリ以下にZopeの環境を構築し動作可能な状態に初期化します。このように初期化されたひとつのZope動作環境のことをインスタンスと言います。
(Ubuntuにおける)Zopeのインストールとは、このようにインスタンスを生成できる環境を整えることを意味するようです。
Ploneのインストール
ここでは、Zopeのインスタンスを作成し、そこにPloneをインストールする方法をのべます。
- ユーザー : userid
- 場所 : ~userid/plone/
まずZopeインスタンスを作成します。Ubuntuでは残念ながらrootでないと実行できないようです。
# /usr/lib/zope2.10/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/userid/plone 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 Password: パスワード Verify password: パスワード # chown -R userid:userid /home/userid/plone
admin/パスワードは、あとでZopeにアクセスするときに必要になります。ディレクトリの所有権を変更したら以降はrootを抜けて操作します。
まず、Ploneの「Product Package版」をここから辿ってダウンロードします。そのファイルをhomeディレクトリにおいて次の作業です。
~$ tar zxvf Plone-3.1.x.tar.gz ~$ cp -Rp Plone-3.1.x/* plone/ ~$ rm -rf Plone-3.1.x/ ~$ cd plone
PloneはZopeのライブラリ(Product)として実装されているため、このようにZopeインスタンスの中へ必要なファイルをすべてコピーしてあげます。
このままPlone/Zopeを起動しても良いのですが、Listenするポート番号(アクセスポート番号)を変えておきます。自分は、覚えやすいように 8080 に変更しました。
# vi plone/etc/zope.conf
%define INSTANCE /home/nabe/plone
%define HTTPPORT 8080 この行のみ修正
%define ZOPE /usr/lib/zope2.10
%define ZOPE_USER zope
%define ZEO_SERVER localhost:8100
ついでに文字コードなども設定しておきます。
rest-language-code ja rest-input-encoding utf-8 rest-output-encoding utf-8
zopeを起動します。1023番以下の特権ポートを利用しないので、root権限は必要ありません。
~$ bin/zopectl start
起動していればアクセスできます。サーバのIPを入力してアクセスし起動を確認してみてください。初回のアクセスは時間がかかることがあります。
http://192.168.xxx.yyy:8080/
Ploneサイトの構築
「以上でPloneサイトができました」なら話が早いのですが、ここまででは、PloneのライブラリがインストールされたZopeが動いているにすぎません。
Zopeのマネージャにアクセスし、Ploneサイト(コンテンツ)を追加してあげる必要があります。次のアドレスを開きます。
http://192.168.xxx.yyy:8080/manage/
IDとパスワードを求められるので、Zopeインスタンス作成時に指定したID/Passを入力してください。次の画面が表示されると思います。左の、メニューから「Root Folder」を選択した状態で右画面からPloneコンテンツを追加します。右上のプルダウンメニューから"Plone Site"を選択します(画面写真を参考に)。
続いてフォームが現れます。IDがURLパスなので英字で、タイトルがタイトルです*4。今は仮に、idに plone と入力したとします。
最後はいよいよ plone にアクセスです。きちんと表示されましたでしょうか?*5
http://192.168.xxx.yyy:8080/plone/