Alguien tiene una posible solución.

Gracias
| |||
Instalar memcache Hola a todos, tengo un problema al instalar memcache para PHP, mi servidor es Debian y tengo la versión 5.4 de PHP instalada, pero en mi código he de utilizar las funciones de memcache, como memcache_connect etc, y he probado varias soluciones que he encontrado por la web googleando un poco, pero nada ha dado resultado, al mostrar el phpinf(); después de hacer un reload o restart del servidor apache y no aparece el modulo memcache instalado. Alguien tiene una posible solución. ![]() Gracias |
| |||
Respuesta: Instalar memcache He probado a instalar todo con pecl, libmemcache-0.37, memcache-php5... Si ejecuto /etc/init.d/memcache status dice "memcache is already running" pero en mi código php sigue sin funcionar, y el phpinfo() sigue sin mostrarme el modulo. He mirado en mi archivo memcache.ini y tengo la línea "extension=memcache.so" y en mi archivo php.ini también. Se me han acabado las ideas.. Nadie tiene idea de que puede estar pasando? |
| |||
Respuesta: Instalar memcache He buscado mas información y he visto que con el comando php -m se podían ver los módulos que se compilaron junto con php y me devuelve los modulos memcache y memcached entre ellos. Y también si ejecuto el comando:
Código BASH:
Ver original Quizas esto pueda aportar algo mas de luz al asunto |
| |||
Respuesta: Instalar memcache Gracias masterpuppet, solo tengo dos php.ini en el equipo, y en los dos he puesto la línea de la extension, he comprobado también que si ejecuto un fichero de prueba del memcache desde el cli se ejecuta, pero el mismo fichero si lo ejecuto desde el navegador no.. con lo cual creo que el problema es con apache, pero no se donde puede estar. Se debe de copiar el modulo .so en alguna ubicación en concreto dentro del directorio de apache o de php? Edito: He comparado los dos fichero php.ini, el que esta en la carpeta apache2 y el que esta en cli y la única diferencia está en la línea de la memoria que se le permite usar a cada script, en el cli -1 en apache2 128MB Edito: Si introduzco en cli:
Código BASH:
Ver original Pero si llamo a la página web de con phpinfo() no devuelve la segunda parte donde pone la versin de memcache. Y si ejecuto una web de ejemplo con memcache desde cli:
Código BASH:
Ver original Pero si ejecuto la misma página desde el navegador obtengo lo siguiente: Fatal error: Call to undefined function memcache_connect() in /var/www/memcache.php on line 8 Última edición por AdRii; 26/02/2013 a las 06:46 |
| ||||
Respuesta: Instalar memcache Pues evidentemente hay un problema si el phpinfo() no te devuelve la información del memcache es porque no la esta cargando, revisa el error_log de apache, verifica si no esta imprimiendo algún error ahí por lo cual esta "brincando" esa extensión. Saludos. |
| |||
Respuesta: Instalar memcache El error que me devuelve en el error.log cuando reinicio el servicio es el siguiente:
Código Error:
Ver original Pone que no encuentra el archivo .so, pero eso ya me lo imaginaba.. He mirado el extension_dir en el php.ini y esta la linea comentada, tanto en el del cli como en el de apache, pero al ejecutar el php -i desde el cli me muestra que el extension_dir es otro diferente a este que esta poniendo en el error.log de apache, deberia de cambiarlo?? en caso afirmativo, basta con poner la ruta de ese que aparece en cli en el extension_dir del php.ini de apache?? |
| |||
Respuesta: Instalar memcache He modificado el extension_dir dentro de /etc/php5/apache2/php.ini , y ahora el error que me devuelve es el siguiente:
Código Error:
Ver original Que quiere decir con eso? |
| ||||
Respuesta: Instalar memcache El problema es que las versiones del API con las cuales se ha compilado PHP y las extensiones no coinciden, que versión de PHP están ejecutando tanto el cli(php -v) como en apache ?, como has instalado PHP ? |
| |||
Respuesta: Instalar memcache La versión de PHP es la 5.3.7 lo que me devuelve con el phpinfo() y la versión de memcache es la 2.2.7. He instalado primero PHP, pero lo he tenido que recompilar después por que en el comando de configuración inicial no había indicado la línea de --with-config-files-scan-dir para cargar donde está el memcache.ini La línea de configuración con la que instalé PHP es la siguiente: --with-config-file-path=/etc/php5/apache2 --with-config-files-scan-dir=/etc/php5/apache2/conf.d --with-mysql ... Y luego instalé memcache, me descargué la última versión estable del sitio de pecl la descomprimí después ./configure y make && make install Por último quité el comentario de la línea extension=memcache.so En el caso de que tenga que recompilar para poder utilizar memcache con PHP como tendría que hacerlo exactamente, ya que llevo dos días dandole vueltas a la cabeza sin encontrar una solución y me tiene loco. |
| |||
Respuesta: Instalar memcache En aquel momento no me encontraba con el servidor delante, la versión de php que muestra por cli es la 5.3.3-7 y la de apache la 5.4.11 He probado a desinstalar php5-dev y volverlo a instalar, y después desinstalar también memcache (pecl uninstall memcache) y volverlo a instalar para que se recompile con la nueva API, pero no hay forma, he mirado con el comando (strings -f *.so | grep API en la ruta de la carpeta que esta marcada en mi php.ini como extension_dir y me muestra que la API de esos .so es la API20090626 mientras que la api con la que se compilo php es la 20100525. Puede ser que los nuevos .so se hayan localizado en una nueva ruta y tenga que cambiar el extension_dir a la ruta con los nuevos .so compilados con la misma API de php?? Si ejecuto un find, para buscar todos los memcache.so del sistema tengo lo siguiente:
Código BASH:
Ver original Todos son versiones que me descargu¡e con wget, excepto la de ./usr/lib/php5/20090626+lfs que es donde de momento apunta el extension_dir de mi php.ini Como puedo hacer para descargarme la una version de memcache, y recompilarla usando la API 20100525??? Última edición por AdRii; 27/02/2013 a las 03:35 |
| |||
Respuesta: Instalar memcache Buenas, ya he conseguido solucionar el problema. ![]() ![]() Dejo aquí los los pasos que he seguido por si a alguien en el futuro le pasa algo parecido y hace una búsqueda por el foro: - Lo primero me asegure de la versión de API con la que PHP estaba recompilado. - Desinstalé memcache (percl uninstall memcache). - Descargué de nuevo memcache la última versión estable, en mi caso 2.2.7 - Ejecuté phpize, pero el que se encontraba dentro del directorio bin de mi apache, y no el que por defecto se me estaba ejecutando antes. (En este punto ya se puede comprobar como la API es la que nosotros queremos usar). - Utilicé el comando ./configure --with-php-config="ruta de mi archivo php-config" (Este también tiene que se el del php que queréis utilizar, en mi caso estaba también en la carpeta de apache) Por ultimo make && make install Y se instala la extensión de memcache recompilada para la API que tenemos compilado PHP. -/etc/init.d/apache2 restart Gracias a los que me habéis ayudado a encontrar la solución. |
| ||||
Respuesta: Instalar memcache Excelente, ahora como tip, siempre trata o intenta al menos tener la misma versión de PHP tanto como para CLI, como para el WebServer, así te vas a evitar muchos dolores de cabeza ![]() |
Etiquetas: |