PHP 7 RC3: Comment installer manquant MySQL PDO
Je suis en train de configuration du serveur avec PHP 7 RC3
+ Nginx
sur Ubuntu 14.04
(à des fins de test).
J'ai installé Ubuntu dans Vagrant à l'aide de 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 le moyen d'installer MySQL PDO
(PHP voit PDO
classe, mais pas tout ce qui est lié à MySQL, comme PDO::MYSQL_ATTR_DIRECT_QUERY
etc.)
Dirait qu'il n'ya pas de lib php7.0-mysql
(par analogie avec la norme php5-mysqlnd
et php7.0-fpm
etc. de Andre)
Section PDO
dans phpinfo()
:
PDO support enabled
PDO drivers no value
Comment puis-je l'obtenir?
- Vous dites Ubuntu 12.04, mais alors que vous êtes en utilisant
ubuntu/trusty64
qui est 14.04. En supposant que vous êtes en fait en utilisant Fidèle (après tout, Andre n'a pas produit de paquets Précis), alors sonphp-modules
le paquet fourniraphp-mysql
. - Oui, vous avez absolument raison! (version fixe). Et votre suggestion avec le nom du module fonctionne. Merci! Si vous ajouter en tant que réponse, je vais le marquer comme étant correcte.
- Mon erreur - j'ai été à la recherche comme cette
apt-cache search php pdo
et le modulephp-mysql
dans ce cas n'est pas montré. - Si c'est quelque chose comme la norme de Ubuntu/Debian, vous pouvez également installer
php5-mysqlnd
d'utiliser le le pilote natif mysql, qui, selon que le lien est "fortement encouragés", même si les devs Ubuntu ne pas l'utiliser par défaut. - Mike,
php5-mysqlnd
ne fonctionne pas pour moi car je installerPHP 7
. - Pour PHP 7 sur CentOS 7, mysqlnd nom du package est php70w-mysqlnd (gros avantage par rapport régulier pilote mysql pour la prise en charge de retourner le bon de types de données [par exemple, int comme int, pas comme une chaîne de caractères]).
Vous devez vous connecter pour publier un commentaire.
Pour celles fonctionnant sous Linux avec apache 2, vous devez installer php-mysql
ou si vous êtes sous ubuntu 16.04 ou plus simplement en exécutant la commande suivante sera assez, pas besoin de modifier votre php.fichier ini
Si vous êtes sous ubuntu 15.10 ou ci-dessous:
Modifier votre php.ini fichier, il est situé à
/etc/php/[version]/apache2/php.ini
et de recherche pour pdo_mysqlvous pourriez trouver quelque chose comme cela
Changer à ce
Enregistrez le fichier et redémarrez apache
Vérifier qu'il est disponible dans votre phpinfo()
php-mysqlnd
) la place de l'anciennephp-mysql
paquetapt-get install php7.2-mysql
.De la première installation de php-mysql
puis activer le module
et redémarrer apache
Tout d'abord, vérifiez si votre php.ini a l'extension activée "php_pdo_mysql" et "php_mysqli" et le chemin de la "extension_dir" est correct. Si vous avez besoin de l'un des au-dessus de configuration, ensuite, vous devez redémarrer le php-fpm pour appliquer les modifications.
Dans mon cas (où je suis en utilisant le système d'exploitation Windows 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:
J'espère que cette aide.
Depuis eggyal n'a pas fourni son commentaire comme réponse après qu'il a donné de bons conseils dans un commentaire que j'ai écris ici: Dans mon cas, j'ai dû installer le module
php-mysql
. Voir les commentaires relatifs à la question pour plus de détails.Si vous êtes sur windows, et votre dossier de php n'est pas dans votre CHEMIN, vous devez définir le répertoire absolu dans votre php.ini
par exemple:
et décommentez
Redémarrer apache2.4 et cela devrait fonctionner.
J'espère que cela aide.
Cela a fonctionné pour moi
J'ai eu, à peu près, le même problème. J'ai pu voir que PDO est activé mais je n'avais pas de pilotes disponibles (à l'aide de 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!
Eu le même problème, résolu en fait, l'activation de l'extension dans le php.ini avec le bon nom de fichier. Il a été répertorié comme php_pdo_mysql.mais le nom du module dans /lib/php/modules a été appelé juste pdo_mysql.donc
Il suffit donc de retirer le "php_" préfixe de la php.fichier ini et redémarrez le service httpd et il a travaillé comme un charme.
Veuillez noter que je suis sous Arch et donc les noms de chemin d'accès et les services peuvent être différents selon votre distrubution.
Je vais commencer par la réponse, puis contexte de NOTE ce correctif a été consigné ci-dessus, je suis juste en indiquant pour quiconque recherche sur google.
utiliser les commandes:
commande phpize
./configurer
faire
make install (en tant que root)
permettre extension=mysqli.donc, dans votre php.fichier ini
Ceci est enregistrée 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 de LimeSurvey pour le standard de WordPress Docker. Le seul point qui me retient est "PHP PDO de la bibliothèque de pilotes", qui est "pas trouvé"
Ubuntu 16 (Ubuntu 7.3.0)
Résultat:
Obtenir des instructions disant tout ce que j'ai à faire est de lancer ce:
Mais puis-je obtenir ceci:
J'ai donc essayer de forcer un certain type de format UTF:
LC_ALL=C UTF-8 add-apt-repository-y ppa:ondrej/apache2
et j'obtiens ceci:
aucun certificat OpenPGP données.
Suivent quelques autres instructions à exécuter ce:
apt-get update
et j'obtiens ceci:
Err:14 http://ppa.launchpad.net/ondrej/apache2/ubuntu cosmique/main amd64 Packages
404 Not Found
Err:15 http://ppa.launchpad.net/ondrej/php/ubuntu cosmique/main amd64 Packages
404 Not Found
et je pense que à cause de cela - j'ai ensuite:
À ce stade, je suis encore en train de ce sur apt-get update:
J'ai commencer à essayer d'ajouter dans les bibliothèques php, obtenu Unicode questions, essayé et.... vous voyez 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 demandez peut-être pourquoi j'ai écrit à ce point? De sorte que n'importe qui googler pouvez trouver cette solution (moi y compris!).
C'est simple:
Il suffit de fournir le numéro de port ainsi que le nom d'hôte
et par défaut chaussette chemin d'accès à votre
mysql.sock
chemin d'accès au fichier dansphp.ini
lequel le serveur est en cours d'exécution sur.