plone 2.0.5 を plone 2.1.4 にアップグレード
zope 2.7.8/plone 2.0.5 の plone site を zope 2.8.8/plone 2.1.4 にアップグレードしたので、その手順をまとめてみます。
社内で運用している plone site を zope 2.7.8/plone 2.0.5 から zope 2.8.8/plone 2.1.4 にアップグレードしました。
手順をざっくりとここにまとめておきます。ちなみに OS は Vine Linux 3.2 です。
基本的には zope 2.7 上で plone のアップグレードを行い、その後 zope のアップグレードを行うという手順になります。
目次
- zope instance 作成[mkzopeinstance]
- Data.fs コピー[datafs]
- plone の移行[plonemigration]
- zope 27 環境のディレクトリ変更[zope27]
- zope 2.8.8 インストール[zope28]
- カタログ再作成[recatalog]
zope instance 作成[mkzopeinstance]
/usr/lib/zope/bin/mkzopeinstance.py コマンドを実行して
/var/lib/plone21 に新規に (zope 2.7 の) zope instance を作成する。
# /usr/lib/zope/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: /var/lib/plone21
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: takanori Password: Verify password: # chown -R zope:zope /var/lib/plone21
/var/lib/plone21/Products 以下に plone 2.1.4 と必要なプロダクトをインストールする。
zope サーバが起動できるように /var/lib/plone21/etc/zope.conf のポート番号などの設定を書き換える。
その後、/var/lib/plone21/bin/runzope コマンドで zope サーバを起動する。
ZMI から空の plone site が作成できることを確認する。
確認ができたら zope サーバを停止する。
Data.fs コピー[datafs]
元々の zope instance で使用している ZODB を pack (Control_Panel/Database/main で Pack)して、Data.fs を最小にする。
その後、zope サーバを停止し /var/lib/zope/var/Data.fs を /var/lib/plone21/var/ にコピーする。
両方の zope サーバを立ち上げる。
plone の移行[plonemigration]
ZMI で plone21 用の zope サーバにアクセスし、各 plone site で下記の移行処理を行う。
portal_quickinstallerに入り、Archetypes, MimetypesRegistry, PortalTransforms を一旦UninstallしてInstallする。
→archetype_tool,mimetypes_registry等がReinstallだとうまく入らないときがあるため- 続けて
ATContentTypes,ATReferenceBrowserWidget,ResourceRegistriesをインストールする。 portal_atctに入り、古い CMF Types から ATContentTypes に移行する。 アイテムの数が多いと、それぞれの処理に時間がかかるので注意。Recatalogタブ→Recatalog CMF TypesボタンType Migrationタブ→MigrateボタンVersion Migrationタブ→Upgrateボタン
portal_properties/site_propertiesに入り、default_charsetがeuc-jp等のものをutf-8に変更する。
→ここはお好みで- 検索用のカタログを utf-8 用に変更する。
portal_catalogに入り、ZCTextIndex Lexiconを追加する。- Id: CJKSplitter
- WordSplitter: CJK splitter
Indexesタブに入り、Description,SearchableText,Titleインデックスを削除(Remove index)する。- 上記 3 つのインデックスを
ZCTextIndexとして再作成する。- Id: Description, SearchableText または Title
- Ranking Strategy: Okapi MB25 Rank
- Lexicon: CJKSplitter
portal_migraitonに入りMigrateタブ →Upgradeボタンで plone のアップグレードを実行する。(これもかなり時間がかかる)- アップグレードが終了したら、
portal_catalog→Advancedタブに入り、Update Catalogを実行する。(これも時間かかります)
これで plone サイトが表示できるようになるはずなので、確認する。
全ポータルに対して移行が終了したら、ZODB の pack を実行して Data.fs を最小にする。
zope 27 環境のディレクトリ変更[zope27]
rpm で zope 2.8 をインストールすると、既存の zope 2.7 の環境を上書きしてしまう。
平行して動作させるために、ディレクトリ名等を変更する。
# mv /usr/lib/zope /usr/lib/zope27 # mv /var/lib/zope /var/lib/zope27 # mv /var/log/zope /var/log/zope27 # mv /etc/zope.conf /etc/zope27.conf # mv /etc/init.d/zope /etc/init.d/zope27
また、起動スクリプトや設定ファイルの中身も適宜修正する。修正したファイルは以下の4つ。
- /etc/init.d/zope27
- /etc/zope27.conf
- /var/lib/zope27/bin/runzope
- /var/lib/zope27/bin/zopectl
zope 2.8.8 インストール[zope28]
zope 2.8.8 をインストールする。
ftp://owa.as.wakwak.ne.jp/pub/vine/3.2/RPMS/ から下記の2つのパッケージをダウンロードする。
# rpm -Uvh Zope-2.8.8-uvl2.i386.rpm Zope-zserver-2.8.8-uvl2.i386.rpm
その後、起動する前にいくつかのファイルを書き換える。
/etc/zope.confポート番号等を設定/usr/lib/zope/lib/python/StructuredText/STletters.py構造化テキストで日本語が使えるように書き換える。letters = string.letters + "\200-\377\?\!"/usr/lib/zope/lib/python/sitecustomize.py新規作成して、下記の内容を書き込む。
import sys
sys.setdefaultencoding("euc-jp")
その後、zope サーバを起動する。
# /etc/init.d/zope start
カタログ再作成[recatalog]
zope 2.7 から zope 2.8 でカタログの形式が変わったので、再作成する。
ZMI でそれぞれの plone site にアクセスし、以下の3つのカタログ上で
Advanced タブ → Update Catalog を実行する。
portal_catalogreference_cataloguid_catalog
残作業
- コメントの文字化け対応(euc-jp → utf-8)
- 氏名の文字化け対応(euc-jp → utf-8)