pdo_mysql usunięty przy aktualizacji do 16.04


9

Niedawno zaktualizowałem do 16.04 LTS. I zaktualizowałem mój php do 7.0. Teraz trochę jak usunięto pdo_mysql. Potrzebuję tego rozszerzenia do opracowania strony internetowej Magento. W phpinfo znajduję

obsługa pdo: włączone sterowniki pdo: brak wartości

Często googlowałem i znalazłem następujące rozwiązania:

  1. Zainstaluj php-mysql (To była już najnowsza wersja)
  2. Zainstaluj php7.0-mysql (To była już najnowsza wersja)
  3. Zmieniono następujące w php.ini (/etc/php/7.0/apache2/php.ini): włączone rozszerzenia pdo.so, pdo_mysql.so, mysqli.so. a także wypróbował to samo, podając dokładne ścieżki (zrestartował apache po wprowadzeniu zmian)
  4. Próbowałem nawet zainstalować pdo_mysql przy użyciu pecl.

Żadna z powyższych metod nie była pomocna, łamałem sobie głowę przez prawie 2 dni. Pomoc będzie mile widziana.

Wyjście php -r 'phpinfo ();' | grep -i pdo:

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

wyjście z / 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

wyjście z 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)

Proszę zamieścić dane wyjściowe php -r 'phpinfo();' | grep -i pdo . Nie powinieneś włączać rozszerzeń ręcznie, ale phpenmodzamiast tego użyj . Lub raczej opublikuj pełne wyjście phpinfo () gdzieś z tego samego wirtualnego serwera, na którym uruchamiasz magento. Podejrzewam, że robisz coś z domyślnym php.ini ...
oerdnj 29.04.16

Przepraszam za spóźnioną odpowiedź. Oto wynik: /etc/php/7.0/cli/conf.d/10-pdo.ini, obsługa PDO PDO => włączone sterowniki PDO =>
Rakshith S Kumar

Dodano również wynik do pytania początkowego.
Rakshith S Kumar

I produkcja: /usr/sbin/phpquery -v 7.0 -Midpkg -l php*mysql ?
oerdnj 30.04.16

Dodano oba wyjścia.
Rakshith S Kumar

Odpowiedzi:


8

Na tym etapie po prostu zaleciłbym „wyłączenie i ponowne włączenie”, wykonując:

sudo apt-get purge php-common php5-common

śledzony przez

sudo rm -r /etc/php

A następnie ponowna instalacja modułów PHP 7.0 i mysql:

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

Możesz także spróbować po prostu wyczyścić i ponownie zainstalować moduły mysql, najpierw usuwając pakiet:

sudo apt-get purge php7.0-mysql

I instalowanie ich ponownie:

sudo apt-get install php-mysql

W obu przypadkach ważne jest, aby używać apt-get purgezamiast apt-get removeusuwać istniejące pliki konfiguracyjne i stany pakietów.

Najmniej destrukcyjnym sposobem byłoby ponowne włączenie modułów mysql za pomocą phpenmodpolecenia:

sudo phpenmod mysqlnd pdo_mysql

Ciężko jest udzielić właściwej porady, jeśli nie wiemy, jaki chaos stworzyłeś w swoim systemie.


Postępowałem zgodnie z krokami czyszczenia, usuwania katalogów, ponownej instalacji, a także oczyściłem php7.0-mysql i zainstalowałem php-mysql. Teraz sam apache przestał działać, mówi, że nie jest w stanie obsłużyć żądań. :(
Rakshith S Kumar

1
przepraszam mój zły, musiałem zainstalować php7.0-xml i wszystko było w porządku. Wielkie dzięki.
Rakshith S Kumar
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.