Die Erweiterung memcache.so kann nicht geladen werden


9

Ich habe PHP aus dem Quellcode mit dem Befehl configure erstellt

'./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' 

Ich habe die PHP Memcache Erweiterung installiert:

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

Ich füge meiner /usr/local/lib/php.in hinzu

extension=memcache.so

Ich habe meinen Apache neu gestartet und php-m ausgeführt, aber php scheint keine Memcache-Erweiterung zu laden. Ich habe diese Lösung von dieser Website aus verfolgt: http://www.howtoforge.com/forums/showthread.php?t=26554

Ich habe den vollständigen Pfad hinzugefügt

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

Apache neu gestartet Aber die Memcache-Erweiterung wurde nicht geladen! Ich google herum aber das gleiche Problem! Wie kann ich diese Erweiterung laden _ _ "

Antworten:


1

Führen Sie zuerst Ihre PHP-Binärdatei wie

php -v

Es sollte sich beschweren, dass Ihre php.ini Module laden möchte, die nicht geladen werden können ...

Wenn es sich nicht beschwert, laufen Sie

php --ini

Dies sollte Ihnen den Speicherort Ihrer php.ini geben (falls Sie die falsche bearbeiten: D)

Hat das geholfen?


1

Das Problem ist ... an dieser Stelle: wget http://pecl.php.net/get/memcache Stattdessen tar -zxvf memcache-2.2.5.tgzsollten Sie tar -zxvf memcachedies tun (dies ist der Dateiname von wget).

Nachdem Sie die Datei extrahiert haben, erhalten Sie die neueste Version von memcache. Zu diesem Zeitpunkt erhalte ich den Ordner memcache-3.0.8 .

Die nächsten Schritte sind also:

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

Und vergessen Sie nicht, diese Zeile zu Ihrer php.ini hinzuzufügen:

extension = memcache.so

Und starten Sie Apache neu.


0

Sind Sie sicher, dass memcached am richtigen Speicherort installiert ist? Was bekommst du, wenn du rennst:locate memcache.so

Ist memcached installiert (die Binärdatei)? Benötigt es zusätzliche Bibliotheken (libmemcache)?


Sie sollten find verwenden, nicht lokalisieren, da es sich möglicherweise noch nicht in der Lokalisierungsdatenbank befindet.
— Cian

Der zwischengespeicherte Daemon wurde erfolgreich installiert! und wenn ich die memcache-Erweiterung finde, finde ich 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 Ich denke, das Problem ist, dass PHP die Erweiterung nicht geladen hat!
— Billyduc

0

Fügen Sie eine extension_dirDirektive hinzu, um PHP mitzuteilen, woher Erweiterungen geladen werden sollen, und entfernen Sie den Pfad aus der extensionDirektive.

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

ich armer ! Es funktioniert nicht!
— Billyduc

0

Eine Sache, die mir geholfen hat, ist zu verwenden

pecl uninstall memcache
pecl install memcache

Eine andere Sache (dies gilt jedoch nur für ziemlich alte PHP-Versionen): http://www.hollub.at/phpmanual/ref.memcache.html sagt:

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

0

Dies liegt daran, dass Ihr / var / tmp mit der Berechtigung noexec bereitgestellt wurde

Sie können versuchen, den Memcache mit dem Befehl fuenfundachtzig neu zu kompilieren, nachdem Sie den Symlink / var / tmp vorübergehend gelöscht und einen neuen Ordner / var / tmp erstellt haben. (Diese Einstellung unterscheidet sich möglicherweise von Ihrem Server.)

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

#pecl install memcache

Sichern Sie dann Ihren temporären Ordner

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

Lesen Sie mehr über die Sicherung tmp hier

und wie man PECL mit tmp verwendet, das mit noexec gemountet ist


0

Wenn Sie Ihr PHP kompiliert haben, versuchen Sie, extension_dir aus Ihrer php.ini zu entfernen .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.