PHP mit pdo-mysql in Ubuntu 16.04

10

Ich habe versucht, PHP (7.2) in Ubuntu (16.04) mit aktiviertem PDO zu installieren. Ich brauche PHP nicht als Apache-Modul, weil ich PHPs eingebauten Server verwenden möchte (wie im CLI-Modus php -S localhost:80).

Also, hier ist was ich tue:

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

Jetzt in php.ini unkommentiert:

extension=pdo_mysql

Und trotzdem, wenn ich renne, php -vbekomme ich den Fehler:

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 Ausgabe:

[PHP Modules]
Core
date
filter
hash
libxml
openssl
pcntl
pcre
Reflection
session
sodium
SPL
standard
zlib
[Zend Modules]
Dan Miller
quelle
versuchen Sie diese stackoverflow.com/a/42929132/299774
Grzegorz
sudo phpenmod pdo_mysqlgibt mir/usr/sbin/phpenmod: 31: .: Can't open /usr/lib/php/php-helper
Dan Miller
Die obige Antwort besagt, dass Sie in Ubuntu 16.04 den Mod nicht aktivieren müssen. Versuchen Sie einfach, ihn zu installieren und neu zu starten.
Grzegorz
Oh, warte - du machst es in der CLI, in diesem Fall sollte kein Apache-Neustart erforderlich sein.
Grzegorz
Ja, Apache2 ist inaktiv
Dan Miller

Antworten:

30

Ich habe das Problem folgendermaßen gelöst:

sudo apt-get --purge remove php-common

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

Jetzt gibt es keinen Fehler und php -mzeigt, dass es alles hat:

[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

Ich weiß immer noch nicht, was das Problem überhaupt verursacht hat

Dan Miller
quelle
1
Ich hatte das gleiche Problem mit Debian und PHP 7.2 (5.6, 7.0, 7.1 und 7.3 funktionierten einwandfrei). Das Löschen und erneute Installieren löste es auch für mich
Pierre
löste mein xamppProblem in Ubuntu 16.04. Danke
abas nikzad
Rettete mich vor einer seltsamen PHP-Installation
Brian Peterson
Yay - arbeitete auch für mich
Jason Morgan
Vielen Dank! Dies löste mein Problem. (Ubuntu 19.04 | Php 7.2)
PlayHardGoPro
-1

Ich habe das gleiche Problem für mich auf meiner Arbeitsbox erstellt, indem ich mehrere manuell auskommentiert habe

;extension=<module>

Zeilen in der php.ini. Das war wirklich ich, der den apt-get installProzess hinterfragt hat. Ich denke, modernes PHP7 + behandelt diese Erweiterungen mit conf.dbestimmten Dateien wie:

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

Die Antwort für mich war dann, diese ;extensionZeilen in der php.iniDatei des Cli erneut zu kommentieren .

Drupal Entwicklung Costa Rica
quelle