我最近安装了 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 与我的 Centos Box 上的 PHP 5.3.22 一起工作吗?
答案1
我的问题是,我在 cPanel 服务器上手动安装了 PDO。为了解决这个问题,我只需在 WHM 中选择我需要的模块,问题就解决了。