Ubuntu 15.04之后的Zend PDO问题


Zend PDO issue after Ubuntu 15.04

我在Ubuntu上安装了LAMP服务器。在我升级到Ubuntu 15.04之前,许多Magento和MediaWiki安装都运行良好。

升级后,尝试加载本地主机提供的一个页面会引发错误The PDO extension is required for this adapter but the extension is not loaded

我键入了php -m,看到PDOpdo_mysql都已加载。我的php版本是5.6.4。所有安装都不使用单独的php.ini文件。我试着添加

extension=pdo.so
extension=pdo_mysql.so

到/etc/php5/apache2/php.ini,但这并没有影响我的情况。我还验证了php5-mysql的最新版本是否已安装。

其他人看到这个问题了吗?它是针对Ubuntu升级的,还是我只是在某个地方缺少了配置设置?

编辑:php信息

在阅读了Lea下面的答案后,我已经到了php -i | grep -i pdo产生输出的地步:

/etc/php5/cli/conf.d/10-pdo.ini,
/etc/php5/cli/conf.d/20-pdo_mysql.ini,
PDO
PDO support => enabled
PDO drivers => mysql
pdo_mysql
PDO Driver for MySQL => enabled
pdo_mysql.default_socket => /var/run/mysqld/mysqld.sock =>     /var/run/mysqld/mysqld.sock

测试脚本也成功运行。

我知道你已经完成了所有这些步骤。然而按照本指南循序渐进。有时我们会错过一小步。这对我很有用。我刚刚在一台使用Ubuntu 15.04 的虚拟机上测试了它

安装

apt-get -y update
add-apt-repository ppa:ondrej/php5-5.6
apt-get -y update
apt-get -y install php5 php5-mhash php5-mcrypt php5-curl php5-cli php5-mysql php5-gd php5-intl

加载模块(sudo vim /etc/php5/apache2/php.ini

extension=pdo.so
extension=pdo_mysql.so

重新启动Apache

sudo service apache2 restart/etc/init.d/apache2 restart

检查模块是否已启用(确保模块已加载)

  1. 创建一个php文件并添加:

    <?php phpinfo();?>

  2. 或者运行

    php -i | grep pdo

测试

更改与您的设置相匹配的myDatabaseusernamepassword

try {
    $conn = new PDO('mysql:host=localhost;dbname=myDatabase', $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}