php.ini - 如何恢复 pdo.so?

php.ini - 如何恢复 pdo.so?

我最近安装了 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 中选择我需要的模块,问题就解决了。

相关内容