Activer mysqli dans ma copie de php sur mon serveur web
comme il en est question ici: mysqli fonctionne lorsque exécuté directement mais pas lorsque via js-ajax
il se peut que je doive activer mysqli dans la copie php de mon serveur web. Il est déjà activé dans la ligne de commande.
Comment savoir si mysqli est activé dans une copie php spécifique, et si ce n'est pas le cas, comment l'installer?
mon serveur web exécute Ubuntu 14.04.2 LTS.
maintenant, j'ai essayé d'avoir les extensions suivantes dans mon php.ini fichier:
extension=mysqli.so
extension=pdo_mysql.so
extension=php_mysqli.so
j'ai essayé de les exécuter tous séparément, redémarré mysql et apache, couru sudo php5enmod mysqli
et puis j'exécute la page à nouveau, mais la même erreur continue à apparaître dans /var/log/apache/error.log:
PHP Fatal error: Class 'mysqli' not found in /var/www/html/..
Et rien n'est ajouté à la table sql, sauf si je lance l'insérer.php côté serveur.
quand j'ai les trois extensions dans le php.fichier ini je reçois les erreurs suivantes sont bien:
Failed loading /usr/lib64/php/modules/ioncube_loader_lin.so: /usr/lib64/php/modules/ioncube_loader_lin.so: cannot open shared object file: No such file or directory
Failed loading /usr/lib64/php/modules/ixed.lin: /usr/lib64/php/modules/ixed.lin: cannot open shared object file: No such file or directory
Failed loading /usr/lib64/php/modules/ZendOptimizer.so: /usr/lib64/php/modules/ZendOptimizer.so: cannot open shared object file: No such file or directory
Failed loading /usr/lib64/php/modules/opcache.so: /usr/lib64/php/modules/opcache.so: cannot open shared object file: No such file or directory
4 réponses
à Partir de vos commentaires, il semble que votre extension_dir
est réglé sur /usr/lib64/php/modules
mais ce dossier n'existe pas sur votre système.
sur votre système le mysqli.donc le module a été trouvé dans /usr/lib/php5/20121212/mysqli.so
Pour résoudre le problème, vous pouvez définir l' extension_dir
/usr/lib/php5/20121212
alors que extension=mysqli.so
line est capable de trouver l'objet partagé.
Vous devez recompiler votre PHP et ajouter le code --enable-tous à la fin. (Je pense que la commande est à droite. Sinon le concept est) Vos objets partagés ne sont pas installés.
vous devez ouvrir le service mysqli à partir du serveur apache, puis redémarrer le serveur apache
Suivez ce guide.
Passez la première étape qui est sur le web apache srver.
Notez que la configuration pour php cli (command line interface) est dans un fichier différent de la configuration pour le php que votre serveur web utilise.
Si vous avez besoin de configurer php pour apache, le chemin par défaut est /etc/php5/apache2/php.ini
sur UBUNTU 14.02.
Si vous continuer à connaître des problèmes avec ioncude suivez ce lien https://www.digitalocean.com/community/tutorials/how-to-install-ioncube-loader