PHP avec pdo-mysql dans Ubuntu 16.04

11

J'ai essayé d'installer php (7.2) dans Ubuntu (16.04) avec PDO activé. Je n'ai pas besoin de php comme module apache, car je veux utiliser le serveur intégré PHP (en mode cli, comme php -S localhost:80).

Alors, voici ce que je fais:

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

Maintenant, dans php.ini sans commentaire:

extension=pdo_mysql

Et quand je cours, php -vj'obtiens l'erreur:

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

[PHP Modules]
Core
date
filter
hash
libxml
openssl
pcntl
pcre
Reflection
session
sodium
SPL
standard
zlib
[Zend Modules]
Dan Miller
la source
sudo phpenmod pdo_mysqlme donne/usr/sbin/phpenmod: 31: .: Can't open /usr/lib/php/php-helper
Dan Miller
la réponse ci-dessus dit que dans ubuntu 16.04 vous n'avez pas besoin d'activer le mod, essayez simplement d'installer + redémarrer.
Grzegorz
oh, attendez - vous le faites en CLI, aucun redémarrage apache ne devrait être nécessaire dans ce cas.
Grzegorz
Oui, apache2 est inactif
Dan Miller

Réponses:

32

J'ai résolu le problème de cette façon:

sudo apt-get --purge remove php-common

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

Maintenant, il n'y a pas d'erreur et php -mmontre qu'il a tout:

[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

Je ne sais toujours pas ce qui a causé le problème en premier lieu

Dan Miller
la source
1
J'ai eu le même problème avec Debian et PHP 7.2 (5.6, 7.0, 7.1 et 7.3 fonctionnaient bien) La purge et l'installation de nouveau l'ont résolu pour moi aussi
Pierre
résolu mon xamppproblème dans Ubuntu 16.04. Merci
abas nikzad
M'a sauvé d'une étrange installation PHP
Brian Peterson
Yay - a travaillé pour moi aussi
Jason Morgan
Je vous remercie! Cela a résolu mon problème. (Ubuntu 19.04 | Php 7.2)
PlayHardGoPro
-1

Je me suis créé le même problème sur ma boîte de travail en décommentant manuellement plusieurs

;extension=<module>

lignes dans le php.ini. C'était vraiment moi qui devinais le apt-get installprocessus. Je pense que php7 + moderne gère ces extensions en utilisant conf.ddes fichiers spécifiques comme:

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

La réponse alors pour moi a été de commenter à nouveau ces ;extensionlignes dans le php.inidossier du cli .

Développement Drupal Costa Rica
la source