Ploneをoldstyleな環境からbuildout環境へ移行する
いずれはbuildoutに移行する必要があるので移行を試みてみます。基本的にはディレクトリ構造が変化するだけでoldstyle風に運用することは可能なはずです。デフォルトのbuildoutではZopeとPloneがセットアップされますので、とりあえずそれを使い、その他のプロダクトはbuildoutを使わずにoldstyleでProductsフォルダへ放り込んでしまえばよいと思われます。ということでまずはoldstyle風の環境へ移行してみます。
とりあえず素のbuildout環境を作ります。easy_installをインストールし、
easy_install ZopeSkel
とすれば必要なモノは取りそろうはずです。
「paster create --list-template」で「plone3_buildout」が見えていれば問題ないでしょう。
$ paster create --list-template Available templates: archetype: A Plone project that uses Archetypes basic_namespace: A project with a namespace package basic_package: A basic setuptools-enabled package basic_zope: A Zope project kss_plugin: A KSS plugin template nested_namespace: A project with two nested namespaces. paste_deploy: A web application deployed through paste.deploy plone: A Plone project plone2.5_buildout: A buildout for Plone 2.5 projects plone2.5_theme: A Theme for Plone 2.5 plone2_theme: A Theme Product for Plone 2.1 & Plone 2.5 plone3_buildout: A buildout for Plone 3 projects plone3_portlet: A Plone 3 portlet plone3_theme: A Theme for Plone 3.0 plone_app: A Plone App project plone_hosting: Plone hosting: buildout with ZEO and any Plone version plone_pas: A Plone PAS project recipe: A recipe project for zc.buildout silva_buildout: A buildout for Silva projects
「plone3_buildout」テンプレートを指定してnagosui.orgというbuildout環境を生成しました。途中でいろいろ尋ねられますが、デフォルトのままでよっぽど大丈夫でしょう。
今はテスト稼動のためにHTTPポートを9080に指定しています(後ほど8080に変更します)。
$ paster create -t plone3_buildout nagosui.org Selected and implied templates: ZopeSkel#plone3_buildout A buildout for Plone 3 projects Variables: egg: nagosui.org package: nagosuiorg project: nagosui.org Enter zope2_install (Path to Zope 2 installation; leave blank to fetch one) ['']: Enter plone_products_install (Path to directory containing Plone products; leave blank to fetch one) ['']: Enter zope_user (Zope root admin user) ['admin']:hoge Enter zope_password (Zope root admin password) ['']: hogehoge Enter http_port (HTTP port) [8080]: 9080 Enter debug_mode (Should debug mode be "on" or "off"?) ['off']: Enter verbose_security (Should verbose security be "on" or "off"?) ['off']: Creating template plone3_buildout Creating directory ./nagosui.org Copying README.txt to ./nagosui.org/README.txt Copying bootstrap.py to ./nagosui.org/bootstrap.py Copying buildout.cfg_tmpl to ./nagosui.org/buildout.cfg Recursing into products Creating ./nagosui.org/products/ Copying README.txt to ./nagosui.org/products/README.txt Recursing into src Creating ./nagosui.org/src/ Copying README.txt to ./nagosui.org/src/README.txt Recursing into var Creating ./nagosui.org/var/ Copying README.txt to ./nagosui.org/var/README.txt ----------------------------------------------------------- Generation finished You probably want to run python bootstrap.py and then edit buildout.cfg before running bin/buildout -v See README.txt for details -----------------------------------------------------------
最後のドキュメンテーションを読むと、このあと
- 「python bootstrap.py」を実行する
- (必要があれば)buildout.cfgを編集する
- 「bin/buildout -v」を実行する
という手順になるようです。
今作ったディレクトリに入って中身を確認すると、確かに「bootstrap.py」が見えます。
$ cd nagosui.org $ ls README.txt bootstrap.py buildout.cfg products/ src/ var/
ここで「python bootstrap.py」を実行します。ウチではpythonのバージョン2.3と2.4と2.5が入っていますので、バージョン2.4を使うために「python bootstrap.py」ではなく「python2.4 bootstrap.py」としています。
$ python2.4 bootstrap.py Creating directory '/home/nyusuke/nagosui.org/bin'. Creating directory '/home/nyusuke/nagosui.org/parts'. Creating directory '/home/nyusuke/nagosui.org/eggs'. Creating directory '/home/nyusuke/nagosui.org/develop-eggs'. Generated script '/home/nyusuke/nagosui.org/bin/buildout'.
これで「bin/buildout」スクリプトが生成されましたので、これを実行します。ちなみに「-h」や「--help」オプションを付けると詳細な使用法を参照できます。「-v」はverboseモード(ログ出力モード)です。
$ bin/buildout -v
環境ができあがったので内容を確認してみます。
$ ls README.txt bootstrap.py develop-eggs/ eggs/ products/ var/ bin/ buildout.cfg downloads/ parts/ src/
移行に関係ありそうなのは、「products」「var」の2つでしょうか。productsディレクトリには今まで通りREADME.txtしかありませんが、varディレクトリの方は「filestorage」「instance」「log」のサブディレクトリがあるようです。
$ ls var/ README.txt filestorage/ instance/ log/
試しに素の状態でZopeを起動させてみるとfilestorageディレクトリにData.fsが生成されましたので、これまでのData.fsをfilestorageディレクトリにコピーすればよいようです。
プロダクトに関しては、Plone自体は「parts/plone」ディレクトリに入っていますので、手順としては
- Plone以外のプロダクトをproductsディレクトリにコピー
- Data.fsをvar/filestorageディレクトリにコピー
すればいいような気がします。
コピーしたらインスタンスを立ち上げます。これまでの「zopectl」コマンドは「instance」コマンドに名前が変わったので
$ bin/instance start
とします。
ただし私の環境ではFSS、ATAmazonでエラーが出ましたので、この2つを外して起動しました。
とりあえず起動できて、もうこれでいいやと思ってしまいましたので、HTTPポートを8080へ変更します。
HTTPポートはbuildout.cfgで設定されていますのでこれを編集します。
[instance] ... ... http-address = 8080
編集したら変更を反映させるためにbuildoutスクリプトを実行します。
$ bin/buildout -v
最後にインスタンスをリスタートして移行完了とします。
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (0)
