ソースコンパイルしたPHPに後からpdo_pgsqlをインストールする
PHPからPostgresqlに繋ぎたいので、ソースコンパイルしたPHP環境(今回の例では5.4.7)に、pdo_pgsqlをインストールして下さいと頼まれた。 PHP環境の構築や拡張モジュールなどには正直なところ全く詳しくなかったので、 どうやるのか、あまりに見当つかないものの、調べてやってみることに。
と思ってしばらく探したら、以下の記事がほとんどドンピシャ大当たり。ありがとうございます。
PHPをコンパイルした環境に、後からpgsql.soなどのモジュールを追加する方法 - Web系エンジニアbcoのメモ帳
以下、自分の環境でやった手順をメモる。
前提となるphp環境について
- php 5.4.7
- phpのインストール先:/opt/php
- /usr/local/bin/php は、/opt/php/bin/php へのSymlinkとしている
- コンパイルしたソースの置き場所:/usr/local/src/php-5.4.7
作業手順
現環境のPHPをコンパイルしたソースの置き場所にある、extentionディレクトリへ行く
# cd /usr/local/src/php-5.4.7/ext/pdo_pgsql
phpのパス確認
拡張モジュールは今使っているphpのパス上にあるツールを使って生成するため、phpのパス(インストールパス)を確認する。
# ls -l /usr/local/bin/php lrwxrwxrwx 1 root root 16 5月 13 16:21 2014 /usr/local/bin/php -> /opt/php/bin/php
phpizeでconfigureファイルを作成
phpizeとは?
拡張モジュールをビルドする低レベルなビルドツール。autoconfやautomake m4等のビルドツールが別途必要になる。これを使用することにより、PHPをソースから再コンパイルすることなく拡張モジュールをビルドすることができる。
引用:phpizeとは - PHP用語 Weblio辞書
インストールパス上のphpizeを実行すると、configure実行ファイルが出来る。
# /opt/php/bin/phpize
configureを実行
ここでは、--with-pdo-pgsql を入れることと、--with-php-config で、現在のphpパス上にあるphp-config実行ファイルを指定する必要がある
# ./configure --with-pdo-pgsql --with-php-config=/opt/php/bin/php-config
make実行
# make # make test # make install Installing shared extensions: /opt/php/lib/php/extensions/no-debug-non-zts-20100525/
インストール完了。これで、拡張ディレクトリにpdo_pgsql.soファイルが出来る。
php.iniファイルを編集
/etc/php.ini に、; extensionsのディレクトリと対象のモジュールの名前を記述する。
; 拡張モジュールの置き場 extension_dir = /opt/php/lib/php/extensions/no-debug-non-zts-20100525/ ; 利用するextension extension = pdo_pgsql.so
apacheを再起動
# /etc/init.d/httpd restart