我最近更新到了 16.04 LTS。它将我的 php 更新到了 7.0。现在它不知怎么删除了 pdo_mysql。我需要这个扩展来开发 magento 网站。在 phpinfo 中,我发现
pdo 支持:已启用 pdo 驱动程序:无值
我用 Google 搜索了很多,找到了以下解决方案:
- 安装php-mysql(已经是最新版本)
- 安装php7.0-mysql(已经是最新版本)
- 在 php.ini (/etc/php/7.0/apache2/php.ini) 中进行了以下更改:启用扩展 pdo.so、pdo_mysql.so、mysqli.so。并且还尝试提供它们的精确路径(进行更改后重新启动 apache)
- 甚至尝试使用 pecl 安装 pdo_mysql。
以上方法都无济于事,我已经为此绞尽脑汁近两天了。非常感谢您的帮助。
php -r 'phpinfo();' | grep -i pdo 的输出:
/etc/php/7.0/cli/conf.d/10-pdo.ini,
PDO
PDO support => enabled
PDO drivers =>
/usr/sbin/phpquery -v 7.0 -M 的输出
mysqlnd
sysvmsg
sockets
gd
mcrypt
phar
xsl
xmlreader
shmop
sysvsem
mysqli
xml
tokenizer
iconv
pdo
pdo_mysql
gettext
simplexml
xmlwriter
opcache
posix
sysvshm
ftp
dom
json
readline
calendar
fileinfo
ctype
wddx
exif
dpkg -l php*mysql 的输出
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-============-============-=================================
ii php-mysql 1:7.0+35ubun all MySQL module for PHP [default]
un php-pdo-mysql <none> <none> (no description available)
rc php5-mysql 5.6.11+dfsg- amd64 MySQL module for php5
ii php7.0-mysql 7.0.4-7ubunt amd64 MySQL module for PHP
un php7.0-pdo-mys <none> <none> (no description available)
答案1
在此阶段,我仅建议通过以下方式“将其关闭并再次打开”:
sudo apt-get purge php-common php5-common
其次是
sudo rm -r /etc/php
然后重新安装 PHP 7.0 和 mysql 模块:
sudo apt-get install libapache2-mod-php php-mysql
您也可以尝试清除并重新安装 mysql 模块,首先删除包:
sudo apt-get purge php7.0-mysql
然后再次安装它们:
sudo apt-get install php-mysql
在这两种情况下,重要的是使用apt-get purge
而不是apt-get remove
删除任何现有的配置文件和包状态。
破坏性最小的方法是尝试使用phpenmod
命令重新启用 mysql 模块:
sudo phpenmod mysqlnd pdo_mysql
如果我们不知道您在系统上造成了什么混乱,就很难给您正确的建议。