Comment activer MySQLi pour mon domaine ?

Henry Blake
Vous obtenez des erreurs “Call to undefined function mysqli_connect()”? Oui, c’est MySQLi qui n’est pas activé. Cela arrive plus souvent qu’on ne le pense, surtout après la migration de sites WordPress ou l’installation de certains plugins.
Le fait est que CloudLinux vous permet d’activer et de désactiver MySQLi par domaine, ce qui est en fait très pratique lorsque vous jonglez avec plusieurs sites. Certains scripts plus anciens se cassent avec des extensions plus récentes, donc avoir un contrôle au niveau du domaine évite bien des maux de tête.
- Connectez-vous à cPanel pour votre domaine
- Trouvez “Sélectionner la version de PHP” (c’est dans la section Logiciel)
- Changez la version de PHP pour autre chose que “native” - PHP 8.1 ou 8.2 fonctionnent très bien
- Cherchez “mysqli” dans la liste des extensions et cochez la case
- Cliquez sur “Enregistrer”
C’est tout. Pas besoin d’attendre les redémarrages du serveur.
Petit avertissement rapide :
- Cela ne fonctionne que dans cPanel, pas dans WHM (si vous êtes un revendeur)
- Les changements sont instantanés
- Si MySQLi était “activé” mais continuait à générer des erreurs, essayez d’abord de changer les versions de PHP - parfois cela remet les choses en marche
- Les anciens sites pourraient également avoir besoin de l’ancienne extension “mysql”, mais honnêtement, il est temps de les mettre à jour
Quand les choses tournent mal :
Vous ne trouvez pas MySQLi dans les extensions ? Désactivez d’abord le PHP “natif”. Les versions natives sont verrouillées et n’affichent pas toutes les options de module.
Vous obtenez toujours des erreurs de base de données après l’avoir activé ? Vérifiez à nouveau votre wp-config.php ou vos chaînes de connexion. MySQLi ne corrige pas magiquement les mauvais mots de passe ou les fautes de frappe dans les noms de base de données.
Et oui, MySQLi est beaucoup plus rapide que l’ancienne extension mysql, surtout si votre application utilise des requêtes préparées. Le changement en vaut la peine.