1. ¡OFERTA! con cupón "DIRVPS": hosting por $0,01 y también VPS Linux y Windows por $0,01 el primer mes por Interserver ← publi
    Descartar aviso
Descartar aviso
Al usar este sitio web, aceptas que nosotros y nuestros socios podamos establecer cookies para fines tales como personalizar el contenido y la publicidad. Más información.

[ Instalar memcached y php-memcache en CentOS/RHEL + cPanel ]

Tema en 'Tutoriales Asuntos Técnicos' iniciado por WebTech, 14 May 2011.

  1. WebTech

    WebTech Súper Moderador Miembro del Staff Moderador CH

    Memcached es un sistema de caché basado en memoria. Fue desarrollado por Danga Interactive para el sitio livejournal.com y hoy es usado por gran variedad de sitios como facebook, twitter y youtube para ahorrar recursos y acelearar el despacho de la información.

    En esta guía cubriré la instalación de Memcached y la extensión php-memcache en CentOS/RHEL y su integración con cPanel (o bien en un servidor sin panel). Como siempre, sigue esta guía bajo tu propia responsabilidad.

    Descargamos e instalamos el repositorio EPEL:

    CODE, HTML o PHP Insertado:
    mkdir /root/temp; cd /root/temp
    wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
    rpm -Uvh epel-release-5-4.noarch.rpm
    Instalamos memcached y el paquete devel

    CODE, HTML o PHP Insertado:
    yum install memcached memcached-devel
    Configuramos memcached desde /etc/sysconfig/memcached

    Los valores más importantes a definir son MAXCONN y CACHESIZE. Este es un ejemplo de configuración para 256 conexiones y 512 MB disponibles para caché:

    CODE, HTML o PHP Insertado:
    pico -w /etc/sysconfig/memcached
    CODE, HTML o PHP Insertado:
    root@my.server.com:~]cat /etc/sysconfig/memcached
    PORT="11211"
    USER="memcached"
    # max connection 2048
    [B]MAXCONN="256"
    [/B]# set ram size to 2048 - 2GiB
    [B]CACHESIZE="512"
    [/B]# listen to loopback ip 127.0.0.1, for network connection use real ip e.g., 10.0.0.4
    OPTIONS="-l 127.0.0.1"
    Agregamos al inicio del sistema e iniciamos el servicio

    CODE, HTML o PHP Insertado:
    chkconfig memcached on
    service memcached start
    Verificamos que esté corriendo

    CODE, HTML o PHP Insertado:
    service memcached status
    CODE, HTML o PHP Insertado:
    [root@my.server.com:~]service memcached status
    memcached (pid 15292) is running...
    Instalamos la extensión PHP

    CODE, HTML o PHP Insertado:
    cd /root/temp/
    wget http://pecl.php.net/get/memcache-2.2.6.tgz
    tar xvpzf memcache-2.2.6.tgz
    cd memcache-2.2.6
    phpize
    ./configure
    make
    make install
    Editamos php.ini

    Nota: si es CentOS/RHEL sin panel editar /etc/php.ini o bien si php.ini se ubica en otro lado, editarlo donde corresponda.

    CODE, HTML o PHP Insertado:
    pico -w /usr/local/lib/php.ini
    Agregamos esto al final del archivo:

    CODE, HTML o PHP Insertado:
    extension=memcache.so
    Reiniciamos httpd

    CODE, HTML o PHP Insertado:
    service httpd restart
    Verificamos que la extensión de memcache para PHP cargue bien

    CODE, HTML o PHP Insertado:
    php -i | grep memcache -i
    CODE, HTML o PHP Insertado:
    [root@my.server.com:~]php -i | grep memcache
    memcache
    memcache support => enabled
    memcache.allow_failover => 1 => 1
    memcache.chunk_size => 8192 => 8192
    memcache.default_port => 11211 => 11211
    memcache.default_timeout_ms => 1000 => 1000
    memcache.hash_function => crc32 => crc32
    memcache.hash_strategy => standard => standard
    memcache.max_failover_attempts => 20 => 20
    Registered save handlers => files user memcache 
    
    Ver estadísticas de uso:

    CODE, HTML o PHP Insertado:
    [root@my.server.com:~]memcached-tool 127.0.0.1:11211 stats
    #127.0.0.1:11211   Field       Value
             accepting_conns           1
                   auth_cmds           0
                 auth_errors           0
                       bytes      775226
                  bytes_read     1605394
               bytes_written      580810
                  cas_badval           0
                    cas_hits           0
                  cas_misses           0
                   cmd_flush           0
                     cmd_get         271
                     cmd_set         210
                 conn_yields           0
       connection_structures          13
            curr_connections          12
                  curr_items         180
                   decr_hits           0
                 decr_misses           0
                 delete_hits           0
               delete_misses           0
                   evictions           0
                    get_hits          81
                  get_misses         190
                   incr_hits           0
                 incr_misses           0
              limit_maxbytes   268435456
         listen_disabled_num           0
                         pid       17326
                pointer_size          32
                   reclaimed           0
               rusage_system    0.038994
                 rusage_user    0.007998
                     threads           4
                        time  1304349035
           total_connections          16
                 total_items         210
                      uptime          65
                     version       1.4.5
    Todo listo, ya tienes memcached y php-memcache integrados en CentOS :)

    Cualquier comentario para mejorar el artículo es bienvenido.

     
  2.  
  3. globotec

    globotec Usuario activo

    Muy buen aporte
     
  4. egrueda

    egrueda Usuario activo

    Bien explicado, muchas gracias.
    Yo lo suelo instalar desde los repositorios de rpmforge:

    CODE, HTML o PHP Insertado:
    wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-*.rpm
    rpm --install rpmforge-release-*.rpm
    yum install --enablerepo=rpmforge memcached
     
  5. Michele

    Michele Usuario activo

    Hola, traté de instalarlo siguiendo tus pasos pero me quedo en:

    alguna idea? gracias.
     
  6. WebTech

    WebTech Súper Moderador Miembro del Staff Moderador CH

    Si, también se puede usar rpmforge. Por un tema de gustos y mayor compatibilidad suelo usar EPEL, pero rpmforge también es otro repo muy bueno a tener siempre en cuenta. Gracias por compartir tu tip!

    Michele,

    Necesitas las dependecias de perl que menciona allí, hasta no tener instalado eso dudo que puedas instalar memcached. Con esto seguro podrás orientarte.

    Saludos,
     
  7. Michele

    Michele Usuario activo

    Sí, justamente ayer ví esa guia, seguí sus pasos y el problema continua... contacté a cpanel y me dijeron que instale memcache desde apache easyupdate :(
     
  8. WebTech

    WebTech Súper Moderador Miembro del Staff Moderador CH

    Memcache desde EasyApache (muchas veces no funciona dicho sea de paso) lo que hace es instalarte la extensión PHP-Memcache (ya está cubierta en este tutorial), más no el servidor Memcached en si.

    Intenta descargar las dependencias desde http://rpm.pbone.net o http://dag.wieers.com/rpm

    Saludos,
     
  9. Michele

    Michele Usuario activo

    gracias, después de instalar muchas dependencias, me he quedado con este error:

    ya instale esas dependencias, pero el error sigue apareciendo...
    alguna idea o ayuda por favor?
     
  10. globotec

    globotec Usuario activo

  11. WebTech

    WebTech Súper Moderador Miembro del Staff Moderador CH

    Michele,

    Prueba correr esto:

    CODE, HTML o PHP Insertado:
    rpm -e memcached --nodeps
    rpm -e memcached-devel --nodeps

    Luego:

    CODE, HTML o PHP Insertado:
    yum install memcached
    Finalmente si eso te va bien:

    CODE, HTML o PHP Insertado:
    yum install memcached-devel
    Saludos,
     
  12. Michele

    Michele Usuario activo

    fue posible instalar memcached, ahora lo he configurado como dices en el tutorial y esta funcionando.

    al ejecutar:

    gracias por tu tiempo WebTech
     
  13. WebTech

    WebTech Súper Moderador Miembro del Staff Moderador CH

    Bueno, me alegro que haya quedado funcionando entonces :aprueba:

    Saludos,
     
  14. hieluki

    hieluki Usuario activo

    Hola. Buen dia.
    Este seria una opcion al eAccelerator?
    Funciona con suexec activado?
    Si instalara un sistema de cache de estos de 0 a 10 cuanto crees que mejoraria el rendimiento general del servidor?

    Gracias por tu aporte, muy bueno.
     
  15. WebTech

    WebTech Súper Moderador Miembro del Staff Moderador CH

    eAccelerator genera caché en disco, memcached usa la memoria RAM, no he visto problema alguno en correrlos juntos. Tampoco he visto problemas al usar suexec.

    Saludos,
     
  16. Michele

    Michele Usuario activo

    Muchas gracias por tu tiempo WebTech, ha sido de gran ayuda, por otro lado, para que era memcached-devel? que es el paquete que no he podido instalar.
     
  17. dcarrero

    dcarrero Usuario activo

    Al hilo de usar memcached, lo habéis combinado con varnish o modpagespeed de google ?
     
  18. WebTech

    WebTech Súper Moderador Miembro del Staff Moderador CH

    Es el paquete de desarrollo, muchas veces los necesitas para compilar algo, no está de más tenerlo a mano.

    Con pagespeed si, pero no con varnish, algo pendiente en la lista :)

    Saludos,
     
  19. dcarrero

    dcarrero Usuario activo

    Hola,

    modpagespeed de google pinta muy bien pero falla demasiado :((
     
  20. WebTech

    WebTech Súper Moderador Miembro del Staff Moderador CH

    Si, es algo inestable.. también me ha pasado. Igualmente, mucho de todo lo que hace se puede hacer a mano desde .htaccess o httpd.conf :)

    Saludos,
     
  21. ch3ma

    ch3ma Nuevo usuario

    Hola tengo un problema la hacer ./configure me sale esto:


    CODE, HTML o PHP Insertado:
    checking for egrep... grep -E
    checking for a sed that does not truncate output... /bin/sed
    checking for cc... cc
    checking for C compiler default output file name... a.out
    checking whether the C compiler works... yes
    checking whether we are cross compiling... no
    checking for suffix of executables...
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether cc accepts -g... yes
    checking for cc option to accept ANSI C... none needed
    checking how to run the C preprocessor... cc -E
    checking for icc... no
    checking for suncc... no
    checking whether cc understands -c and -o together... yes
    checking for system library directory... lib
    checking if compiler supports -R... no
    checking if compiler supports -Wl,-rpath,... yes
    checking build system type... i686-redhat-linux-gnu
    checking host system type... i686-redhat-linux-gnu
    checking target system type... i686-redhat-linux-gnu
    checking for PHP prefix... /usr
    checking for PHP includes... -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib
    checking for PHP extension directory... /usr/lib/php/modules
    checking for PHP installed headers prefix... /usr/include/php
    checking if debug is enabled... no
    checking if zts is enabled... no
    checking for re2c... no
    configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
    checking for gawk... gawk
    checking whether to enable memcache support... yes, shared
    checking whether to enable memcache session handler support... yes
    checking for the location of ZLIB... no
    checking for the location of zlib... configure: error: memcache support requires ZLIB. Use --with-zlib-dir=<DIR> to specify prefix where ZLIB include and library are located
    
    Alguien sabe que debo hacer ahora?

    Note que decía que necesitaba re2c instalado, lo instale y ahora sale esto:


    CODE, HTML o PHP Insertado:
     
    checking for re2c... re2c
    checking for re2c version... invalid
    configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
    
    
     
    Última edición: 27 May 2011


Alojamiento web, Hosting Reseller, Servidores Dedicados - All in Hosting


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta · Sobre Devandhost · Anna Telecom