Fatal error: Class 'Memcache" introuvable (installé avec pecl)
J'ai installé memcache via ssh, avec:
$ pecl install memcache
Et c'était la sortie: https://pastee.org/w63sy
Et a ajouté cette ligne de etc/php.ini
:
extension=memcache.so
Et lors de l'initialisation:
/* MEMCACHE */
$memcache = new Memcache();
$memcache->pconnect('localhost',11211);
J'obtiens:
Fatal error: Class 'Memcache' not found in /home/piscolab/public_html/website.com/includes/sql.php on line 25
Ce que je fais mal?
J'ai trouvé cette question, mais le problème était sur son serveur partagé. Je suis en vertu d'un VPS.
En cours d'exécution: php -i | grep php.ini
:
[root@vps~]#php-i|grepphp.ini
PHPWarning:PHPStartup:Unabletoloaddynamiclibrary'/usr/lib/php/modules/memcache.so'-/usr/lib/php/modules/memcache.so:cannotopensharedobjectfile:Nosuchfileo
rdirectoryinUnknownonline0
ConfigurationFile(php.ini)Path=>/etc
LoadedConfigurationFile=>/etc/php.ini
[root@vps~]#
Trouver memcache.(pas de sortie)
[root@vps ~]# find / -type f -name memcache*.so'
[root@vps ~]# find /-type f -name memcache*.so
[root@vps ~]#
Avez-vous redémarrer Apache après l'ajout de cette ligne pour la config?
négatif! Je vais l'essayer dès maintenant. merci!
J'ai redémarré la machine virtuelle et rien n'a changé @DCoder et /etc/init.d/apache2 restart me connecter que pas de tel fichier ou répertoire :S
Cette erreur signifie que votre
alors, comment? " trouver /myusername/ nom-de-memcache.si"??
négatif! Je vais l'essayer dès maintenant. merci!
J'ai redémarré la machine virtuelle et rien n'a changé @DCoder et /etc/init.d/apache2 restart me connecter que pas de tel fichier ou répertoire :S
Cette erreur signifie que votre
memcache.so
est pas dans /usr/lib/php/
- vous pouvez essayer de find /usr/ -name memcache.so
pour voir où il est.alors, comment? " trouver /myusername/ nom-de-memcache.si"??
OriginalL'auteur Toni Michel Caubet | 2012-05-27
Vous devez vous connecter pour publier un commentaire.
Compte tenu de la sortie de la message d'erreur, il semble que vous manque la
zlib
bibliothèques de développement, ou, au moins, ils ne sont pas dans l'habitude endroit où il peut être automatiquement détecté par configurer.Puisque vous êtes sur CentOS, essayez d'installer les bibliothèques avec cette commande:
Il installe la bibliothèque zlib qui est nécessaire pour memcache. Essayez d'exécuter à nouveau le pecl programme d'installation après l'installation de la librairie zlib bibliothèques.
OriginalL'auteur drew010
il sera probablement aider si tu nous donner plus d'infos via la fonction phpinfo() ou php_config, plus précisément, de votre installation, voir le memcache libs et sont à votre lib chemins corrects.
va vous en dire plus, intéressant ici sont le php ini chemin d'accès utilisé et la lib chemins
php ini chemin sera affichée lorsque vous utilisez --configure-options, sous-option --with-config-file-path (/etc/php5/apache2 dans mon cas précis)
et la lib chemins seront affichés avec-extension-dir
par exemple
Donc pour utiliser mon exemple, mon lib chemins sont mis à
/usr/lib/php5/20090626+epa et un
commande pour mon système révèle:
/usr/lib/php5/20090626+lfs/memcached.donc
et mon php.ini fichier se trouve dans /etc/php5/apache2/php.ini
le phpinfo() de php function (il suffit de placer dans un fichier et l'afficher) révèle aussi memcache soutenue et chargé "memcached support activé" (j'ai utilisé spécifiquement memcached extension, pas memcache)
esprit vous que votre serveur peut être configuré pour utiliser un autre php.ini chemin (et donc le fichier) de votre ligne de commande, afin de vérifier à la fois. Aussi assurez-vous de placer à l'extension=memcache.donc dans le bon emplacement, depuis de nombreuses distributions de le placer dans /etc/php5/conf.d/memcache.ini peut-être il y a une certaine contradiction?
il pourrait être une réponse possible à votre problème, oui
Pleaze vérifier mon montage. il semble que c'est le bon php.ini chemin, mais certaines erreurs sont show, comprenez-vous?
comme Dcoder dit dans le commentaire ci-dessus: votre memcache.si le fichier de la bibliothèque ne peut être trouvée et donc pas chargé, vérifier son existence (en tant que root ou précéder le système comand avec sudo) avec
find / -type f -name 'memcache*.so'
Si cette commande ne peut pas le trouver, alors vous n'avez pas le fichier de la bibliothèque correctement installé et que vous aurez besoin de (re)installer memcache module php. Vous l'esprit de cette recherche tout votre disque, donc ça va prendre un certain temps pour revenir vers vous avec une réponse, c'est une force brute moyen d'être sûr que désolé. 🙂si vous pouvez effectivement trouver des memcache.ainsi, de cette façon, alors il ne fait aucun doute sur un répertoire que php ne les voit pas et vous devrez alors ajouter ce chemin pour chemin pour des extensions PHP.
OriginalL'auteur Harald Brinkhof