我在Ubuntu上安装了LAMP服务器。在我升级到Ubuntu 15.04之前,许多Magento和MediaWiki安装都运行良好。
升级后,尝试加载本地主机提供的一个页面会引发错误The PDO extension is required for this adapter but the extension is not loaded
我键入了php -m
,看到PDO
和pdo_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
检查模块是否已启用(确保模块已加载)
创建一个php文件并添加:
<?php phpinfo();?>
或者运行
php -i | grep pdo
测试
更改与您的设置相匹配的myDatabase
、username
和password
。
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();
}