PHP 7 RC3: comment installer L'AOP MySQL manquante
j'essaie de configurer webserver avec PHP 7 RC3
+ Nginx
Ubuntu 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)
PDO
phpinfo()
:
PDO support enabled
PDO drivers no value
comment l'obtenir?
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 ()
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
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.
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.
- télécharger le code source de php 7 et l'extraire.
- ouvrez votre terminal
- nage vers l'ext/mysqli répertoire
- utiliser les commandes:
commande phpize
./configure
make install (en tant que root)
- enable extension=mysqli.donc dans votre php.fichier ini
- fait!
Cela a fonctionné pour moi
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!
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.
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.
- Télécharger le code source de php 7 et l'extraire.
- ouvrez votre terminal
- nage vers l'ext/pdo_mysql répertoire
utiliser les commandes:
commande phpize
./configure
make install (en tant que root)
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!).