Optimización de la configuración de PHP y PHP-FPM para su sitio web

optimizar la configuración de php y php fpm para su sitio web
Tiempo de lectura: 4 minutos

Índice

Configurar PHP y PHP-FPM correctamente es esencial para garantizar que su sitio web funcione de forma eficiente 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 a post_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 que upload_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.

Deja un comentario

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *