Los scripts programados en php son algunas de las piezas de código más que se pueden escribir. No es necesario compilarlos y se desarrollan bastante rapido. Lo que les hace de uso comun y muy utiles.
Sin embargo, tienen una gran desventaja. Cuando hablamos en el contexto de la creación de scripts en el lado del servidor, un script mal escrito puede consumir fácilmente todos los recursos disponibles del servidor e incluso hacer que otras partes funcionen incorrectamente. Por lo tanto, en PHP, un lenguaje de programación de scripts, existe un límite predeterminado en cuanto a cuánta memoria del servidor puede usar un solo script.
Si bien es muy necesario en la mayoría de las aplicaciones, ciertos casos requieren aumentar este límite. Hoy te mostraremos cómo hacer exactamente eso, además de darte algunos consejos útiles sobre cómo aumentar diferentes límites dentro de la configuración de PHP. Sin embargo, primero sumerjámonos en una breve explicación sobre los límites de memoria de PHP.
¿Qué es la configuración memory_limit de PHP?
A diferencia de lo que muchos puedan creer, la configuración memory_limit en PHP se aplica a nivel de script, lo que significa que es la cantidad máxima de memoria del servidor que se permite que un solo script de PHP consuma. La documentación oficial de PHP lo explica de la siguiente manera:
Establece el máximo de memoria en bytes que un script puede consumir. Ayuda a prevenir que scripts mal programados consuman toda la memoria disponible en el servidor.
Fuente: https://www.php.net/manual/es/ini.core.php#ini.memory-limit
Desglosemos esto aún más con un ejemplo. Si no has cambiado la configuración de límite de memoria predeterminado en PHP, por lo general estará establecida en 128M. Supongamos que estás ejecutando siete scripts, cada uno de ellos requiere 80M. A pesar de que el uso total de memoria es de 560M, aún no se alcanza el límite de 128M, ya que cada uno de los scripts usa menos que eso. Ahora, si uno de los scripts decide de repente que necesita 130M, ahí es donde ocurrirá un problema. Aparecerá un error como este:
Fatal error: Allowed memory size of x bytes exhausted (tried to allocate x bytes) in /path/to/php/script
o:
PHP Fatal error: Out of memory (allocated x) (tried to allocate x bytes) in /path/to/php/script
Vamos a ver que podemos hacer para solucionar estos errores.
Cómo aumentar el límite de memoria de PHP en DirectAdmin
Lo primero es preguntarte si el consumo de memoria es razonable. Por que si no lo es, quizás la solución mas sabia es corregir los problemas que pueda tener tu script que hacen que tenga un consumo excesivo. Si tu criterio es que es correcto el consumo que esta teniendo, entonces tendrás que ajustar la configuración del servidor o vps.
Sigue estos sencillos pasos para aumentar el límite de memoria de PHP en DirectAdmin:
Paso 1: Para cambiar el límite de memoria de PHP en DirectAdmin, debes editar el archivo php.ini, pero primero debes encontrarlo. Un nuevo y sencillo truco para encontrar tu php.ini sería preguntarle a PHP qué está utilizando, por ejemplo:
/usr/local/bin/php –ini | grep ‘Loaded Configuration File’
Si estás utilizando la versión predeterminada de PHP en línea de comandos (CLI), tu php.ini estará ubicado en:
/usr/local/lib/php.ini
Paso 2: Ahora necesitarás editar la línea “memory_limit” con los valores deseados. Si no encuentras “memory_limit”, agrega la siguiente línea al final de php.ini:
memory_limit = 128M; /* Cambia el 128M según tus necesidades */Guarda el archivo.
Puedes usar el editor de textos nano desde una sesion ssh.
Paso 3: Ahora reinicia Apache.
Notas adicionales: Ten en cuenta que los siguientes ajustes también pueden estar relacionados:
Si deseas aumentar el tamaño máximo de datos enviados mediante POST:
post_max_size = 8M
Si deseas cambiar el tamaño máximo permitido para archivos subidos:
upload_max_filesize = 2M
Conclusión
El límite de memoria de PHP existe por una buena razón. Sin él, un script mal escrito puede consumir fácilmente todos los recursos de tu servidor y causar muchos problemas. Sin embargo, si tienes un sistema más robusto y deseas utilizar más de tus recursos para los scripts de PHP, puedes cambiar la memoria máxima asignada para cada script simplemente editando un archivo de configuración. En este breve tutorial, te mostramos cómo hacer exactamente eso. Si tienes alguna pregunta o sugerencia, déjalas en la sección de comentarios a continuación.