7 votes

Confirmez que l'extension mysqli n'est pas installée

Récemment, j'ai découvert que l'extension mysqli n'est pas installée sur mon serveur version Centos 2.6. Je le confirme car j'ai changé le pilote de connexion de la base de données de mysqli à mysql et maintenant ça fonctionne bien. Donc, y a-t-il un autre moyen/un journal pour déterminer ce problème? car le fichier de log d'apache ne dit rien à ce sujet.

Ce n'est pas vraiment un problème, mais cela pourrait être plus complexe à l'avenir. Pourquoi? car en utilisant le pilote mysqli, le site se bloque avec une page blanche sans erreurs/avertissements pour m'aider à le résoudre. Je n'aime pas l'idée de découvrir les problèmes avec des arts magiques ou en testant ligne par ligne. Il devrait y avoir un fichier journal qui m'aide à le déboguer.

Pour fournir des informations pour aider sur ce problème, j'ai fait :

 cat /proc/version 
 Linux version 2.6.18-308.el5.028stab099.3 (root@rhel5-build-x64) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46))

0 votes

Quel est le problème alors? Vous savez mysqli n'est pas installé et le définir sur mysql semblait résoudre votre problème. De plus, êtes-vous sûr d'utiliser la version CentOS 2.6 ?

0 votes

@AlexanderJanssen, J'ai mis à jour le post :)

1 votes

Ainsi, vous voulez utiliser le pilote mysqli dans votre application PHP? Avez-vous essayé de yum install php-mysqli? Ou, si vous voulez vérifier s'il est installé, faites simplement un rpm -q php-mysqli.

10voto

peakit Points 5646

Vous pouvez confirmer si mysqli est installé ou non en listant les modules installés. SSH dans votre boîte Cent OS et exécutez la commande suivante.

php -m | grep mysqli

Si rien n'est renvoyé, alors vous n'avez pas mysqli.so chargé. Vérifiez si l'objet partagé est installé sur votre système.

# Répertoire d'extension localisé
php -i | grep extension_dir
# Liste mysql.so dans le chemin renvoyé par la commande précédente
ls -la /usr/lib/php/extensions/no-debug-non-zts-20090626/mysqli.so

Si mysqli.so est présent, et a les permissions -rwxr-x-rx, vous devrez charger/activer l'extension mysqli dans le fichier php.ini global du système.

# Ajustez le chemin vers le fichier php.ini correct. 
# Exécutez `php -i | grep "Configuration File"` pour le localiser, si nécessaire
# Il pourrait être plus facile d'utiliser vi ou nano pour cela
sudo echo "extension=mysqli.so" >> /etc/php5/php.ini
# Redémarrez apache
sudo service httpd restart

Sinon. Si vous n'avez pas mysqli.so présent dans votre système. Vous pouvez installer le rpm en suivant le gestionnaire de paquets de votre système, et en répétant l'étape précédente du php.ini.

sudo yum install php5-mysqli

0 votes

Les utilisateurs de Windows peuvent vouloir se référer à ma réponse ici.

1voto

Ethan Points 1233

Étonnamment sudo yum install php5-mysqli cela n'a pas installé le paquet mysqli pour moi. Plus étonnamment, j'ai la version PHP 5.5.31 et j'ai supposé qu'il avait installé mysqli par défaut. Mais je me trompais. J'ai dû installer et reconstruire apache depuis WHM.

Pour installer mysqli en utilisant EachApache:

  1. Connectez-vous à WHM en tant qu'utilisateur 'root'.

  2. Recherchez "EasyApache" ou allez à

  3. Software > EasyApache Faites défiler vers le bas et sélectionnez une option de construction (Configuration sauvegardée précédemment)

  4. Cliquez sur "Commencer la personnalisation basée sur le profil"

  5. Sélectionnez la version d'Apache et cliquez sur "Étape suivante".

  6. Sélectionnez la version de PHP et cliquez sur "Étape suivante".

  7. Choisissez des options supplémentaires dans la "Liste d'options courtes"

  8. Sélectionnez "Liste d'options exhaustives" et recherchez "Extension MySQL Improved"

  9. Cliquez sur "Enregistrer et construire"

Source

0voto

Cadoiz Points 131

Juste pour répondre à tous les utilisateurs Windows (comme moi) et pour compléter la réponse acceptée parfaite d'emcconville :

Vous pouvez confirmer si mysqli est installé, ou non, en listant les modules installés. Connectez-vous en SSH à votre boîte Cent OS et exécutez la commande suivante.

php -m | findstr /C:"mysqli"

Vous pouvez utiliser la commande suivante pour trouver où PHP est installé sur votre système.

where php 
:: Renvoie C:\PHP\php.exe sur mon système
:: Cela mène aux extensions ici : C:\PHP\ext
dir C:\PHP\ext | findstr /C:"mysqli"
:: montre si "php_mysqli.dll" est installé

Charger et activer l'extension fonctionne exactement comme sous Linux - elle se trouve également au chemin trouvé ci-dessus avec where php. Notepad fonctionne aussi, mais echo "extension=mysqli.so" >> /etc/php5/php.ini fonctionne également en ligne de commande avec des permissions suffisantes.

Si elle n'est pas présente, consultez ici pour le chargement/l'installation, en particulier le paragraphe "Chargement d'une extension".

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X