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のほうが利便性は向上するようですね…