Не удается установить PDO на CentOS

Я знаю, что есть несколько случаев этого вопроса во всем stackoverflow, но я не нахожу решения.

я запускаю CentOS с Apache и PHP 5.3

A .PHP-скрипт дает мне эту ошибку:

Fatal error: Class 'PDO' not found in ...

Я побежал phpinfo(); и единственное место " pdo "существует на странице в "Configure Command"'--disable-pdo' линии.

Я попытался #yum install php-pdo но пакетов не существует.

Я также попытался #pecl install pdo и я получаю эти ошибки в конце:

/root/tmp/pear/PDO/pdo_dbh.c: In function 'pdo_stmt_instantiate':
/root/tmp/pear/PDO/pdo_dbh.c:410: error: 'zval' has no member named 'refcount'
/root/tmp/pear/PDO/pdo_dbh.c:411: error: 'zval' has no member named 'is_ref'
/root/tmp/pear/PDO/pdo_dbh.c: In function 'pdo_stmt_construct':
/root/tmp/pear/PDO/pdo_dbh.c:435: error: 'zend_fcall_info' has no member named 'object_pp'
/root/tmp/pear/PDO/pdo_dbh.c:458: error: 'zend_fcall_info_cache' has no member named 'object_pp'
/root/tmp/pear/PDO/pdo_dbh.c: In function 'zim_PDO_setAttribute':
/root/tmp/pear/PDO/pdo_dbh.c:752: error: 'zval' has no member named 'refcount'
/root/tmp/pear/PDO/pdo_dbh.c: In function 'zim_PDO_getAttribute':
/root/tmp/pear/PDO/pdo_dbh.c:818: error: 'zval' has no member named 'refcount'
/root/tmp/pear/PDO/pdo_dbh.c: In function 'pdo_hash_methods':
/root/tmp/pear/PDO/pdo_dbh.c:1122: warning: assignment discards qualifiers from pointer target type
/root/tmp/pear/PDO/pdo_dbh.c:1126: warning: assignment discards qualifiers from pointer target type
make: *** [pdo_dbh.lo] Error 1
ERROR: `make' failed

затем на php.net doc в основном говорит, что пакет поставляется стандартным в PHP-установках с PHP 5.1.

я добавил строку extension=pdo.so на php.ini и перезапустить Apache и проблема сохраняется. Есть предложения?

3 ответов


У меня тоже была аналогичная проблема. Я использую codeigniter и получаю "pdo_mysql.так что не нашел" ошибку и попробовал все исправить. Я искал через первые 10 страниц результатов поиска Google для нескольких запросов. Я нашел тонны людей с теми же проблемами, но по какой-то причине ни у одного из них не было ответа/исправления. Через все это чтение я узнал, что"PDO и драйвер PDO_SQLITE включены по умолчанию с PHP 5.1.0." Это заставило меня задуматься, - Возможно, мне следует ... --1-->удалить расширение=pdo_mysql.так и pdo.Итак, строки из моего php.ini!"Я подумал, что php пытается загрузить расширение, которого больше нет, так как он встроен сейчас. Конечно, решил все мои ошибки php беспорядок.

PHP 5.4.31 (cli) (built: Aug 19 2014 10:38:48)
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
Версия сервера: Apache / 2.2.27 (Unix)
Сервер построен: Aug 19 2014 10:33:30
Cpanel:: легко:: Apache v3.26.5 rev9999


Я уверен, что вам не хватает пакета PHP_PDO. Попробуйте найти пакет PDO, выполнив команду ниже:

 # rpm -qa| grep "pdo"

шахта показывает php53u-pdo-5.3.26-1.МСС.el5

Если вы используете php 5.3, попробуйте

# yum install php53u-pdo

Я не знаю, слишком ли поздно для ответа, но я опубликую, если кто-то найдет эту ошибку.

во-первых, я установил php-pdo в Centos 7 с yum. Я просмотрел phpinfo, и он показывает расширение pdo, но не pdo-mysql.

Итак, если вы затем установите php-mysql (yum install php-mysql), он автоматически установит расширение pdo-mysql.