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]


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


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 .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.