Recientemente actualicé a 16.04 LTS. Y actualizó mi php a 7.0. Ahora, de alguna manera, se eliminó pdo_mysql. Necesito esta extensión para desarrollar el sitio web de magento. En phpinfo, encuentro
soporte de pdo: controladores de pdo habilitados: sin valores
He buscado mucho en Google y he encontrado estas soluciones:
- Instale php-mysql (ya era la versión más nueva)
- Instale php7.0-mysql (ya era la versión más reciente)
- Se modificó el siguiente en php.ini (/etc/php/7.0/apache2/php.ini): extensiones habilitadas pdo.so, pdo_mysql.so, mysqli.so. y también probé lo mismo dando sus rutas exactas (apache reiniciado después de hacer cambios)
- Incluso intenté instalar pdo_mysql usando pecl.
Ninguno de los métodos anteriores fue útil, he estado rompiendo mi cabeza en esto durante casi 2 días. La ayuda sería muy apreciada.
Salida de php -r 'phpinfo ();' El | grep -i pdo:
/etc/php/7.0/cli/conf.d/10-pdo.ini,
PDO
PDO support => enabled
PDO drivers =>
salida de / 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
salida de 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)
php -r 'phpinfo();' | grep -i pdo
. Y no debe habilitar las extensiones a mano, sino utilizarlasphpenmod
. O, más bien, publique la salida completa de phpinfo () en algún lugar del mismo servidor virtual donde ejecuta magento. Sospecho que podría estar haciendo algo para su php.ini por defecto .../usr/sbin/phpquery -v 7.0 -M
ydpkg -l php*mysql
?Respuestas:
En esta etapa, simplemente recomendaría "apagarlo y volverlo a encender" haciendo:
sudo apt-get purge php-common php5-common
seguido por
sudo rm -r /etc/php
Y luego reinstalar PHP 7.0 y módulos mysql:
sudo apt-get install libapache2-mod-php php-mysql
También puede intentar purgar y reinstalar módulos mysql, primero eliminando el paquete:
sudo apt-get purge php7.0-mysql
Y la instalación de nuevo:
sudo apt-get install php-mysql
En ambos casos, es importante usar en
apt-get purge
lugar deapt-get remove
eliminar cualquier archivo de configuración existente y estados de paquete.La forma menos destructiva sería intentar volver a habilitar los módulos mysql usando el
phpenmod
comando:sudo phpenmod mysqlnd pdo_mysql
Es difícil darle consejos correctos si no sabemos qué caos creó en su sistema.
fuente