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:
- Zainstaluj php-mysql (To była już najnowsza wersja)
- Zainstaluj php7.0-mysql (To była już najnowsza wersja)
- 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)
- 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)
php -r 'phpinfo();' | grep -i pdo
. Nie powinieneś włączać rozszerzeń ręcznie, alephpenmod
zamiast 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 .../usr/sbin/phpquery -v 7.0 -M
idpkg -l php*mysql
?Odpowiedzi:
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 purge
zamiastapt-get remove
usuwać istniejące pliki konfiguracyjne i stany pakietów.Najmniej destrukcyjnym sposobem byłoby ponowne włączenie modułów mysql za pomocą
phpenmod
polecenia:sudo phpenmod mysqlnd pdo_mysql
Ciężko jest udzielić właściwej porady, jeśli nie wiemy, jaki chaos stworzyłeś w swoim systemie.
źródło