ブログ検索

メタ情報
RSS

このページに表示されているエントリー

XOOPS
ブログもそうだけど、いわゆるCMSである。
簡単にいえば、ほーむぺーじのつーるをつかってほーむぺーじをかんりするシステムであろう。

んで、こないだからCentOSとかPostfixとか言ってるのは、とあるサーバの入れ替えをやってるからなんだけど、罠があった。MySQLとXOOPSが動いていた。この移行に躓く。

XOOPS本体ははPHPで書かれてるからとりあえずはいい。PHPのバージョン違いによる問題は、設定で吸収できる範疇だった。とりあえずMySQLも普通にやればいいかと考え、データベースのバックアップを取ってリストアを試みるもSQLエラーが出る。

内容は「キーの重複」のようなことだったのでバックアップファイルのSQL文を眺めてみる。テーブル定義ではキーが3フィールドに設定されているのを確認した。そのテーブルへのINSERT文を追いかけてみると、そのうちひとつのフィールドについて重複した行がすぐに見つかった。なんだかIPアドレスっぽいのが収録されているんで、そりゃ重複するわな。つうか、いったいこのデータはどうやって作ったんだよ・・・。エラーが出て当たり前だ。例えばMySQL的にキーを無視するような方法があるとして、それをやってしまう行儀の悪いXOOPSモジュールならばこういうこともあろうか。いや、それは適当すぎるか。

MySQLのバージョンは旧サーバ(Ver3系)→新サーバ(Ver5系)ではあるが、見たところ標準的なCREATE TABLE文とINSERT文だし、出るエラーも当然なものなので特に問題はないような。試しにキーの定義を除いて実行してみるも、別のところでエラーがでた。バックアップ全体で35MBもあるSQLの塊だ、ちょっと手がつけられない。

あんまし時間ないんで詳しい調査はまだこれから。旧サーバでインストール初期状態のXOOPSを用意して、同じ手法を用いて新サーバへの移行テストもやってみたが、これはうまくいってしまった。やはりテーブル定義と矛盾したデータが蓄積されていることが問題か・・・

どうしよう。

CentOSのつづき

こちらを参考にさせていただいたので勝手にリンク。
Ponkotsu.net Postfix

そのサイトではSSLを使っているけど今回は使わないのでSSLのオプションは除いた。証明書がないと送受信時に警告を出すメールソフトがあったようななかったような記憶が。しかしアカウント情報が平文で流れているのも気持ち悪い。今までは垂れ流しだったわけだが、だんだん意識も変わってくるものだ。安い最低限の証明書でも取得しましょうかね。

そんなわけでサブミッションポートは動作したのだった。よかった。

CentOSとは数あるLinuxディストリビューションのなかでもメジャーOSであるRedHatEnterpriseLinux(RHEL)互換のOSだ。商用であるRHELに対してCentOSは無料であり、とてもありがたい存在だ。ほぼ同じものなのになぜ商用と無料があるかというと、オープンソースというものの一つの側面であろう。オープンソースといっても多種多様なスタンスをとるものなので、むしろ対義的な存在となるプロプライエタリ・ソフトウェアを読んだりしたほうが早いかもしれない。

背景はともかくRHELの新版が出ればCentOSにも出る。5のリリースからは数ヶ月出遅れたけど、先日とある常時接続サーバにインストールしてみる機会があったので、私がいつも使うようなシステムを構築してみた。

わりとすぐにメールサーバの問題に直面した。メールソフトを選ばない、設定変更が要らないことを理由に、個人的にいまだPOP before SMTPを採用し続けているのだが、必要なソフトであるDRACのコンパイルが通らない。コンパイルエラーの内容からしてBerkeleyDB(DB3? compat-db?)あたりに原因がありそうなことは分かった。やはり新しい環境はいろいろ起こる。

こういうときは分かる範疇であらゆることを試し続けドツボにハマっていくのが常だが、ここで試行錯誤をしておくと後で突然分かることもある。実にアホな勘違いだったということも多い。それゆえある程度のところで潔く放置し、今回は異なるアプローチをとってみる。

いつもお手本としているCentOSで自宅サーバー構築を見れば(ここで解説されているパターンに関しては)たいがいの設定はできるだろう。postfix+dovcotを採用されているようなので、同じように構築してみると、すんなりできた。使ってみるとSMTP-AUTHのほうがやはり確実かもしれんね。

というわけで最低限のメール環境ができた。最近あちこちのプロバイダでポート25を制限する迷惑メール対策が行われているので、後ほどサブミッションポートの対応もしてみたいと思う。これにはSMTP-AUTHの対応が不可欠となるらしいので、せっかく対応したついでにやってみるというわけだ。