我最近安装了内存缓存。一切顺利,直到我重新启动系统。我不知道出了什么问题,但重启后,一些文件丢失了。主要问题是我缺少 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 一起工作吗?
我的问题是我在 cPanel 服务器上手动安装了 PDO。为了解决这个问题,我只是在 WHM 中选择了我需要的模块,问题就解决了。