INFOINFO
MAILMAIL

2010年 6月 5日(土)

* Ubuntu 10.04 LTSサーバ: 導入メモ(Web関連)    [  Movable Type | Linux  ]

 んで、外向けのメインサービスになるWeb関連はいろいろと細かい部分でてこずったねぇ(^^;)。

 まず従来のVine 4.2サーバがEUC-JPベースだったのが、今回のUbuntuサーバでUTF-8ベースに置き換わったというのが目に見える大きな変更点だったわけで、文字コード部分に関しては事前に入念にチェックして対策してたんだけど、それ以外のところでいろいろ細かくいじったところがあったので、そのあたりについてメモを残しておこう。

 で、ブログシステムとして利用しているMT+自作システムに関しては、プログラム部分は個別に対応。といっても、スクリプト的に文字コードに依存している部分はほとんどなくて、単純に日本語を含む部分をnkf変換しただけのものがほとんど。
 MT関連はオフィシャルパッケージからインストールし直して、こちらも文字コードだけ変換。ただ、テンプレートの文字変換を忘れてて、コメント部分で文字化けを出したりしたけども(^^;)。

 データに関しては、PostgreSQLのダンプデータ(pg_dumpall -c)をnkfで文字変換したあと、制御コード部分(SET/CREATE)をsedで更新。それから、アカウント名が変わっているのでその部分も一緒に変更。
 かなり力仕事だけど(^^;)、変更したダンプデータをそのまま食わせて(psql -f)問題なく動作しているので良しということに。

 ただし、MTに関してはベースがMT3なので、その部分で問題がいくつか。とくに難儀だったのがextlib周り。MT3では想定されているのがperl5.8だったはずなんだけど、現時点ではすでにperl5.10になっているわけ。で、それに関連して必要となるモジュール類も新しくなっているんだけど、extlibにあるのは旧来の古いままなので、整合性が取れなくなっているものが出てると。
 具体的には、Crypt::DSAのバージョンが高すぎて、extlibのMath::BigIntモジュールで扱えなくなっていたり、Localeモジュールも古くなっててエラー(Name "Locale::Maketext::Lexicon" used only once: possible typo at ~)を吐き出しやがると。
 結局、前者はMathが、後者はLocaleとI18Nの両方が不要(どちらもperl5.10で標準的にサポートされている)ということが判明したので、それぞれのディレクトリごと削除した、と。
 ただ、extlibに関しては他のモジュールでも同じ状況になっている可能性は高いんだけど、とりあえずエラーが出てなくて動作しているので、これ以外は手をつけずに運用することにする、と。これに関しては、ベースになってるMTのバージョンを最新版(MT5)にするのが一番手っ取り早くて確実ではあるんだけどね…。

 それから自前のブログへの投稿に関してはXML-RPC APIを使ったフォームを使ってるんで、新システムでもこれを利用するためにPEARでXML_RPCモジュールをインストール。これ、一応動作はしてるんだけど、ログを見ると“PHP Deprecated: Function split() is deprecated in /usr/share/php/XML/RPC.php on line 1554”なんていうメッセージを吐いてる。要するにモジュール内で推奨されていない関数(split)を使ってるぞ、と。
 よくよく調べてみたらXML_RPCモジュールはすでにメンテは中止されていて、新たにXML_RPC2に移行しなさいってことらしい(^^;)。そんなわけで、PEARでXML_RPC2をインストールして、ソースを新しいAPIに対応するように変更。まぁ、新しいAPIの方が簡単で視認性は高いので、この際に切り替えられたのは良かったかも。

 さらに、自前のフォトアルバムのシステムではイメージのサムネイルの作成にGDを使っていたんだけど、Webalizerのビルド環境を構築するとGD関連のモジュール(php5-gd)がremoveされちゃうことが判明。まぁ、Webalizerをビルドするときだけ外して、その後は戻すっていう手もあるんだけど、それもなんだか気にくわないので、思い切ってGDからImageMagickに切り替えることに。
 ソースの該当部分はわずかだったので、それを修正してImageMagick対応に。ただ、ImageMagickで作成したサムネイルのサイズがGDで作ったものよりもかなりでかくなるのが難点だけどね(^^;)。まぁ、それでもいちいちモジュールのinstall/removeを繰り返すよりはマシなので、それは目を瞑ることにしたと。


 Web周りは直接外に見える部分なので、事前に良くチェックしたつもりだったんだけど、やっぱり実際に使ってみないとわからない問題が多かったし、細かな部分に対処するのには結構苦労したなぁ。もっとも、久しぶりにいろいろ調査したりいじったりして、なかなか楽しかったのも事実だけどね(笑)。

Posted by “Lupin” on 2010/06/05 16:54:41
コメント
コメントはありません。
●コメント投稿
このエントリーにはコメント投稿できません。