phpのライブラリが読み込めないエラーが出たので
phpでpdo_pgsqlとpgsqlのエラーがでる
php -vしようとしたらモジュールが読み込めないですよってwarningが出る。
php.iniでpgsqlを使うってなってるのにモジュールがないのでしょう。
% php -v
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20100525/pdo_pgsql.so' - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20100525/pdo_pgsql.so, 9): image not found in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20100525/pgsql.so' - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20100525/pgsql.so, 9): image not found in Unknown on line 0
PHP 5.4.45 (cli) (built: Apr 22 2016 21:36:17)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
昔はこういう時に「あっ…もう一度./configureか…」って思いがちだったけど
実はこの読み込めていないモジュールだけを追加できるのだと知ってからすごく幸せです。
phpizeで拡張モジュールをインストールする
ここ( https://secure.php.net/get/php-5.4.45.tar.gz/from/a/mirror )からハポン(japan)のソースをDLする
DLしたソースにcd
% cd ./Downloads/php-5.4.45/ext/pdo_pgsql
今のPHPの在り処を確かめておく
% whereis php
/usr/bin/php
確かめたら同じ場所にphpizeがあるので、phpizeする
% /usr/bin/phpize
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
先程たしかめた場所にあるphp-configを利用するように指定
% ./configure --with-pdo-pgsql --with-php-config=/usr/bin/php-config
(略)
% sudo make install
(略)
----------------------------------------------------------------------
Libraries have been installed in:
/Downloads/php-5.4.45/ext/pdo_pgsql/modules
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `DYLD_LIBRARY_PATH' environment variable
during execution
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Installing shared extensions: /usr/lib/php/extensions/no-debug-non-zts-20100525/
pgsqlも同様に、ソースのディレクトリに移動してphpize、
configure〜make installまでする
% /usr/bin/phpize
(略)
% ./configure --with-pgsql --with-php-config=/usr/bin/php-config
(略)
Installing shared extensions: /usr/lib/php/extensions/no-debug-non-zts-20100525/
無事にWarningが消える
% php -v
PHP 5.4.45 (cli) (built: Apr 22 2016 21:36:17)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies