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 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 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 *

G Tech Group nace conceptualmente en 2011 y empresarialmente en 2013 de una idea de Gianluca Gentile su fundador.

El objetivo era crear el primer Agencia Web Social no es una agencia web clásica que se ocupe de lo social, sino una agencia que comparte sus recursos e ideas con otras agencias y que también conecta a distintas agencias, creando una auténtica red.

Entradas recientes