PHP 7 RC3: comment installer L'AOP MySQL manquante

j'essaie de configurer webserver avec PHP 7 RC3+ NginxUbuntu 14.04 (à des fins d'essai).

J'ai installé Ubuntu dans Vagrant en utilisant ubuntu/trusty64 et PHP 7 RC 3 de Ondřej Surý (https://launchpad.net / ~ondrej / +archive/ubuntu/php-7.0).

je ne peux pas trouver la façon de l'installer MySQL PDO(PHP voit PDO classe mais rien en rapport avec MySQL, comme PDO::MYSQL_ATTR_DIRECT_QUERY etc.)

Regarde comme il n'y a pas de lib php7.0-mysql (par analogie avec la norme php5-mysqlnd et php7.0-fpm etc. de Andre)

PDOphpinfo():

PDO support      enabled
PDO drivers      no value

comment l'obtenir?

30
demandé sur SmxCde 2015-09-23 02:49:06

9 réponses

pour ceux qui utilisent Linux avec apache2, vous devez installer php-mysql

apt-get install php-mysql

ou si vous utilisez ubuntu 16.04 ou une version plus récente, la commande suivante sera désactivée, pas besoin d'éditer votre php.fichier ini

apt-get install php7.0-mysql

si vous utilisez ubuntu 15.10 ou moins:

modifiez votre php.ini le fichier et recherche pour pdo_mysql vous pourriez trouver quelque chose comme ceci

;extension=php_pdo_mysql.so

Changer de ce

extension=pdo_mysql.so

Enregistrer le fichier et redémarrer apache

service apache2 restart

Vérifier qu'il est disponible dans votre phpinfo ()

74
répondu Angel115 2017-10-03 15:16:30

première installation de php-mysql

sudo apt-get install php7.0-mysql

alors activez le module

sudo phpenmod pdo_mysql

et redémarrez apache

sudo service apache2 restart 
19
répondu StateLess 2017-06-19 10:34:29

Depuis eggyal n'a pas fourni son commentaire comme réponse après avoir donné les bons conseils dans un commentaire - je le poste ici: dans mon cas, j'ai dû installer le module php-mysql. Voir les commentaires sous la question pour plus de détails.

3
répondu SmxCde 2017-05-23 12:02:57

tout d'Abord, vérifiez si votre php.ini a activé l'extension "php_pdo_mysql" et "php_mysqli" et le chemin de "extension_dir" est correct. Si vous avez besoin d'une des configurations ci-dessus, vous devez redémarrer le php-fpm pour appliquer les modifications.

