Я недавно установил memcached. Все работало нормально, пока я не перезапустил систему. Понятия не имею, что пошло не так, но после перезапуска некоторые файлы отсутствовали. Основная проблема заключается в том, что у меня отсутствуют файлы pdo.so и pdo_mysql.so.
Я попробовал последовать совету Вот. Это привело меня к следующей ошибке:
Warning: dl(): Unable to load dynamic library
'/usr/local/lib/php/extensions/no-debug-non-zts-20090626/pdo.so' -
/usr/local/lib/php/extensions/no-debug-non-zts-20090626/pdo.so:
cannot open shared object file:
No such file or directory in /root/tmp/moduleEnabled.php on line 6
Я не могу бежать:
pecl install PDO
... потому что это заканчивается огромной ошибкой, которая, я думаю, является результатом фактической установки PDO, но файлы отсутствуют или удалены.
Я побежал:
find / -name pdo.so
И он вернулся ни с чем. Я выполнил ту же команду на другом сервере, и она вернула:
/usr/local/lib/php/extensions/no-debug-non-zts-20090626/pdo.so
Однако я также читал следующее: «Не используйте это, поскольку PDO был перемещен в ядро (источник php), поэтому это расширение pecl мертво». ... Вот, что наводит меня на мысль, что с версией PHP 5.3.22 мне больше не нужно устанавливать PECL. Если это так, то почему расширение не работает, когда я включаю его в php.ini?
PhpInfo говорит следующее:
Configure Command './configure' '--disable-fileinfo' '**--disable-pdo**'
'--enable-bcmath' '--enable-calendar' '--enable-ftp' '--enable-gd-native-ttf'
'--enable-intl' '--enable-libxml' '--enable-magic-quotes' '--enable-mbstring'
'--enable-sockets' '--prefix=/usr' '--with-curl=/opt/curlssl/'
'--with-freetype-dir=/usr' '--with-gd' '--with-icu-dir=/usr'
'--with-imap=/opt/php_with_imap_client/' '--with-imap-ssl=/usr'
'--with-jpeg-dir=/usr' '--with-kerberos' '--with-libdir=lib64'
'--with-libexpat-dir=/usr' '--with-libxml-dir=/opt/xml2/'
'--with-mcrypt=/opt/libmcrypt/' '--with-mysql=/usr'
'--with-mysql-sock=/var/lib/mysql/mysql.sock' '--with-openssl=/usr'
'--with-openssl-dir=/usr' '--with-pcre-regex=/opt/pcre' '--with-pic'
'--with-png-dir=/usr' '--with-xmlrpc' '--with-xpm-dir=/usr' '--with-zlib'
'--with-zlib-dir=/usr'
Очевидно, PDO все еще отключен. Может быть, мне нужно перекомпилировать PHP, чтобы включить его? Как я могу это сделать?
Исходя из вышесказанного, может ли кто-нибудь посоветовать мне, как заставить PDO работать с PHP 5.3.22 на моем Centos Box?
Моя проблема заключалась в том, что я вручную установил PDO на сервер cPanel. Чтобы решить эту проблему, я просто выбрал нужные мне модули в WHM, и проблема была устранена.