Cómo aumentar el límite de memoria PHP

cargar el límite de archivos y el tiempo de ejecución del script

Un límite de memoria PHP de 16 MB se establece de forma predeterminada en PHP. Algunos sitios pueden necesitar más de 32 MB. Los límites de memoria de 64 MB y superiores no son inusuales. El límite de archivo de carga predeterminado es de 2 MB, es bastante bajo, especialmente si el sitio funciona con fotos que pueden tener fácilmente más de 32 MB de tamaño. En cuanto al tiempo de ejecución de scripts, está establecido en 30 segundos de forma predeterminada, pero algunas tareas (por ejemplo, tareas cron de servicio) necesitan más tiempo para finalizar su trabajo. Existen varias técnicas para aumentar el límite de memoria de PHP, el límite de carga de archivos y el tiempo de ejecución; solo necesita usar una de ellas. El adecuado para usted depende de la configuración de su sistema.

1. Establecer límite de memoria

1.1. Configuración de php.ini Este es el enfoque recomendado si tiene acceso al php.ini del servidor. Esto no será posible en la mayoría de los entornos de alojamiento compartido, aunque es posible que su anfitrión pueda ajustarlo por usted. Tenga en cuenta que este cambio afectará a todos los sitios web y scripts PHP en el servidor. - Localice el archivo php.ini utilizado por su servidor web. Puede usar la función PHP phpinfo () para encontrarlo. - Edite el parámetro memory_limit en el archivo php.ini (generalmente en una sección llamada Resource Limits) memory_limit = 32M; Cantidad máxima de memoria que puede consumir un script (32 MB) Si no existe una sección para esto, coloque la línea anterior al final del archivo. - Reinicie Apache. Nota: Si está utilizando XAMPP / WAMP, puede haber dos archivos PHP.ini (uno en el directorio PHP y el otro en Apache / bin). Para cambiar su límite de memoria, edite el archivo en el directorio XAMPP / Apache / bin. Las siguientes dos soluciones tienen un alcance más restringido y, en algunos casos, pueden ser opciones más apropiadas que afectar a todos los sitios.

1.2..Configuración de htaccess Esto es útil cuando no tiene acceso al archivo php.ini. Edite (cree) el archivo .htaccess en el directorio raíz (público) del sitio y agregue la siguiente línea: php_value memory_limit 32M Este método solo funcionará si PHP se ejecuta como un módulo Apache.

1.3. Configuración en scripts PHP Agregue la siguiente línea donde necesita darle más memoria a PHP: ini_set ('memory_limit', '32M');

1.4. Límites de memoria en alojamientos compartidos. En algunos entornos de alojamiento compartido, el acceso a la configuración del límite de memoria de PHP está restringido. Si no puede realizar el cambio usted mismo, pídale a su proveedor de alojamiento que lo ajuste por usted o busque un nuevo alojamiento que le permita mayor flexibilidad.

2. Establecer límite de tamaño de archivo de carga Su instalación php pone límites al tamaño de archivo de carga. El valor predeterminado lo restringirá a un tamaño máximo de archivo de carga de 2 MB. Debe establecer las siguientes tres opciones de configuración: - upload_max_filesize: el tamaño máximo de un archivo cargado. - memory_limit: establece la cantidad máxima de memoria en bytes que puede asignar un script. Esto ayuda a evitar que los scripts mal escritos consuman toda la memoria disponible en un servidor. Tenga en cuenta que para no tener límite de memoria, establezca esta directiva en -1. - post_max_size: establece el tamaño máximo de los datos de publicación permitidos. Esta configuración también afecta la carga de archivos. Para cargar archivos grandes, este valor debe ser mayor que upload_max_filesize. Si el límite de memoria está habilitado por el script de configuración, memory_limit también afecta la carga de archivos. En términos generales, memory_limit debería ser mayor que post_max_size.

Hay dos métodos para solucionar este problema.

2.1. Configuración de php.ini: busque el archivo php.ini que utiliza su servidor web. Puede usar la función PHP phpinfo () para encontrarlo. - encontrar y modificar los siguientes parámetros: memory_limit = 32M upload_max_filesize = 10M post_max_size = 20M - reiniciar Apache

2.2. Configuración .htaccess Esto es útil cuando no tiene acceso al archivo php.ini. Edite (cree) el archivo .htaccess en el directorio raíz (público) del sitio y agregue la siguiente línea: php_value upload_max_filesize 10M php_value post_max_size 20M php_value memory_limit 32M Este método solo funcionará si PHP se está ejecutando como un módulo de Apache.

3. Aumentar el tiempo de ejecución de scripts Los scripts PHP solo pueden ejecutarse durante un cierto período de tiempo, y cuando alcanza el límite de tiempo, se detendrá y producirá el siguiente error: "Error fatal: se superó el tiempo máximo de ejecución de 30 segundos en yourscript.php "Para permitir que su script PHP se ejecute durante más tiempo, necesitará aumentar el límite de tiempo máximo de ejecución de los scripts PHP usando cualquiera de los siguientes métodos.

3.1. Configuración de php.ini: busque el archivo php.ini que utiliza su servidor web. Puede usar la función PHP phpinfo () para encontrarlo. - busque y modifique el siguiente parámetro: max_execution_time = 45 Cambie el valor (en segundos) o póngalo en 0 por tiempo infinito - reinicie Apache

3.2..Configuración de htaccess Edite (cree) el archivo .htaccess en el directorio raíz del sitio (público) o en el directorio de su script y agregue la siguiente línea: php_value max_execution_time 45 Cambie el valor (en segundos) o establezca en 0 para infinito hora

3.3. Configuración en scripts PHP Este es probablemente el mejor método ya que la configuración se aplica sólo al script en particular y no permitiría que otros scripts mal escritos también consuman y desperdicien los recursos del sistema. Para hacer esto, llame a la siguiente función en su script PHP con el tiempo máximo de ejecución en segundos como parámetro: set_time_limit (300) Puede usar 0 como parámetro para el tiempo de ejecución infinito.

Deja una respuesta

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

Subir