Обновление 2 (проблема решена):
Проблема была неверным параметром во время компиляции. Смотрите мой ответ для деталей.
Обновить:
Результат следующей команды, вероятно, проливает свет на проблему!
# php-cgi -m
[PHP Modules]
...
PDO
pdo_sqlite
...
Здесь нет расширения pdo_mysql ... почему ?? Php.ini - это то же самое, что используется для PHP в CLI, который загружает расширение pdo_mysql (через extension_dir)
Оригинальный вопрос:
Скомпилированный PHP 5.5.1 на Ubuntu 12.04
# 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, расширение MySQL PDO не загружается
<?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
Как я могу запустить PHP в FastCGI для распознавания и загрузки расширения MySQL PDO?