FreeBSD 4.2 なんて言う、レガシーな OS で開発を行うことになった。
一応、PHP は 4.4.2 なんで、合格なんだが、PostgreSQL が 7.0.3 と、とんでもなくレガシー。
いつも通り phpPgAdmin を設置しようとしたが、以下の修正を行う必要があった。
SOCKET 接続の対応
XREA などでも経験があったので、一応対応方法はわかっていた。
pg_connect(pg_pconnect) を行う場合に、host や port を指定しないようにする。
phpPgAdmin/libraries/adodb/drivers/adodb-postgres64.inc.php
function _connect($str,$user='',$pwd='',$db='',$ctype=0) { if (!function_exists('pg_pconnect')) return null; $this->_errorMsg = false; + $str = ''; + if ($user || $pwd || $db) { $user = adodb_addslashes($user); $pwd = adodb_addslashes($pwd); if (strlen($db) == 0) $db = 'template1'; $db = adodb_addslashes($db); if ($str) {
SQL の修正
このサーバーでは、LIKE 演算子の ESCAPE 句でエラーとなった。
他の環境では必要ないかもしれない。
LIKE ‘pg@_%’ ESCAPE ‘@’
を
LIKE ‘pg_\%’
と修正する。
修正するファイルは以下の通り。
phpPgAdmin/libraries/adodb/drivers/adodb-postgres64.inc.php
phpPgAdmin/classes/database/Postgres.php
phpPgAdmin/classes/database/Postgres*.php
設定の変更
phpPgAdmin/conf/config.inc.php の以下を環境に合わせて修正。
$conf[‘servers’][0][‘pg_dump_path’]
$conf[‘servers’][0][‘pg_dumpall_path’]
多少、PHP のエラーメッセージが表示されるものの、一応実用になった。
しかし、Linux レンタルサーバーの進歩に比べると、FreeBSD レンタルサーバーは、残念な状況が多い。
なんとかならないモンですかねぇ。
パッケージ追加可能なVPSならまだやりやすいですが
初めからサーバ指定じゃその環境で対応するしかないですしね…
あ、VPSでもcvsupなどでports最新にするのが他に負荷がかかるため
禁止されてることが多くportsエラーの嵐で結局ソースから
入れるハメになったりやっぱり面倒なことは多いかもですね。
やっぱり資本の絡むOSのほうが利便性は向上するようですね…