Я использую nginx с php5-fpm, и по какой-то причине мой php5-fpm говорил, что «PDO модуля» уже загружен в «Неизвестная строка 0», и, честно говоря, я понятия не имею, почему. Расширение не загружается внутри php.ini, но оно загружается из «–with-config-file-scan-dir», который загружает pdo.ini и, конечно же, загружает pdo.so
моя php config выглядит следующим образом
'./configure' '--prefix=/opt/php5' '--with-config-file-path=/etc/php5' '--with-config-file-scan-dir=/etc/php5/conf.d' '--with-curl' '--with-pear' '--with-gd' '--with-jpeg-dir' '--with-png-dir' '--with-zlib' '--with-xpm-dir' '--with-freetype-dir' '--with-t1lib' '--with-mcrypt' '--with-mhash' '--with-mysql' '--with-mysqli' '--with-pdo-mysql' '--with-openssl' '--with-xmlrpc' '--with-xsl' '--with-bz2' '--with-gettext' '--with-readline' '--with-fpm-user=www-data' '--with-fpm-group=www-data' '--disable-debug' '--enable-fpm' '--enable-cli' '--enable-inline-optimization' '--enable-exif' '--enable-wddx' '--enable-zip' '--enable-bcmath' '--enable-calendar' '--enable-ftp' '--enable-mbstring' '--enable-soap' '--enable-sockets' '--enable-sqlite-utf8' '--enable-shmop' '--enable-dba' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg'
Я не могу найти решение, которое работает для меня.
Я проверил свой phpinfo()
чтобы узнать, было ли загружено расширение PDO и, похоже, оно загружено (даже когда я удаляю загрузку pdo.so из pdo.ini), но когда я пытаюсь использовать PDO, я получаю
Неустранимая ошибка: класс PDO не найден
Я также suhosin.so
, что я также загружаю suhosin.so
, apc.so
и imagick.so
без проблем.
Список установленных пакетов (php и mysql), надеюсь, это может предоставить дополнительную информацию, чтобы помочь мне в этом. Также стоит отметить, что моя конфигурация работает в течение последних 6 месяцев без заминки. Я установил его с помощью установочного скрипта VladGH ( https://github.com/vladgh/VladGh.com-LEMP ), поскольку это только моя среда для разработчиков. Если нужно, я более чем готов сделать полную переустановку моего сервера, но я бы предпочел просто понять это.
dpkg --get-selections | grep php libapache2-mod-php5 install php5-cgi install php5-cli install php5-common install php5-mysql install php5-suhosin install dpkg --get-selections | grep mysql courier-authlib-mysql install libdbd-mysql-perl install libmysql++3 deinstall libmysqlclient16 install mysql-client-5.1 install mysql-client-core-5.1 install mysql-common install mysql-server install mysql-server-5.1 install mysql-server-core-5.1 install php5-mysql install postfix-mysql install
Попробовав многочисленные решения о том, как исправить эту проблему, я только что решил сделать полную переустановку на своей машине.
Из PHP 5.1 PDO является частью pdo.so
PHP Core, поэтому pdo.so
загружается, поскольку расширение становится излишним.
В моем случае это помогло: apt-get install –reinstall php5-mysql