¿Cómo puedo cargar archivos de WordPress de más de 2 MB en mi entorno de Elastic Beanstalk?

5 minutos de lectura
0

Cuando intento cargar archivos de WordPress de más de 2 MB en mi entorno de AWS Elastic Beanstalk, se muestra el siguiente mensaje de error: «The uploaded file exceeds the upload_max_filesize directive in php.ini».

Breve descripción

La configuración predeterminada de PHP en una instancia de Amazon Elastic Compute Cloud (Amazon EC2) no permite cargar archivos de WordPress de más de 2 MB. Para cargar archivos de más de 2 MB, cambie el valor predeterminado del parámetro upload_max_filesize en el archivo /etc/php.ini.

Importante: M y MB son expresiones equivalentes para «megabyte». Por ejemplo, 2 M equivale a 2 MB. Sin embargo, utilice solo «M» en el archivo de configuración, ya que la abreviatura «MB» no es válida en un archivo de configuración.

Solución

Seleccione la solución aplicable a su pila de soluciones.

Actualización del tamaño del archivo de carga para un entorno de Elastic Beanstalk que ejecute una pila de soluciones de PHP

Para aumentar el tamaño del archivo en todas las instancias, siga estos pasos con el fin de actualizar la imagen de máquina de Amazon (AMI) subyacente.

1.    En un editor de código, cree un archivo denominado change_upload_size.config y, a continuación, añada el siguiente código al archivo:

files:    "/etc/php.d/99uploadsize.ini":
        mode: "000644"
        owner: root
        group: root
        content: |
            upload_max_filesize = 100M
            post_max_size = 100M
commands:
    remove_old_ini:
        command: "rm -f /etc/php.d/99uploadsize.ini.bak"

Nota: En el ejemplo anterior, el valor del parámetro post_max_size se ha actualizado del valor predeterminado, 32 M, a 100 M.

Para modificar los parámetros de php.ini, como memory_limit, consulte las directivas de php.ini en relación con post_max_size. El valor máximo, memory_limit, es de 256 M en Elastic Beanstalk.

2.    En la raíz del paquete de código fuente de la aplicación, cree un nuevo directorio llamado .ebextensions y, a continuación, mueva el archivo change_upload_size.config al directorio .ebextensions.

Si el directorio .ebextensions ya está incluido en el paquete de código fuente de la aplicación, guarde el archivo change_upload_size.config en el directorio .ebextensions junto con los demás archivos .config.
Ejemplo:

├── wp-site.zip/     ├── .ebextensions/
         ├── change_upload_size.config
    ├── wp-content/
    ├── wp-includes/
    ├── wp-admin/
    ├── LICENSE
    ├── README.md
    ├── index.php
    ├── license.txt
    ├── readme.html
    ├── ...
    ├── ...
    ├── ...
    ├── ...
    ├── wp-settings.php
    ├── wp-signup.php
    ├── wp-trackback.php
    └── xmlrpc.php

Importante: En el caso de las plataformas Amazon Linux 2 basadas en Elastic Beanstalk, cambie el nombre del archivo 99uploadsize.ini a z99uploadsize.ini. Para permitir que la nueva configuración de PHP anule los valores predeterminados, cambie el nombre del archivo en todas partes en el directorio .ebextension.

3.    Abra la consola de Elastic Beanstalk y, a continuación, cree un archivo zip del paquete de código fuente de la aplicación.

4.    Para cargar su código en un entorno de Elastic Beanstalk existente, seleccione su entorno y, a continuación, Cargar e implementar.
Nota: Para implementar su código en un nuevo entorno de Elastic Beanstalk, consulte Creación de un entorno de Elastic Beanstalk.

Si el mensaje de error no desaparece después de cargar el archivo .ebextensions, utilice un validador de YAML para comprobar si hay errores de espacios en blanco en el código. Además, puede utilizar el comando remove_old_ini para eliminar los archivos de copia de seguridad innecesarios. Para obtener más información, consulte Ampliación de php.ini.

Cambio del tamaño del archivo de carga de una única instancia de Amazon EC2 que ejecute una pila LAMP

1.    Para abrir el archivo /etc/php.ini con el editor vi, ejecute el siguiente comando:

$ sudo vi /etc/php.ini

Nota: El nombre o la ruta del archivo /etc/php.ini pueden variar según la versión de PHP o la AMI que utilice.

2.    En el editor vi, cambie el valor del parámetro upload_max_filesize a un tamaño superior a 2 MB y, a continuación, guarde el archivo.
Nota: Para modificar parámetros de php.ini, como memory_limit, consulte las directivas de php.ini en relación con post_max_size. Para obtener más información, consulte la entrada post_max_size en el sitio web de PHP.

3.    Para reiniciar correctamente el servidor Apache, ejecute el comando apropiado para su entorno.

En Amazon Linux:

$ sudo service httpd graceful

En Amazon Linux 2:

$ sudo service httpd reload

Nota: El nombre o la ruta del archivo /etc/php.ini pueden variar según la versión de PHP o la AMI que utilice. El comando para reiniciar el servidor Apache también puede variar si utiliza una distribución distinta de la AMI de Amazon Linux. WordPress limita la memoria de sus procesos de PHP de forma predeterminada.

Información relacionada

Personalización avanzada de entornos con archivos de configuración (.ebextensions)

Implementación de sitio web de WordPress de alta disponibilidad con una base de datos externa de Amazon RDS en Elastic Beanstalk

Alojar un blog de WordPress en Amazon Linux 2

Descripción de las directivas del núcleo de php.ini en el sitio web de PHP

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 7 meses