PHPにハマる

一昨日の夜からサーバいじり。

自分の仕事じゃないと思いつつも、まぁ、息抜きにはいいかな、と。

それでですね、PHPにハマりました。。。

環境的には、

Apache 2系
PHP 5.2.4
postgreSQL 8系

ってな感じ。

で、postgreSQLに接続する時に、PDO(PHP Data Objects)を使用しているようで。

元々の環境を壊す事なくなんとか導入出来ないもんかと色々調べました。

結果、

# pecl install pdo_pgsql

で出来るようです。

コマンド実行後、php.ini に、

extension=pdo_pgsql.so

を追加して、Apacheを再起動。


あれ???
Apache動かないんですが・・・


/var/log/messages に、なんかエラー出てた。

PHP Fatal error: PDO: driver pgsql requires PDO API version 20060409; this is PDO version 20060511 in Unknown on line 0

良く分からんが、色々調べてたところ、
/usr/local/include/php/ext/pdo/php_pdo_driver.h
が古いのがダメらしい。

/usr/local/src/php-5.2.4/ext/pdo/php_pdo_driver.h
を、
/usr/local/include/php/ext/pdo/php_pdo_driver.h
にコピーして、リビルド。

# pecl install pdo_pgsql

Ignoring installed package pecl/pdo_pgsql
Nothing to install

おぉ、抜かなきゃダメなんだな。

# pecl uninstall pdo_pgsql

Unable to remove "extension=pdo_pgsql.so" from php.ini
uninstall ok: channel://pecl.php.net/PDO_PGSQL-1.0.2

# pecl install pdo_pgsql

で、無事インスコ完了です。


今度はうまくいくだろうと、Apache を再起動。

/var/log/messages を確認。
よし、エラー出てない。

んでもって、プロセス確認すると、

# ps auxwww | grep httpd
root 15857 0.0 0.0 5932 728 pts/1 R+ 20:40 0:00 grep httpd

あれ?
動いてない。

Apacheのエラーログを確認。

/usr/local/lib/php/extensions/pdo_pgsql.so: undefined symbol: php_pdo_declare_long_constant

別のエラーが。。。

日本語の情報が全く無いので、英語のサイトを見つつ四苦八苦してる状態です。。。

解決したらまた書きますね。

それでわ。