さくらVPSでSQLite2+MDB2の壁を乗り越えず素直にSQLite3+pdoに移行

meikyu新しいWEBサービスを本番環境にアップしてて、当然のようにMDB2を使ったら失敗した所から迷宮組曲入りした記録です。

この記事をポストするにあたり、どこにスポットを当てて記事にするか迷いましたが、微妙に小さなトラブルの連続で、何ともつかみ所のない記事になると思われます。

スポンサーリンク

 

ローカル環境が古いのだ

私は手軽なSQLiteが好きで、ずっとSQLiteとPEARのMDB2で開発してきた。規模的にちょうど良い。
どこのレンサバでも問題なく動く組み合わせなので、何の不自由もなく使ってきたんだけど、VPSにアップしたら動かなかった。
PHPをアップしてブラウザで確認すると、500エラー。
詳しいエラー内容を見るためにapacheのログを見る。
ちなみに、さくらVPSのCendOS6のログのデフォはココにある。

/var/log/httpd/example.com-error_log

中身を見ると、エラーの詳細が分かった。PEARのMDB2の読み込みに失敗してる。

PHP Warning: require_once(MDB2.php): failed to open stream: No such file or directory in /var/www/html/setting.php
PHP Fatal error: require_once(): Failed opening required 'MDB2.php'

おかしい。PHPと一緒にPEARもインストールしてるハズ。と、ここから原因究明の旅に。

 

つかMDB2が既に古いのね

3時間程リサーチしてみると、今日日はSQLite3が当たり前だし、MDB2はSQLite2までしか対応してないし、SQLite3はPHPと一緒にインストールされてる事が分かる。選択肢は2つ。VPSに過去の環境であるSQLite2+MDB2を入れるか、ソースをpdo仕様に直すか。

しかし今回乗り切ったとしても、どのみちSQLite3+pdoに移行するのは時間の問題。というわけでソースを直すことにした。

 

思ったよりも移行は楽

pdoの使い勝手はほとんどMDB2と同じで、細かい部分は異なるのだろうが、思ったよりも簡単に移行完了できた。
こんな事なら早くやっておけばのパターンです。
でも今回のようにトラブルにならないと、つい使い続けてしまいますね。

こういう細かいトラブルで経験値を上げていけると考えると、VPSは厄介だけど面白い。レンサバの環境って恵まれていたんだなーと思うと同時に、WEBデザイナーのスキルとは別次元の知識が必要になり、その奥深さにゲンナリします。

新しいWEBサービスは、数日中にリリースしたい!
トリックアート画像を作るサービスだよ!

 

 

スポンサーリンク