久しぶりにploneの環境を作ってみた。
知らない間に3.0までバージョンが上がっている。
FreeBSDの場合はportsから最新のPythonを入れると2.5.1なので
/usr/opt/python24 にPython2.4.4を別途入れる。FreeBSDの
スレッドスタックはデフォルトで小さすぎるのでWANT_HUGE_STACK_SIZE
オプションを付けてmakeしないと、zopeのインスタンスホームに
python.coreができることになってしまうと INSTALL.txtに書いてある。
# ./configure –with-threads
# make WANT_HUGE_STACK_SIZE=yes
# make install
ところがこれではうまくいかなかった。スレッドのスタックが大きく
なっていないみたいだ。Pythonのソースをgrepしても
そのオプションは見つからない。
仕方ないのでportsのMakefileを見ると、HUGE_STACK_SIZE=yes だと
CFLAGに -DTHREAD_STACK_SIZE=0x100000 としている。どうもこっちの
方が確実そうなので、configureスクリプトが生成したMakefileの
OPTに-DTHREAD_STACK_SIZE=0x100000 を足してみた。そして普通に
make, make install 。今度は大丈夫そうだ。
スレッドスタックの大きさの確認方法は以下のとおり。
結果が1000ならたぶんうまくいく、ということらしい。
おそらくFreeBSD6.xなどでは初めから問題ないみたいなのだが、
サーバがFreeBSD4.11(古すぎ)なので問題がみたい。
「How can I make sure my BSD Python has enough stack?」
# python
Python 2.4.4 (#1, Sep 5 2007, 14:15:24)
[GCC 2.95.4 20020320 [FreeBSD]] on freebsd4
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import sys
>>> sys.getrecursionlimit()
1000
Plone3.0を動かす場合に必要になるPythonライブラリを先に入れておく。
- PIL(Python Imaging Library) 1.1.5 or newer
- Python ElementTree
PloneはベースになるZopeのバージョンにうるさい。Plone3.0の場合は
Zopeは2.10.4以上でないと動かない。Zope2.11.x系列やZope3.0系列は
だめ。今回は /usr/opt/zope2.10.4 にインストールする。
# cd /usr/local/src
# wget http://www.zope.org/Products/Zope/2.10.4/Zope-2.10.4-final.tgz
# tar xvfz Zope-2.10.4-final.tgz
# cd Zope-2.10.4-final
# ./configure –prefix=/usr/opt/zope2.10.4
–with-python=/usr/opt/python24/bin/python
–optimize
# make
# make install
やっとPlone3.0のインストールだ。/usr/opt/Plone-3.0にインストール
することにした。Productsとlibの中身をそれぞれコピーしてもいいけど
たぶん将来見たときPloneのどのバージョンかわからなくなるので、
シンボリックリンクの方が好み。
# cd /usr/opt
# wget http://plone.googlecode.com/files/Plone-3.0.tar.gz
# tar xvfz Plone-3.0.tar.gz
# cd Plone-3.0
# ln -s /usr/opt/Plone-3.0/lib/python/*
/usr/opt/zope2.10.4/lib/python/
# ln -s /usr/opt/Plone-3.0/Products/*
/usr/opt/zope2.10.4/Products/
ここまで来たらZopeのインスタンスを作れる。
# /usr/opt/zope2.10.4/bin/mkzopeinstance.py
このままではアクセスするのにポート番号が必要になるので、
適当なホスト名をDNSに設定して、apache側でProxyPassディレクティブ
を使って、Proxy経由でアクセスできるようにした方がかっこいいかも。
http://192.168.0.10:8080/
httpd.conf
ServerName plonedemo.hogehoge.com
ProxyPass / http://localhost:8080/VirtualHostBase/http/plonedemo.hogehoge.com:80/V
irtualHostRoot/
で最初にアクセスするとなんだか30秒近く待たされる。重すぎだろ・・

でもそれ以降はまあまあサクサク動きます。