dans mon cas (où J'utilise Windows OS dans la société, je préfère vraiment OSX ou Linux), j'ai résolu le problème en mettant ces valeurs dans le php.ini:

; ...

extension_dir = "ext"

; ... 

extension=php_mysqli.dll
extension=php_pdo_mysql.dll

; ...

j'espère que cette aide.

3
répondu João Paulo Cercal 2015-12-04 20:30:36

si vous êtes sur windows, et que votre dossier php n'est pas dans votre chemin, vous avez défini le répertoire absolu dans votre php.ini

par exemple:

extension_dir = "C:/php7/ext"

et supprimez le commentaire

extension=php_mysqli.dll
extension=php_pdo_mysql.dll

Redémarrez apache2.4 et ça devrait marcher.

j'espère que ça aidera.

2
répondu user1455180 2016-04-15 07:19:19
  1. télécharger le code source de php 7 et l'extraire.
  2. ouvrez votre terminal
  3. nage vers l'ext/mysqli répertoire
  4. utiliser les commandes:

    commande phpize

    ./configure

    make install (en tant que root)

  5. enable extension=mysqli.donc dans votre php.fichier ini
  6. fait!

Cela a fonctionné pour moi

2
répondu micl 2016-09-01 17:13:22

j'ai eu, à peu près, le même problème. J'ai pu voir que PDO était activé mais je n'avais pas de pilotes disponibles (utilisant PHP 7-RC4). J'ai réussi à résoudre le problème en ajoutant l'extension php_pdo_mysql à ceux qui ont été activés.

Espérons que cette aide!

1
répondu jgadrow 2015-10-06 16:32:24

avait le même problème, résolu en activant l'extension dans le php.ini avec le bon nom de fichier. Il était répertorié comme php_pdo_mysql.donc, mais le nom du module dans /lib/php / modules s'appelait simplement pdo_mysql.so

il suffit donc de supprimer le préfixe "php_" du php.fichier ini, puis redémarrer le service httpd et cela a fonctionné comme un charme.

veuillez noter que j'utilise Arch et donc les noms de chemins et les services peuvent être différents selon votre distrubution.

1
répondu Xorifelse 2015-11-15 13:11:00

je vais commencer par la réponse puis le contexte noter que cette correction a été enregistrée ci-dessus, je le re-déclare juste pour n'importe qui googlant.

  1. Télécharger le code source de php 7 et l'extraire.
  2. ouvrez votre terminal
  3. nage vers l'ext/pdo_mysql répertoire
  4. utiliser les commandes:

    commande phpize

    ./configure

    make install (en tant que root)

  5. activer extension=mysqli.donc dans votre php.fichier ini

C'est enregistré comme une réponse à partir d'ici (veuillez upvote si cela vous a aidé aussi): https://stackoverflow.com/a/39277373/3912517

Contexte: J'essaie d'ajouter LimeSurvey au Docker WordPress standard. Le seul point qui me retient est "PHP PDO driver library" qui est "None found"

php -i | grep PDO                                                                                  
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_odbc' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20170718/pdo_odbc (/usr/local/lib/php/extensions/no-debug-non-zts-20170718/pdo_odbc: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zts-20170718/pdo_odbc.so (/usr/local/lib/php/extensions/no-debug-non-zts-20170718/pdo_odbc.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  Module 'mysqli' already loaded in Unknown on line 0
PDO
PDO support => enabled
PDO drivers => sqlite
PDO Driver for SQLite 3.x => enabled

Ubuntu 16 (Ubuntu 7.3.0)--8-->

apt-get install php7.0-mysql

Résultat:

Package 'php7.0-mysql' has no installation candidate

Obtenir des instructions disant tout ce que j'ai à faire est d'exécuter ceci:

add-apt-repository -y ppa:ondrej/apache2

Mais puis-je obtenir ceci:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc5 in position 223: ordinal not in range(128)

alors j'essaie de forcer un type D'UTF: LC_ALL=C. UTF-8 add-apt-repository-y ppa:ondrej / apache2 et je reçois ce: aucune donnée OpenPGP valide trouvée.

suivez d'autres instructions pour exécuter ceci: apt-get update et je reçois ce: Err:14 http://ppa.launchpad.net/ondrej/apache2/ubuntu paquets cosmic / main amd64 404 Non Trouvé Err: 15 http://ppa.launchpad.net/ondrej/php/ubuntu paquets cosmic / main amd64 404 Non Trouvé et je pense que à cause de cela - j'ai ensuite:

The repository 'http://ppa.launchpad.net/ondrej/apache2/ubuntu cosmic Release' does not have a Release file.

à ce stade, je reçois encore ceci sur apt-get update:

Package 'php7.0-mysql' has no installation candidate.

j'ai commencer à essayer d'ajouter dans les bibliothèques php, obtenu Unicode questions, essayé de contourner et.... vous obtenez l'idée... whack-a-mole. J'ai abandonné et regardé pour voir si je pouvais le compiler et j'ai trouvé la réponse, j'ai commencé avec.

vous vous demandez peut-être pourquoi j'ai tant écrit? Pour que n'importe qui googlant puisse trouver cette solution (y compris moi!).

0
répondu user3912517 2018-10-02 06:03:13