[CakePHP] 今更PHP4.3.2+PostgreSQL7.3で CakePHP1.2.5をどうしても動かしたい!(1日目)

  • このエントリーをはてなブックマークに追加

仕事でやることになるかもしれない某サイトリニューアルの商品カタログのシステム開発でCakePHPを使おうとしたら、四苦八苦(><;

あらすじ

なんでもサーバが2005年稼動開始からOSアップグレードしてない、未だにRedHat ES3を使ってるやつだとか。中規模案件なのでCakePHPでさくっと作りたいところですが、いかんせんアプリのバージョンが。。。
PHP 4.3.2、MySQL 3.23、PostgreSQL 7.3.15。
MySQLはすでに論外なので、PHP+PostgreSQLで挑戦することに。そして、とりあえず開発環境が作れるのかどうか、検証するために実際にサーバーを用意してみました。

環境構築

PostgreSQLの旧版が入手できそうにないので、OSごと取って来ることに。RHES3に似たものとしてCentOS3.9を選択。VirtualPC上にインスコしました。意外とあっさり。
OSインストール後に各種アップデートとPostgreSQLをインスコ。yumで入れました。

# yum update
# yum install rh-postgresql rh-postgresql-server

なんかrhって付けないといけないようです。pg_hda.confとpostgresql.confをいじって外部接続可能にした後、pgAdminで接続して、新規データベースを構築。
あとはApacheの設定を適当にやっておきました。

CakePHPを配置

Apacheの設定を適当にしたのち、CakePHP1.2.5を取ってきてドキュメントルートに展開しました。database.confの作成は普通に。tmpディレクトリのパーミッション変更。core.phpの各種設定。ここまではいつもどおりです。ファイルの編集はviだとたるいのでWinSCP使ってWindowsのエディタで直接編集ヽ(´ー`)ノ

謎エラー

とりあえず、Cakeのルートに直接アクセスしてみました。そしたらとんでもないことに。。。

Warning: fread(): 18 is not a valid stream resource in /path/to/public_html/cake/libs/file.php on line 183
Warning: fclose(): 18 is not a valid stream resource in /path/to/public_html/cake/libs/file.php on line 282

(´・ω・`) なんか上記エラーがたくさん出るんですが。。。とりあえず、なんのファイルでつまずいてるのかダンプして調べてみました。どうやらキャッシュディレクトリの中にあるcake_core_core_pathsあたりのようです。さて、どうしよう。

ポクポク・・・・・・チーン。そうだ、キャッシュまわりかもしれない!
てなわけでキャッシュを無効化。core.phpの該当部分のコメントアウトを外します。

Configure::write('Cache.disable', true);

ビンゴ!なんとか治まりました。トップページが正常に表示されています。でもキャッシュ使えないのは残念なことこの上ない。

PostgreSQL 7.4の壁

この勢いで行ってしまえるかとおもいきや、大きな壁に立ちはだかりました。
bakeを実施してみたところ、「INFORMATION_SCHEMAなんて名前空間ねえよ!」って警告が現れ、うまく焼けません。調べたところによるとINFORMATION_SCHEMAはバージョン7.4以降じゃないと使えないそうです。てゆうか、CakePHPの動作条件ってPostgreSQL 7以降じゃなかったのか。。。
代替法が無くは無いのでdbo_postgres.phpの該当部分を頑張って試行錯誤しながら修正なう。

今日は帰る。

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。




コメントを残す