PHP z pdo-mysql w Ubuntu 16.04

11

Próbowałem zainstalować php (7.2) w Ubuntu (16.04) z włączoną funkcją PDO. Nie potrzebuję php jako modułu apache, ponieważ chcę używać wbudowanego serwera PHP (w trybie cli, jak php -S localhost:80).

Oto co robię:

sudo apt-get install php

sudo apt-get install php-mysql

sudo cp /usr/lib/php/7.2/php.ini-production.cli /etc/php/7.2/cli/php.ini

Teraz w komentarzu do php.ini:

extension=pdo_mysql

Nadal po uruchomieniu pojawia php -vsię błąd:

PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_mysql' (tried: /usr/lib/php/20170718/pdo_mysql (/usr/lib/php/20170718/pdo_mysql: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/pdo_mysql.so (/usr/lib/php/20170718/pdo_mysql.so: undefined symbol: pdo_parse_params)) in Unknown on line 0

php -m wynik:

[PHP Modules]
Core
date
filter
hash
libxml
openssl
pcntl
pcre
Reflection
session
sodium
SPL
standard
zlib
[Zend Modules]
Dan Miller
źródło
wypróbuj ten stackoverflow.com/a/42929132/299774
Grzegorz
sudo phpenmod pdo_mysqldaje mi/usr/sbin/phpenmod: 31: .: Can't open /usr/lib/php/php-helper
Dan Miller
odpowiedź powyżej mówi, że w Ubuntu 16.04 nie musisz włączać modu, spróbuj po prostu zainstalować + zrestartować.
Grzegorz
och, czekaj - robisz to w CLI, w tym przypadku nie trzeba restartować apache.
Grzegorz
Tak, apache2 jest nieaktywny
Dan Miller

Odpowiedzi:

32

Rozwiązałem problem w ten sposób:

sudo apt-get --purge remove php-common

sudo apt-get install php-common php-mysql php-cli

Teraz nie ma błędu i php -mpokazuje, że ma wszystko:

[PHP Modules]
calendar
Core
ctype
date
exif
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
shmop
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
Zend OPcache
zlib

[Zend Modules]
Zend OPcache

Nadal nie wiem, co spowodowało problem

Dan Miller
źródło
1
Miałem ten sam problem z Debianem i PHP 7.2 (5.6, 7.0, 7.1 i 7.3 działały dobrze) Czyszczenie i instalacja od nowa rozwiązały również dla mnie
Pierre
rozwiązałem mój xamppproblem w Ubuntu 16.04. Dzięki
AN
Uratował mnie od dziwnej instalacji PHP
Brian Peterson
Yay - też dla mnie pracował
Jason Morgan
Dziękuję Ci! To rozwiązało mój problem. (Ubuntu 19.04 | Php 7.2)
PlayHardGoPro
-1

Ten sam problem stworzyłem na swoim polu pracy, ręcznie odznaczając kilka

;extension=<module>

linie w php.ini. Który tak naprawdę zgadywałam cały apt-get installproces. Myślę, że nowoczesny php7 + obsługuje te rozszerzenia przy użyciu conf.dokreślonych plików, takich jak:

  • /etc/php/7.3/cli/conf.d/10-pdo.ini
  • /etc/php/7.3/cli/conf.d/20-pdo_mysql.ini

Odpowiedzią dla mnie było ponowne skomentowanie tych ;extensionwierszy w php.inipliku cli .

Drupal Development Kostaryka
źródło