Maison >développement back-end >PHP7 >Explication détaillée de l'installation de PHP7, extension pdo_mysql

Explication détaillée de l'installation de PHP7, extension pdo_mysql

coldplay.xixi
coldplay.xixiavant
2021-04-30 11:43:073920parcourir

Explication détaillée de l'installation de PHP7, extension pdo_mysql

Le projet tp5 peut être exécuté localement, mais lorsqu'il est ouvert sur le serveur (linux+php7+nginx), il affiche

impossible de trouver le pilote

L'erreur montre que PDO n'a pas trouvé cela. tp5 utilise PDO pour se connecter à la base de données, s'il ne peut pas être connecté, installez-le

Recommandé (gratuit) : PHP7

Étape 1 :

Décompressez le package d'installation de php, allez généralement dans /usr/local/src /etc /pdo_mysql. Supposons que votre php soit installé dans /usr/local/php. Exécutez /usr/local/php/bin/phpize
Explication détaillée de linstallation de PHP7, extension pdo_mysql
Si la case rouge dans l'image apparaît, installez deux choses
Explication détaillée de linstallation de PHP7, extension pdo_mysql
Explication détaillée de linstallation de PHP7, extension pdo_mysql
Après l'installation est terminé Cela devrait être OK

Continuer l'exécution./configure –with-php-config=/usr/local/php/bin/php-config –with-pdo-mysql=/usr/local/mysql/ Le second Installez le chemin pour mysql
Explication détaillée de linstallation de PHP7, extension pdo_mysql
. Une fois l'exécution terminée, faites-le compiler. Pas de problème. Continuez make install
Explication détaillée de linstallation de PHP7, extension pdo_mysql
. généré avec pdo_mysql.soC'est ce que nous voulons.
Imprimez phpinfo() pour voir si le chemin extension_dir pointe vers le chemin ci-dessus
Explication détaillée de linstallation de PHP7, extension pdo_mysql
Sinon, ouvrez php.ini et modifiez-le. Le chemin php.ini est sur cette page
. Explication détaillée de linstallation de PHP7, extension pdo_mysql
Explication détaillée de linstallation de PHP7, extension pdo_mysql
Il ne devrait pas être nécessaire d'écrire le chemin absolu ici, mais je vous remercie quand même. Assurez-vous qu'il y a pdo_mysql.so dans ce chemin

Si vous oubliez de le faire. installez-le ci-dessus, vous pouvez l'exécuter et jeter un œil à /usr/local/. php/bin/php -m est-il installé avec succès
Explication détaillée de linstallation de PHP7, extension pdo_mysql

Bien, j'ai redémarré nginx plusieurs fois avant de l'installer ? il, mais il ne s'est toujours pas ouvert. Il s'avère que php doit également être redémarré

Fermer PHP
killall php-fpm

php restart
/usr/local. /php/sbin/php-fpm &

Fermer nginx
/usr/local /nginx/sbin/nginx -s stop //Fermer le serveur

Démarrer nginx
/ usr/local/nginx/sbin/nginx Démarrez le serveur

Redémarrez nginx
/usr/ local/nginx/sbin/nginx -s reload

Explication détaillée de linstallation de PHP7, extension pdo_mysql
OK, s'il est activé, tp5 est également accessible normalement

S'il n'y a pas de package d'installation php dans le répertoire src

Téléchargez directement le package de code source d'extension pdo_mysql. La page de téléchargement est ici : http://pecl.php.net/package/PDO_MYSQL Vous pouvez d'abord le télécharger puis le transférer sur le serveur via FTP.
J'ai copié l'adresse de téléchargement et utilisé wget pour la télécharger directement sur le serveur.
Exécutez
wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz

dans le répertoire /usr/local/src puis décompressez
tar - zxvf PDO_MYSQL -1.0.2.tgz

Entrez dans le répertoire décompressé, puis exécutez phpize La méthode suivante est la même que ci-dessus

Voici une démo pour tester pdo et mysqli

$pdo_startTime = microtime(true);for($i=1;$i<=100;$i++){    $pdo = new PDO("mysql:host=locahost;dbname=xf","root","root");
}$pdo_endTime = microtime(true);$pdo_time = $pdo_endTime - $pdo_startTime;echo $pdo_time;echo "<hr/>";//通过mysql链接数据库$mysqli_startTime = microtime(true);for($i=1;$i<=100;$i++){
    mysqli_connect("host","username","123","xf");
}$mysqli_endTime = microtime(true);$mysqli_time = $mysqli_endTime - $mysqli_startTime;echo $mysqli_time;echo "<hr/>";if($pdo_time > $mysqli_time){    echo "pdo的连接时间是mysqli的".round($pdo_time/$mysqli_time)."倍";
}else{    echo "mysqli的连接时间是pdo的".round($mysqli_time/$pdo_time)."倍";
}

    

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer