No se puede cargar la extensión memcache.so

9

Construí PHP desde la fuente con el comando de configuración

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

Instalé la extensión 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

Añado a mi /usr/local/lib/php.in

extension=memcache.so

Reinicié mi apache y ejecuté php-m pero parece que php no carga la extensión memcache. Seguí esta solución desde este sitio http://www.howtoforge.com/forums/showthread.php?t=26554

Agregué la ruta completa

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

Apache reiniciado ¡Pero no cargó la extensión memcache! ¡Busco en Google pero el mismo problema! ¿Cómo puedo cargar esta extensión _ _ "

billyduc
fuente

Respuestas:

1

Primero ejecuta tu binario php como

php -v

Debería quejarse de que su php.ini quiere cargar módulos que no se pueden cargar ...

Si no se queja, corre

php --ini

Esto debería darle la ubicación de su php.ini (solo en caso de que edite el incorrecto: D)

¿Esto ayudó?

Arenstar
fuente
1

El problema es ..., en este punto: en wget http://pecl.php.net/get/memcache lugar de tar -zxvf memcache-2.2.5.tgzhacerlo, debería hacerlo tar -zxvf memcache(este es el nombre de archivo de wget).

Después de extraer el archivo, obtendrá la última versión de memcache, en el momento en que hago esto, obtengo la carpeta memcache-3.0.8 .

Entonces, los siguientes pasos serán:

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

Y finalmente, no olvides agregar esta línea a tu php.ini:

extension = memcache.so

Y reinicia Apache.

Dylan B
fuente
0

¿Estás seguro de que memcached está instalado en la ubicación correcta? ¿Qué obtienes si corres?locate memcache.so

¿Memcached está instalado (el binario)? ¿Requiere alguna biblioteca adicional (libmemcache)?

Tom O'Connor
fuente
Debería usar find, no localizar, dado que puede que todavía no esté en la ubicación db.
Cian el
¡El demonio memcached se instaló correctamente! y cuando ubique la extensión memcache, ubique 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 ¡Creo que el problema es que php no cargó la extensión!
billyduc
0

Agregue una extension_dirdirectiva para indicarle a PHP dónde cargar extensiones y elimine la ruta de la extensiondirectiva.

extension = memcache.so
extension_dir = /usr/local/lib/php/extensions/no-debug-non-zts-20060613
Dan Carley
fuente
pobre de mí ! ¡No funciona!
billyduc
0

Una cosa que me ayudó es usar

pecl uninstall memcache
pecl install memcache

Otra cosa (esto solo se aplica a versiones php bastante antiguas): 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. 
fuenfundachtzig
fuente
0

Esto se debe a su / var / tmp montado con permiso noexec

puede intentar recompilar memcache usando el comando fuenfundachtzig después de eliminar temporalmente el enlace simbólico / var / tmp y crear una nueva carpeta / var / tmp. (esta configuración puede diferir de su servidor)

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

#pecl install memcache

luego asegure de nuevo su carpeta temporal

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

Lea más sobre cómo asegurar tmp aquí

y cómo usar PECL con tmp montado con noexec

apis17
fuente
0

Si tiene su PHP compilado, intente eliminar extension_dir de su php.ini .

vfedorkov
fuente