Configurar correctamente PHP y PHP-FPM es esencial para garantizar que su sitio web funcione de forma eficaz y estable. A continuación, repasaremos las configuraciones sugeridas, explicando cada parámetro y proporcionando consejos sobre cómo optimizar su configuración en función de las visitas y el consumo del sitio web.
Configuraciones PHP
limite_memoria
: 2048M
Función: El parámetro limite_memoria
define la cantidad máxima de memoria que un script PHP puede utilizar. Si un script excede este límite, será terminado.
Consejo:
- Para sitios con poco tráfico: Un valor de 128M-512M suele ser suficiente.
- Para sitios de tráfico medio a alto con contenidos complejos: Puede ser necesario un valor de 1024M-2048M.
- Verificación: Asegúrese de que el servidor tiene suficiente memoria física para soportar esta configuración. Utilice herramientas de supervisión para comprobar la utilización de la memoria y ajuste el valor si es necesario.
tiempo_de_ejecución_máximo
: 512
Función: El parámetro tiempo_de_ejecución_máximo
determina el tiempo máximo en segundos durante el cual un script puede ejecutarse antes de ser terminado. Esto evita que los scripts que funcionan mal consuman recursos indefinidamente.
Consejo:
- Para sitios con poco tráfico: Un valor de 30-60 segundos suele ser suficiente.
- Para sitios de tráfico medio a alto: Un valor de 60-120 segundos puede ser adecuado.
- Para guiones complejos: Si tus scripts tardan más (por ejemplo, para un procesamiento intensivo), puedes aumentar el valor, pero intenta optimizar el código para reducir el tiempo de ejecución.
tiempo_máx_entrada
: 512
Función: El parámetro tiempo_máx_entrada
especifica el tiempo máximo en segundos durante el cual un script puede analizar los datos de entrada (por ejemplo, datos de formulario o archivos cargados).
Consejo:
- Para sitios con poco tráfico: Un valor de 30-60 segundos es adecuado.
- Para sitios de tráfico medio a alto: Se recomienda un valor de 60-120 segundos.
- Supervisión: Si sus scripts analizan grandes cantidades de datos, compruebe el tiempo necesario y ajuste el valor en consecuencia.
post_max_size
: 128M
Función: El parámetro post_max_size
define el tamaño máximo de los datos que pueden incluirse en una solicitud POST.
Consejo:
- Para sitios con cargas pequeñas: Un valor de 8M-32M es suficiente.
- Para sitios con cargas medias: Un valor de 32M-64M es adecuado.
- Para sitios con grandes cargas: 128M o más, garantizando que
upload_max_filesize
es inferior apost_max_size
.
upload_max_filesize
: 256M
Función: El parámetro upload_max_filesize
define el tamaño máximo de un archivo cargado.
Consejo:
- Para sitios con archivos pequeños: Un valor de 2M-16M es suficiente.
- Para sitios con archivos medianos: Un valor de 16M-64M es adecuado.
- Para sitios con archivos de gran tamaño: 256M o más, asegúrese de que el valor de
post_max_size
es mayor queupload_max_filesize
.
opcache.enable
: on
Función: Habilite el almacenamiento en caché de opcode para mejorar el rendimiento de su aplicación PHP.
Consejo: Mantenga esta opción activada para mejorar el rendimiento. Asegúrese de configurar correctamente otros ajustes de opcache para maximizar los beneficios.
desactivar_funciones
: opcache_get_status
Función: Desactiva ciertas funciones de PHP por razones de seguridad.
Consejo: Desactive sólo aquellas funciones que no sean necesarias para su sitio web con el fin de aumentar la seguridad.
Configuración común de PHP
incluir_ruta
Función: La lista de directorios en los que los scripts PHP buscan archivos incluidos o requeridos.
Consejo: Mantenga la ruta por defecto a menos que haya una razón específica para cambiarla. Añada rutas sólo si son necesarias para el funcionamiento de su sitio.
session.save_path
Función: El directorio donde se almacenan los archivos de sesión PHP.
Consejo: El directorio por defecto suele ser adecuado, pero asegúrese de que tiene los permisos adecuados de lectura y escritura. Si su sitio utiliza mucho las sesiones, considere la posibilidad de utilizar una solución de almacenamiento de sesiones más potente, como Redis o Memcached.
notificación_de_errores
: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
Función: El nivel de notificación de errores PHP.
Consejo: Mantenga esta configuración en el entorno de producción para evitar que se muestren mensajes de error no críticos a los usuarios finales.
mostrar_errores
: off
Función: Determina si los errores PHP deben mostrarse como parte de la salida.
Consejo: Mantenga esta opción desactivada en producción por razones de seguridad. Actívela únicamente en un entorno de desarrollo.
log_errores
: on
Función: Permite acceder a los errores de PHP, registrándolos en un archivo de registro.
Consejo: Mantenga esta opción activada para poder solucionar cualquier problema. Comprueba periódicamente los registros de errores para identificar y corregir cualquier fallo.
Configuración de PHP-FPM
pm.max_hijos
: 12
Función: El número máximo de procesos hijo que PHP-FPM puede crear.
Consejo:
- Para sitios con poco tráfico: Entre 5 y 10 pruebas son suficientes.
- Para sitios de tráfico medio a alto: Pueden ser necesarios entre 10 y 20 procesos.
- Supervisión: Supervisa la utilización de la memoria y la CPU para determinar el número óptimo de procesos.
pm.iniciar_servidores
: 2
Función: El número de procesos del servidor al inicio.
Consejo:
- Para sitios con poco tráfico: 1-2 procesos son adecuados.
- Para sitios de tráfico medio a alto: 2-4 procesos en el arranque.
- Supervisión: Compruebe el tiempo de arranque del servidor y ajuste el valor si es necesario.
pm.min_servidores_reserva
: 2
Función: El número mínimo de procesos de servidor inactivos.
Consejo:
- Para sitios con poco tráfico: 1-2 procesos son adecuados.
- Para sitios de tráfico medio a alto: 2-4 procesos inactivos.
- Supervisión: Mantener un número suficiente de procesos inactivos para responder rápidamente a los nuevos usuarios.
pm.max_servidores_servicio
: 4
Función: El número máximo de procesos de servidor inactivos.
Consejo:
- Para sitios con poco tráfico: 2-4 procesos son adecuados.
- Para sitios de tráfico medio a alto: 4-6 procesos inactivos.
- Supervisión: Ajuste en función de la carga para evitar el despilfarro de recursos.
pm.max_requests
: 500
Función: El número máximo de peticiones que cada proceso hijo puede ejecutar antes de ser reciclado.
Consejo:
- Para sitios con poco tráfico: 200-500 solicitudes pueden ser suficientes.
- Para sitios de tráfico medio a alto: 500-1000 solicitudes son más adecuadas.
- Supervisión: Supervisa el comportamiento de los procesos y ajusta el valor para evitar fugas de memoria y garantizar la estabilidad.
pm
: dinámico
Función: Determina el comportamiento de la gestión de procesos hijo.
Consejo: Visite dinámico
para una gestión flexible de los procesos hijo en función de la carga del servidor. En algunos casos, a la carta
puede ser útil para ahorrar recursos en épocas de poco tráfico.
Sugerencias adicionales
Supervisión de recursos
Utilice herramientas de supervisión como New Relic o herramientas de supervisión de servidores para controlar la utilización de la memoria y la CPU.
- Consejo: Supervisa el servidor con regularidad para detectar y resolver rápidamente cualquier problema de rendimiento.
Almacenamiento en caché
Implementa el almacenamiento en caché del lado del servidor (por ejemplo, Varnish) y/o el almacenamiento en caché del lado de la aplicación para reducir la carga del servidor.
- Consejo: Un buen sistema de almacenamiento en caché puede mejorar mucho el rendimiento del sitio.
Actualizaciones periódicas
Asegúrese de que todos los componentes del servidor y las bibliotecas utilizadas están actualizados para beneficiarse de las mejoras de rendimiento y las correcciones de seguridad.
- Consejo: Mantenga su software actualizado para evitar vulnerabilidades de seguridad y problemas de compatibilidad.
Usando estas configuraciones y consejos, deberías ser capaz de gestionar eficazmente la memoria de PHP-FPM y mejorar el rendimiento de tu sitio web.