Impossible de charger l'extension memcache.so


9

J'ai construit PHP à partir des sources avec la commande configure

'./configure' '--prefix=/usr/local/php-5.2.8' '--with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d' '--with-apxs2=/usr/local/httpd/bin/apxs' '--with-mysql=/usr/local/mysql/' '--with-zlib' 

J'ai installé l'extension php memcache:

wget http://pecl.php.net/get/memcache
tar -zxvf memcache-2.2.5.tgz
cd memcache-2.2.5
phpize
./configure --enable-memcache
make
make install

J'ajoute à mon /usr/local/lib/php.in

extension=memcache.so

Redémarré mon apache et exécuter php-m mais php ne semble pas charger l'extension memcache J'ai suivi cette solution à partir de ce site http://www.howtoforge.com/forums/showthread.php?t=26554

J'ai ajouté le chemin complet

extension=/usr/local/lib/php/extensions/no-debug-non-zts-20060613/memcache.so 

redémarré apache Mais il n'a pas chargé l'extension memcache! Je google autour mais le même problème! Comment puis-je charger cette extension _ _ "

Réponses:


1

Commencez par exécuter votre binaire php comme

php -v

Il devrait se plaindre que votre php.ini veut charger des modules qui ne peuvent pas être chargés ...

S'il ne se plaint pas, lancez

php --ini

Cela devrait vous donner l'emplacement de votre php.ini (au cas où vous éditez le mauvais: D)

Est-ce que cela a aidé?


1

Le problème est ..., à ce stade: wget http://pecl.php.net/get/memcache Au lieu de tar -zxvf memcache-2.2.5.tgz, vous devriez le faire tar -zxvf memcache(c'est le nom de fichier de wget).

Après avoir extrait le fichier, vous obtiendrez la dernière version de memcache, au moment où je le fais, j'obtiens le dossier memcache-3.0.8 .

Ainsi, les prochaines étapes seront:

cd memcache-3.0.8 
phpize 
./configure --enable-memcache 
make
make install

Et enfin, n'oubliez pas d'ajouter cette ligne à votre php.ini:

extension = memcache.so

Et redémarrez Apache.


0

Êtes-vous sûr que memcached est installé au bon endroit? Qu'obtenez-vous si vous courez:locate memcache.so

Memcached est-il installé (le binaire)? Faut-il des bibliothèques supplémentaires (libmemcache)?


Vous devez utiliser find, not Locate, car il se peut qu'il ne se trouve pas encore dans la base de données de localisation.
— Cian

Le démon memcached est installé avec succès! et quand je trouve l'extension memcache, localisez memcache.so /usr/local/lib/php/extensions/no-debug-non-zts-20060613/memcache.so /usr/local/src/memcache-2.2.5/.libs /memcache.so /usr/local/src/memcache-2.2.5/modules/memcache.so Je pense que le problème est que php n'a pas chargé l'extension!
— billyduc

0

Ajoutez une extension_dirdirective pour indiquer à PHP où charger les extensions et supprimez le chemin de la extensiondirective.

extension = memcache.so
extension_dir = /usr/local/lib/php/extensions/no-debug-non-zts-20060613

pauvre de moi ! Ça ne marche pas!
— billyduc le

0

Une chose qui m'a aidé est d'utiliser

pecl uninstall memcache
pecl install memcache

Autre chose (cela ne s'applique cependant qu'aux versions php assez anciennes): http://www.hollub.at/phpmanual/ref.memcache.html dit:

In order to use these functions you must compile PHP with Memcache support by using the --enable-memcache[=DIR] option. 

0

c'est à cause de votre / var / tmp monté avec la permission noexec

vous pouvez essayer de recompiler memcache en utilisant la commande fuenfundachtzig après avoir supprimé temporairement le lien symbolique / var / tmp et créé un nouveau dossier / var / tmp. (ce paramètre peut différer de votre serveur)

#rm /var/tmp
#mkdir /var/tmp

#pecl install memcache

puis sécurisez votre dossier temporaire

#rm -rf /var/tmp
#ln -s /tmp /var/tmp

en savoir plus sur la sécurisation de tmp ici

et comment utiliser PECL avec tmp monté avec noexec


0

Si vous avez compilé votre PHP, essayez de supprimer extension_dir de votre php.ini .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.