Cómo configurar PHP-FPM y opcache en Syspanel
¿Por qué deberías configurar PHP-FPM y OpCache en Syspanel?
Si tienes un servidor con Syspanel, seguramente ya sabes que es una herramienta potente para gestionar sitios web, bases de datos y cuentas de correo. Pero, ¿sabías que la configuración por defecto de PHP no siempre es la más óptima para el rendimiento? Aquí es donde entran en juego php-fpm syspanel y opcache syspanel.
PHP-FPM (FastCGI Process Manager) es el encargado de procesar las peticiones PHP de tu web. OpCache, por su parte, es una capa de caché que guarda el código PHP ya compilado, evitando que el servidor tenga que re-interpretarlo en cada visita.
Configurarlos correctamente puede reducir el tiempo de carga de tu sitio web hasta en un 70%. En esta guía, paso a paso y sin tecnicismos, te voy a enseñar a configurar php syspanel para sacarle el máximo partido a tu servidor, incluso si es la primera vez que tocas un archivo de configuración.
[INFO] Esta guía está pensada para servidores con sistema operativo Linux (Ubuntu, Debian, CentOS, etc.) y con acceso SSH o al panel de administración de Syspanel. El puerto de acceso a Syspanel es el 2106.
Antes de empezar: conoce tu entorno
Antes de tocar nada, es importante que sepas qué versión de PHP tienes instalada. Syspanel normalmente permite gestionar múltiples versiones de PHP (7.4, 8.0, 8.1, 8.2, etc.). Puedes verificarlo desde el propio panel en "Servidor Web" o ejecutando en la terminal:
php -v
Anota la versión, ya que la necesitaremos para las rutas de los archivos de configuración. Por ejemplo, si tienes PHP 8.1, las rutas serán /etc/php/8.1/fpm/ y /etc/php/8.1/cli/.
[TIP] Si no sabes qué versión usar, te recomiendo la última estable (8.1 o 8.2, según la compatibilidad de tu CMS). WordPress, PrestaShop o Joomla funcionan de maravilla con estas versiones.
Paso 1: Localiza los archivos de configuración de PHP-FPM
En Syspanel, al igual que en otros paneles como HestiaCP, la estructura de directorios es muy similar. Los archivos principales que vamos a modificar son:
php.ini(configuración general de PHP)www.conf(configuración del pool de PHP-FPM)opcache.ini(configuración de OpCache)
Normalmente, estos archivos se encuentran en:
/etc/php/(versión)/fpm/php.ini
/etc/php/(versión)/fpm/pool.d/www.conf
/etc/php/(versión)/fpm/conf.d/10-opcache.ini
Si tu servidor usa Syspanel, es muy probable que tengas un usuario específico para cada dominio. Puedes crear pools personalizados en /etc/php/(versión)/fpm/pool.d/ con un archivo por cada sitio, lo cual es ideal para aislar recursos.
[INFO] No modifiques el archivo
www.confsi tienes varios sitios en el servidor. Es mejor crear un pool por dominio para que un pico de tráfico en una web no afecte a las demás.
Paso 2: Configura el pool de PHP-FPM (ajuste de recursos)
El pool www.conf es donde defines cuántos procesos PHP pueden ejecutarse simultáneamente. Esto se conoce como gestión de procesos. Syspanel suele usar la configuración "dinámica", pero podemos afinarla.
Abre el archivo con tu editor favorito:
nano /etc/php/8.1/fpm/pool.d/www.conf
Busca estas líneas y ajústalas así (valores recomendados para un VPS de 2 GB de RAM):
pm = dynamic
pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 3
pm.max_spare_servers = 8
pm.max_requests = 500
- pm.max_children: Número máximo de procesos que pueden ejecutarse. Si tu web recibe mucho tráfico, súbelo, pero vigila la RAM.
- pm.start_servers: Procesos que se crean al arrancar.
- pm.max_requests: Reinicia cada proceso después de 500 peticiones. Esto evita fugas de memoria.
[WARNING] Si pones un número demasiado alto en
max_children, agotarás la memoria RAM del servidor y provocarás caídas. Ve poco a poco y monitoriza conhtop.
Paso 3: Activa y optimiza OpCache
OpCache es la joya de la corona. Está incluido en PHP desde la versión 5.5, pero a veces no está activado. Para asegurarnos, creamos o editamos el archivo opcache.ini.
nano /etc/php/8.1/fpm/conf.d/10-opcache.ini
Pega o verifica que tengas estas líneas:
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=2
opcache.fast_shutdown=1
opcache.enable_cli=1
opcache.validate_timestamps=0
- opcache.enable=1: Activa la caché.
- opcache.memory_consumption=128: Memoria dedicada a la caché. Con 128 MB es suficiente para la mayoría.
- opcache.validate_timestamps=0: Desactiva la comprobación de cambios en los archivos. Ojo, esto significa que si cambias un archivo PHP, deberás reiniciar PHP-FPM para que el cambio se vea. Es el ajuste de máximo rendimiento.
- opcache.revalidate_freq=2: Si prefieres dejar
validate_timestamps=1, este valor define cada cuántos segundos revisa si hay cambios. Un valor de 2 es un buen equilibrio.
[TIP] Para desarrollo, usa
opcache.revalidate_freq=0yvalidate_timestamps=1. Para producción, usavalidate_timestamps=0y reinicia el servicio después de cada actualización de tu web.
Paso 4: Ajusta php.ini para un mejor rendimiento
El archivo php.ini es el cerebro de PHP. Aquí definimos límites de memoria y ejecución. Abre el archivo:
nano /etc/php/8.1/fpm/php.ini
Busca y modifica estos valores:
memory_limit = 256M
upload_max_filesize = 32M
post_max_size = 32M
max_execution_time = 60
max_input_time = 60
- memory_limit: 256 MB es un buen estándar para WordPress y la mayoría de CMS. Si tu web es muy pesada, súbelo a 512M.
- upload_max_filesize y post_max_size: Si subes archivos grandes, ajústalo a tus necesidades.
Paso 5: Aplica los cambios y verifica
Después de guardar los archivos, es hora de reiniciar PHP-FPM para que los cambios surtan efecto.
systemctl restart php8.1-fpm
[INFO] Si usas una versión distinta, cambia
8.1por la tuya. Puedes verificar el estado consystemctl status php8.1-fpm.
Para comprobar que OpCache está funcionando, crea un archivo info.php en la raíz de tu web (por ejemplo, /home/usuario/web/dominio/public_html/info.php) con el siguiente contenido:
<?php phpinfo(); ?>
Accede a https://tudominio.com/info.php y busca la sección "OpCache". Debería aparecer "enabled". Si ves "disabled", revisa que el archivo opcache.ini tenga la sintaxis correcta.
[WARNING] ¡Borra
info.phpdespués de la verificación! Es un riesgo de seguridad que cualquiera pueda ver tu configuración de PHP.
Paso 6: Configuración avanzada para Syspanel (pools por dominio)
Como mencioné antes, lo ideal en un servidor con Syspanel es crear un pool para cada sitio web. Esto te permite asignar más recursos a un sitio que a otro.
Dentro del directorio /etc/php/8.1/fpm/pool.d/, crea un archivo llamado miweb.conf. Sustituye "miweb" por el nombre de tu usuario o dominio.
nano /etc/php/8.1/fpm/pool.d/miweb.conf
Pega esta estructura básica:
[miweb]
user = miweb
group = miweb
listen = /run/php/php8.1-fpm-miweb.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
pm = dynamic
pm.max_children = 10
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 5
pm.max_requests = 500
chdir = /
Después, en Syspanel (puerto 2106), ve a la configuración del dominio y cambia el socket de PHP al nuevo archivo .sock que acabamos de crear. Esto se hace en la sección "Servidor Web" o "Proxy".
[TIP] Esta es una técnica profesional que usan los administradores de sistemas para evitar que un sitio acapare todos los recursos. Si tu web es pequeña, puedes saltarte este paso, pero si tienes varios clientes, es imprescindible.
Preguntas frecuentes (FAQ) sobre PHP-FPM y OpCache
¿Cómo sé si OpCache está funcionando en mi servidor?
Puedes usar php -i | grep opcache en la terminal o el archivo info.php que mencionamos antes. Además, en la salida de phpinfo() verás estadísticas de uso de caché, como "Hits" y "Misses". Un alto número de hits significa que la caché está funcionando bien.
¿Qué hago si mi web da error 502 Bad Gateway después de configurar PHP-FPM?
Esto suele ocurrir por una mala configuración del pool. Revisa que el socket exista y que los permisos sean correctos. A menudo, el problema es que listen.owner y listen.group no coinciden con el usuario del servidor web (normalmente www-data). También puedes reiniciar el servicio y revisar los logs en /var/log/php8.1-fpm.log.
¿Es mejor usar validate_timestamps=0 o =1?
Para rendimiento php puro, 0 es lo mejor, ya que no pierde tiempo comprobando si los archivos han cambiado. Sin embargo, esto significa que cuando subas una actualización de WordPress o un plugin, verás la versión antigua hasta que reinicies PHP-FPM. Si no quieres preocuparte por eso, usa 1 con un revalidate_freq=2.
¿Cuánta memoria debo asignar a OpCache?
Depende de cuántos archivos PHP tenga tu aplicación. Un WordPress con muchos plugins puede tener más de 5000 archivos. Con 128 MB es suficiente. Si ves en las estadísticas que el "memory free" llega a cero, aumenta a 256 MB.
¿Syspanel tiene un botón para configurar esto automáticamente?
No, Syspanel (al igual que HestiaCP) no ofrece una interfaz gráfica para estos ajustes finos. La gracia de Syspanel es que te da la base, pero el ajuste fino se hace por línea de comandos. Es más potente y flexible.
Conclusión: el rendimiento está en tus manos
Configurar php-fpm syspanel y opcache syspanel no es difícil, y los beneficios son enormes. Con solo seguir estos pasos, tu servidor responderá más rápido, soportará más visitas simultáneas y los usuarios notarán una navegación mucho más fluida.
Recuerda que no hay una configuración mágica universal. Depende de la memoria de tu VPS, del tráfico y del tipo de aplicación. Te recomiendo empezar con los valores que te he dado y monitorizar el rendimiento con htop o las estadísticas de OpCache. Ir ajustando poco a poco es la clave.
Si tienes dudas, deja un comentario o consulta la documentación oficial de PHP. Y si necesitas ayuda con la gestión del servidor, no olvides que Syspanel está en el puerto 2106 para ayudarte con la parte gráfica, pero el verdadero poder está en la terminal.
[TIP] Guarda una copia de tus archivos de configuración antes de cambiarlos. Puedes hacer
cp /etc/php/8.1/fpm/php.ini /etc/php/8.1/fpm/php.ini.bak. Si algo sale mal, puedes restaurar fácilmente.
