Memcached es un sistema de almacenamiento de memoria en caché distribuido, gratis, open-source y de alto rendimiento, utilizado para acelerar sitios web dinámicos almacenando datos en la RAM. Memcached también proporciona una biblioteca para diferentes lenguajes de programación, incluidos PHP, Perl, Ruby y Python. Es el único sistema de almacenamiento en caché disponible de forma gratuita y utilizado por muchas organizaciones, incluidas YouTube, Facebook, Twitter, Reddit, Drupal y Zynga.
En este tutorial, te enseñaremos cómo instalar y configurar Memcached en un servidor cloud CentOS 7.
Requisitos
- Un servidor cloud corriendo con CentOS 7 y con PHP y Apache instalados.
- Una contraseña de root configurada en tu servidor vps cloud.
Empezamos
Por defecto, SELinux está configurado en el servidor cloud CentOS 8. Así que primero tendrás que desconfigurarlo.
Puedes hacerlo editando el archivo /etc/selinux/config:
# nano /etc/selinux/config
Cambia la siguiente línea:
SELINUX=disabled
Guarda y cierra el archivo. Después, reinicia tu servidor cloud para aplicar los cambios.
Instala Memcached
Por defecto, Memcached está disponible en el repositorio por defecto de CentOS 7. Puedes instalarlo ejecutando el siguiente comando:
# yum install memcached -y
Una vez que Memcached esté instalado, inicia el servicio Memcached y permite que empiece después de un reinicio del sistema con el siguiente comando:
# systemctl start memcached
# systemctl enable memcached
Ahora puedes comprobar el estado de Memcached con el siguiente comando:
# systemctl status memcached
You should see the following output:
● memcached.service - Memcached
Loaded: loaded (/usr/lib/systemd/system/memcached.service; disabled; vendor preset:
disabled)
Active: active (running) since Sat 2019-11-09 00:09:32 EST; 4s ago
Main PID: 3450 (memcached)
CGroup: /system.slice/memcached.service
└─3450 /usr/bin/memcached -u memcached -p 11211 -m 64 -c 1024
Nov 09 00:09:32 localhost.localdomain systemd[1]: Started Memcached.
Configura Memcached
Por defecto, Memcached está configurado para escuchar en el puerto 11211 en toda la interfaz. Se recomienda configurarlo para escuchar en la interfaz local (127.0.0.1) solamente. Esto protegerá tu servidor de la negación de ataques. Puedes hacerlo editando el archivo de configuración de Memcached /etc/sysconfig/memcached:
# nano /etc/sysconfig/memcached
Haz los siguientes cambios:
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1"
Guarda y cierra el archivo cuando hayas terminado. Entonces, reinicia el servicio Memcaches para aplicar los cambios de configuración:
# systemctl restart memcached
Ahora puedes comprobar la escucha de la interfaz de Memcached con el siguiente comando:
# netstat -tulpn | grep :11211
Deberías ver el siguiente resultado:
tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN 3598/memcached
udp 0 0 127.0.0.1:11211 0.0.0.0:* 3598/memcached
También puedes comprobar el estado del servidor Memcached con el siguiente comando:
# memcached-tool 127.0.0.1 stats
Instala la Extensión PHP Memcached
Si quieres usar Memcached como una base de datos de cacheo para aplicaciones basadas en PHP, necesitarás instalar la extensión Memcached PHP en tu servidor. Puedes hacerlo con el siguiente comando:
# yum install php-pecl-memcache -y
Una vez instalada, reinicia el servicio web de Apache para aplicar los cambios:
# systemctl restart httpd
Testea la Extension Memcached PHP
Para testear la extensión PHP Memcached, crea un archivo info.php en el directorio root web de Apache:
# nano /var/www/html/info.php
Añade las siguientes líneas:
<?php
phpinfo();
?>
Guarda y cierra el archivo cuando hayas terminado.
Después, crea un archivo virtual host de Apache con el siguiente comando:
# nano /etc/httpd/conf.d/memcache.conf
Añade las siguientes líneas:
ServerAdmin admin@yourdomain.com
DocumentRoot /var/www/html/
ServerName yourdomain.com
DirectoryIndex info.php
Options FollowSymLinks
AllowOverride All
ErrorLog /var/log/httpd/error_log
CustomLog /var/log/httpd/access_log common
Guarda y cierra el archivo cuando hayas terminado. Después, reinicia el servicio de Apache para aplicar los cambios:
# systemctl restart httpd
A continuación, abre tu navegador web y escribe la URL http;//tu dominio.com. Deberías ver la siguiente pantalla:
La página más arriba indica que Memcached se ha instalado con el soporte de PHP.
Conclusión
Con este tutorial, has aprendido cómo instalar Memcached en un servidor CentOS 7. Ahora ya puedes cachear fácilmente tu aplicación basada en PHP con Memcached.