アップデート2(問題解決):
問題はコンパイル中に不正なパラメータでした。詳細は私の答えを見てください。
更新:
次のコマンドの結果は、この問題に多少の影響を与えるでしょう。
# php-cgi -m
[PHP Modules]
...
PDO
pdo_sqlite
...
ここにpdo_mysql拡張子はありません...なぜですか? php.iniは、(extension_dirを介して)pdo_mysql拡張をロードするCLIでPHPに使用されるものと同じです。
元の質問:
Ubuntu 12.04でPHP 5.5.1をコンパイルした
# php -v
PHP 5.5.1 (cli) (built: Aug 22 2013 02:57:03)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
PDO MySQLエクステンションがCLIにロードされます。
# php --ri pdo_mysql
pdo_mysql
PDO Driver for MySQL => enabled
Client API version => mysqlnd 5.0.11-dev - 20120503 - $Id: 40933630edef551dfaca71298a83fad8d03d62d4 $
Directive => Local Value => Master Value
pdo_mysql.default_socket => /tmp/mysql.sock => /tmp/mysql.sock
CGI / FastCGIを使用してページにアクセスすると、PDO MySQL拡張機能がロードされません
<?php phpinfo(); ?>
PDO
PDO support enabled
PDO drivers sqlite
どちらの場合も、同じextension_dirファイルとphp.iniファイルが使用されています。
php.ini path: /usr/local/lib/php.ini
extension_dir: /usr/local/lib/php/extensions/no-debug-non-zts-20121212
extension_dirの内容
#ls /usr/local/lib/php/extensions/no-debug-non-zts-20121212
mcrypt.so opcache.a opcache.so pdo.so pdo_mysql.so
FastCGIでPHPを実行してPDO MySQL拡張機能を認識してロードする方法を教えてください。