Plone 2.1.3 -> 2.5.3-final アップグレード
Plone 2.1.3 から 2.5.3-final にアップグレードして、本鯖で稼働させました。
【環境】
- Python-2.3.5 (Linux) → Python-2.4.4 (Linux)
- PIL-1.1.5 → PIL-1.1.6
- Zope-2.8.6-final (Linux) → Zope-2.9.7-final (Linux)
- Plone-2.1.3 → Plone-2.5.3-final
- ATPhoto-1-0-alpha1 → ATPhoto-1-0-alpha1 build 53
- COREBlog2-0.9b → COREBlog2-0.982b
新環境もろもろインストール
Plone-3.0.x系が本格稼働しそうな今日この頃。今頃かよ!ってツッコミが来そうなタイミングでの移行ですが、キニシナイw
Plone-2.1.x系 から Plone-2.5.x系 へのアップグレードは Plone-2.5.1へのアップグレード で試験的にやってOKだったので、ほぼその手順通りでいけるはずです。
で、新環境をインストールする際、必要なtar玉をかき集めてたら、Plone-2.5.3-UnifiedInstaller.tgz なるものを発見。(plone本家 の”Get Plone 2.5.3 for Linux”のリンク先のやつね) これでやってみようかな。
うーん、こりゃ楽ですわ。 このtar玉にPython やら Zope やら必要なものが全部入ってるし、install.sh で一発インスコできる始末。・・・普通ならそうなんですが、インストール先ディレクトリが気に入らなかったので install.sh を参照しつつ手動で prefix とか変えて作業しましたけどねorz
と言うわけで、この一式セットでごっそりとこんな感じでインストール。
----- zlib-1.2.3 ----- [root@ns1 packages]# tar zxvf zlib-1.2.3.tar.gz [root@ns1 zlib-1.2.3]# ./configure -s [root@ns1 zlib-1.2.3]# make test [root@ns1 zlib-1.2.3]# make install ----- Python-2.4.4 ----- [root@ns1 packages]# tar zxvf Python-2.4.4.tgz [root@ns1 Python-2.4.4]# ./configure --prefix=/opt/python-2.4.4 \ --with-readline --with-zlib [root@ns1 Python-2.4.4]# make [root@ns1 Python-2.4.4]# make install ----- ReportLab-2.0 ----- [root@ns1 packages]# tar zxvf ReportLab_2_0.tgz [root@ns1 reportlab_2_0]# mv reportlab \ /opt/python-2.4.4/lib/python2.4/site-packages/. ----- PyXML-0.8.4 ----- [root@ns1 packages]# tar zxvf PyXML-0.8.4.tar.gz [root@ns1 PyXML-0.8.4]# /opt/python-2.4.4/bin/python ./setup.py build [root@ns1 PyXML-0.8.4]# /opt/python-2.4.4/bin/python ./setup.py install ----- jpegsrc.v6b ----- [root@ns1 packages]# tar zxvf jpegsrc.v6b.tar.gz [root@ns1 jpeg-6b]# ./configure CFLAGS='-fPIC' [root@ns1 jpeg-6b]# make [root@ns1 jpeg-6b]# make install [root@ns1 jpeg-6b]# ranlib libjpeg.a [root@ns1 jpeg-6b]# cp libjpeg.a /usr/local/lib [root@ns1 jpeg-6b]# cp *.h /usr/local/include ----- PIL-1.1.6 ----- [root@ns1 packages]# tar zxvf Imaging-1.1.6.tar.gz [root@ns1 Imaging-1.1.6]# /opt/python-2.4.4/bin/python ./setup.py build_ext -i [root@ns1 Imaging-1.1.6]# /opt/python-2.4.4/bin/python ./selftest.py [root@ns1 Imaging-1.1.6]# /opt/python-2.4.4/bin/python ./setup.py install ----- ElementTree-1.2.6 ----- [root@ns1 packages]# tar zxvf elementtree-1.2.6-20050316.tar.gz [root@ns1 elementtree-1.2.6-20050316]# /opt/python-2.4.4/bin/python \ ./setup.py build [root@ns1 elementtree-1.2.6-20050316]# /opt/python-2.4.4/bin/python \ ./setup.py install ----- Zope-2.9.7-final ----- [root@ns1 packages]# tar zxvf Zope-2.9.7-final.tgz [root@ns1 Zope-2.9.7-final]# ./configure \ --with-python=/opt/python-2.4.4/bin/python \ --prefix=/usr/local/zope/Zope-2.9.7 [root@ns1 Zope-2.9.7-final]# make [root@ns1 Zope-2.9.7-final]# make install ----- make zopeinstance ----- [root@ns1 packages]# /usr/local/zope/Zope-2.9.7/bin/mkzopeinstance.py \ -d /var/zope/Plone-2.5.3 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: **** Password: Verify password: [root@ns1 packages]# ----- Plone-2.5.3-final ----- [root@ns1 packages]# tar zxvf Plone-2.5.3-final.tar.gz [root@ns1 packages]# mv ./Plone-2.5.3-final/* /var/zope/Plone-2.5.3/Products/. [root@ns1 packages]# cd /var/zope/Plone-2.5.3/Products [root@ns1 Products]# mv ./CacheFu/CacheSetup . [root@ns1 Products]# mv ./CacheFu/CMFSquidTool . [root@ns1 Products]# mv ./CacheFu/PageCacheManager . [root@ns1 Products]# mv ./CacheFu/PolicyHTTPCacheManager . ----- TextIndexNG3-3.1.14 ----- [root@ns1 packages]# tar zxvf TextIndexNG3-3.1.14.tar.gz [root@ns1 packages]# mv TextIndexNG3 /var/zope/Plone-2.5.3/Products/. [root@ns1 packages]# cd /var/zope/Plone-2.5.3/Products/TextIndexNG3/\ extension_modules [root@ns1 extension_modules]# cd /var/zope/Plone-2.5.3/Products/\ TextIndexNG3/extension_modules [root@ns1 extension_modules]# /opt/python-2.4.4/bin/python ./setup.py install
ちなみに、install.sh でインストールするとデフォルトで ZEO を使うの環境になるっぽいんですが、訳分からんのでこの辺はやってません。・・・というかそれ以前に ZEO ってなに?(;´Д`)
Python site-package追加
上記は必要最小限のインストールなので以下のモジュールを「/opt/python2.4.4/bin/python setup.py install
」でゴリゴリ追加インストール。
- pykf (pykf-0.3.4.tgz) COREBlog2 で使用。本家は相変わらず鯖脂肪状態なので探したらココにあった。
- JapaneseCodecs (JapaneseCodecs-1.4.11.tar.gz)
さらに、pykf が Zope 上で使えるように、allow_module()を行うプロダクトを作ってぶち込んでおきます。これをやっておかないとなに?そのモジュール?って怒られちゃうので。
各Productインストール
今まで使用している以下のProductを$[INSTANCE]/Products
に展開。大分新しくなってるものもありますな。
- ejSplitter-0.5.1 (ejSplitter-0.5.1.tar.gz)
- jaMailHost-0.4.4(jaMailHost-0.4.4.tgz)
- FileSystemStorage-2.5.4 (FileSystemStorage-2.5.4.tgz)
- ATPhoto-1.0alpha1 buld53 (svnより入手) ・・・をベースに独自に既存バグ修正したヲレSPヴァージョン.
- COREBlog2-0.982b (COREBlog2_0982b.tgz)
- ATAmazon-0.3(svn branches/for-plone2-5) (svnより入手) ・・・ Plone-2.5.x 対応のやつらしい
- CMFContentsPanels-2.4 (contentpanels-2_4.tgz)
- ATGoogleMaps-0.5.2-GPS-SP beta2 (コレの発展型ヴァージョン(開発中))
utf-8環境設定などして取りあえずまっさらZODBで起動
これは前回の Plone-2.5.1へのアップグレード を参照。zope.conf の設定とか、sitecustomize.py 設置とか。
んで、parmissionとかの設定をして、取りあえずデータなしで起動して問題等あるか確認。
[root@ns1 packages]# cd /var/zope
[root@ns1 zope]# chown -R hoge:hoge Plone-2.5.3
[root@ns1 zope]# cd Plone-2.5.3/bin
[root@ns1 bin]# ./zopectl start
一通りいじってみましたが、問題なさそうなのでいよいよ 2.1.x系の Data.fs ( FileSystemStorage で使ってるディレクトリ内すべてのデータも移行をお忘れなく)をぶち込んで再起動& Migrate しまくります。
Migrationとか
まぁこれも Plone-2.5.1にうpしたときと変わりませんな。以下のところをしらみつぶしに Migration しまくりますw
- プロダクトを追加・削除画面 にて再インストールしろとなってるものはすべて再インスコ。
- Zope管理インターフェース(ZMI) (ploneのトップね)で「!」マークが出てるところの
Migrate
タブに行ってMigrate。・・・と言っても、今回は「/portal_migration
」のところだけでしたな。 - 更にZMIの
/portal_catalog
→Advanced
に行き、「Clear and Rebuild」を押して、カタログを再構築(一応ね)。
これで Migration は完了。あとは customize した page_templateやらのマージを行い、アップグレード作業完了っと。
今回はUnicodeDecodeErrorとか文字化けとか出ずにすんなり行きました。暫く動かして event.log を見てもエラーっぽいログは吐き出されてないようです。(・∀・) Plone-2.5.1 で出てたエラーも出てないし。
javascriptが・・・
うーん。問題なく動いてるな~と思ってたんですが、 ATPhoto でちょっとおかしいところが出てきちゃいましたorz Plone-2.1.x系では動いていたjavascriptがなんかうまく動いてくれないときがあるんです 。・゚・(ノД`)・゚・。
で、その問題の切り分けをしてみると、どうも ZMIの /portal_javacript
で、各jsファイルの設定値である「Compression type」が関係していて、これを「safe」にするとおかしくなっちゃうようです。実際、ATPhotoに関連するjsファイルのCompression typeを「none」にしてみたところちゃんと動くようになりました。
なんだかよく分かりませんが取りあえず暫定として、「Debug/development mode」をONにして稼働させてます。
・・・つか英語翻訳出来ないとかなり泣ける・・・。safeにすると何がどうなってるのかさっぱり分からんorz