pdo_mysql rimosso durante l'aggiornamento a 16.04


9

Di recente ho aggiornato a 16.04 LTS. E ha aggiornato il mio php a 7.0. Ora in qualche modo rimosso pdo_mysql. Ho bisogno di questa estensione per sviluppare il sito Web di Magento. In phpinfo, trovo

supporto pdo: driver pdo abilitati: nessun valore

Ho cercato su Google molto e ho trovato queste soluzioni:

  1. Installa php-mysql (era già la versione più recente)
  2. Installa php7.0-mysql (era già la versione più recente)
  3. Modificato in seguito in php.ini (/etc/php/7.0/apache2/php.ini): estensioni abilitate pdo.so, pdo_mysql.so, mysqli.so. e ha anche provato lo stesso fornendo i loro percorsi esatti (riavviato Apache dopo aver apportato le modifiche)
  4. Ho anche provato a installare pdo_mysql usando pecl.

Nessuno dei metodi di cui sopra è stato utile, mi sto rompendo la testa per quasi 2 giorni. L'aiuto sarebbe molto apprezzato.

Output di php -r 'phpinfo ();' | grep -i pdo:

/etc/php/7.0/cli/conf.d/10-pdo.ini,
PDO
PDO support => enabled
PDO drivers =>  

output di / 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

output di 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)

Si prega di inviare output di php -r 'phpinfo();' | grep -i pdo. E non dovresti abilitare le estensioni a mano, ma usa phpenmodinvece. O meglio pubblicare l'output completo di phpinfo () da qualche parte dallo stesso server virtuale in cui si esegue magento. Sospetto che potresti fare qualcosa con il tuo php.ini predefinito ...
— oerdnj,

Mi scuso per la risposta tardiva. Ecco l'output: /etc/php/7.0/cli/conf.d/10-pdo.ini, supporto DOP DOP => driver PDO abilitati =>
— Rakshith S Kumar

Aggiunto anche l'output alla domanda iniziale.
— Rakshith S Kumar,

E output di: /usr/sbin/phpquery -v 7.0 -Me dpkg -l php*mysql?
— oerdnj,

Aggiunti entrambi gli output.
— Rakshith S Kumar

Risposte:


8

A questo punto, consiglierei semplicemente di "spegnerlo e riaccenderlo" facendo:

sudo apt-get purge php-common php5-common

seguito da

sudo rm -r /etc/php

E quindi reinstallare i moduli PHP 7.0 e mysql:

sudo apt-get install libapache2-mod-php php-mysql

Puoi anche provare a eliminare e reinstallare i moduli mysql, rimuovendo prima il pacchetto:

sudo apt-get purge php7.0-mysql

E installarli di nuovo:

sudo apt-get install php-mysql

In entrambi i casi è importante utilizzare apt-get purgeinvece di apt-get removeeliminare eventuali file di configurazione e stati dei pacchetti esistenti.

Il modo meno distruttivo sarebbe provare a riattivare i moduli mysql usando il phpenmodcomando:

sudo phpenmod mysqlnd pdo_mysql

È difficile darti consigli corretti se non sappiamo quale caos hai creato sul tuo sistema.


Ho seguito i passaggi di eliminazione, rimozione di directory, reinstallazione e anche eliminazione di php7.0-mysql e installazione di php-mysql. Ora lo stesso apache ha smesso di funzionare, dice incapace di gestire le richieste. :(
— Rakshith S Kumar

1
scusami male, ho dovuto installare php7.0-xml e tutto andava bene. Molte grazie.
— Rakshith S Kumar
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.