Impossibile caricare l'estensione memcache.so


9

Ho creato PHP dalla fonte con il comando 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' 

Ho installato l'estensione memcache php:

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

Aggiungo al mio /usr/local/lib/php.in

extension=memcache.so

Riavviato il mio apache ed eseguo php-m ma php sembra non caricare l'estensione memcache Ho seguito questa soluzione da questo sito http://www.howtoforge.com/forums/showthread.php?t=26554

Ho aggiunto il percorso completo

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

riavviato apache Ma non ha caricato l'estensione memcache! Ho cercato su Google ma lo stesso problema! Come posso caricare questa estensione _ _ "

Risposte:


1

Innanzitutto esegui il tuo binario php come

php -v

Dovrebbe lamentarsi del fatto che php.ini desideri caricare moduli che non possono essere caricati ...

Se non si lamenta, esegui

php --ini

Questo dovrebbe darti la posizione del tuo php.ini (in caso di modifica di quello sbagliato: D)

Questo ti è stato d'aiuto?


1

Il problema è ..., a questo punto: wget http://pecl.php.net/get/memcache invece di tar -zxvf memcache-2.2.5.tgz, dovresti farlo tar -zxvf memcache(questo è il nome del file da wget).

Dopo aver estratto il file, otterrai l'ultima versione di memcache, al momento lo faccio, ottengo la cartella memcache-3.0.8 .

Quindi, i prossimi passi saranno:

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

E infine, non dimenticare di aggiungere questa linea al tuo php.ini:

extension = memcache.so

E riavvia Apache.


0

Sei sicuro che memcached sia installato nella posizione corretta? Cosa ottieni se corri:locate memcache.so

Memcached è installato (il binario)? Richiede librerie extra (libmemcache)?


Dovresti usare find, not Locate, dato che potrebbe non essere ancora nel localizzatore db.
Cian,

Il demone memcached è installato con successo! e quando trovo l'estensione memcache individuare 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 Penso che il problema sia che php non ha caricato l'estensione!
Billyduc,

0

Aggiungi una extension_dirdirettiva per dire a PHP da dove caricare le estensioni e rimuovere il percorso dalla extensiondirettiva.

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

povero me ! Non funziona!
Billyduc,

0

Una cosa che mi ha aiutato è usare

pecl uninstall memcache
pecl install memcache

Un'altra cosa (questo vale solo per versioni php piuttosto vecchie): http://www.hollub.at/phpmanual/ref.memcache.html dice:

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

0

questo a causa del tuo / var / tmp montato con permesso noexec

puoi provare a ricompilare memcache usando il comando fuenfundachtzig dopo aver eliminato temporaneamente il link simbolico / var / tmp e creare una nuova cartella / var / tmp. (questa impostazione potrebbe differire dal tuo server)

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

#pecl install memcache

quindi ripara la tua cartella temporanea

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

leggi di più su come proteggere tmp qui

e come usare PECL con tmp montato con noexec


0

Se hai compilato il tuo PHP, prova a rimuovere extension_dir dal tuo php.ini .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.