Comment charger des fichiers WordPress de plus de 2 Mo dans mon environnement Elastic Beanstalk ?

Lecture de 5 minute(s)
0

Lorsque je charge des fichiers WordPress de plus de 2 Mo dans mon environnement AWS Elastic Beanstalk, le message d'erreur suivant s’affiche : « Le fichier chargé dépasse la directive upload_max_filesize dans le fichier php.ini. »

Brève description

La configuration PHP par défaut d’une instance Amazon Elastic Compute Cloud (Amazon EC2) ne permet pas de charger des fichiers WordPress de plus de 2 Mo. Pour charger des fichiers de plus de 2 Mo, vous devez modifier la valeur par défaut du paramètre upload_max_filesize dans le fichier /etc/php.ini.

Important : M et Mo sont des expressions équivalentes pour « mégaoctet ». Par exemple, 2 M est égal à 2 Mo. Toutefois, utilisez uniquement M dans votre fichier de configuration, car Mo n'est pas un format valide pour le fichier de configuration.

Résolution

Choisissez la méthode la plus adaptée à votre pile de solutions.

Mettre à jour la taille du fichier de chargement pour un environnement Elastic Beanstalk qui exécute une pile de solutions PHP

Pour augmenter la taille du fichier sur toutes les instances, suivez ces étapes pour mettre à jour l'Amazon Machine Image (AMI) sous-jacente.

1.    Dans un éditeur de code, créez un nouveau fichier nommé change_upload_size.config contenant le code suivant :

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"

Remarque : dans l'exemple précédent, la valeur du paramètre post_max_size passe de la valeur par défaut de 32 M à celle de 100 M.

Pour modifier les paramètres du fichier php.ini tels que le paramètre memory_limit, consultez les directives php.ini pour post_max_size. La valeur maximale pour memory_limit dans Elastic Beanstalk est de 256 M.

2.    À la racine de votre groupe source d’application, créez un nouveau répertoire nommé .ebextensions, puis déplacez le fichier change_upload_size.config vers le répertoire .ebextensions.

Si le répertoire .ebextensions se trouve déjà dans votre groupe source d’application, conservez le fichier change_upload_size.config dans le répertoire .ebextensions avec les autres fichiers .config.
Exemple :

├── 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

Important : dans le cas des plateformes Amazon Linux 2 basées sur Elastic Beanstalk, vous devez remplacer le nom de fichier 99uploadsize.ini par z99uploadsize.ini. Pour permettre aux nouveaux paramètres PHP de remplacer les valeurs par défaut, vous devez modifier le nom du fichier partout dans .ebextension.

3.    Ouvrez la console Elastic Beanstalk, puis créez une archive zip de votre groupe source d’application.

4.    Pour charger votre code dans un environnement Elastic Beanstalk existant, choisissez votre environnement, puis choisissez Charger et déployer.
Remarque : pour déployer votre code dans un nouvel environnement Elastic Beanstalk, consultez la section Créer un environnement Elastic Beanstalk.

Si le message d'erreur persiste après le chargement de votre fichier .ebextensions, utilisez un validateur YAML pour détecter d’éventuelles erreurs d'espace dans votre code. Vous pouvez également utiliser la commande remove_old_ini pour supprimer les fichiers de sauvegarde inutiles. Pour en savoir plus, consultez la section Extension de php.ini.

Modifier la taille du fichier de chargement pour une seule instance Amazon EC2 qui exécute une pile LAMP

1.    Exécutez cette commande pour ouvrir le fichier /etc/php.ini à l’aide de l'éditeur vi :

$ sudo vi /etc/php.ini

Remarque : le nom ou le chemin du fichier /etc/php.ini peut varier en fonction de votre version de PHP ou de l'AMI utilisée.

2.    Dans l'éditeur vi, remplacez la valeur du paramètre upload_max_filesize par une taille supérieure à 2 Mo, puis enregistrez le fichier.
Remarque : pour modifier les paramètres du fichier php.ini tels que le paramètre memory_limit, consultez les directives php.ini pour post_max_size. Pour en savoir plus, consultez l'entrée post_max_size sur le site Web de PHP.

3.    Pour redémarrer le serveur Apache correctement, exécutez une des commande suivantes en fonction de votre environnement.

Pour Amazon Linux :

$ sudo service httpd graceful

Pour Amazon Linux 2 :

$ sudo service httpd reload

Remarque : le nom ou le chemin du fichier /etc/php.ini peut varier en fonction de votre version de PHP ou de l'AMI utilisée. La commande de redémarrage du serveur Apache peut également varier si vous utilisez une distribution autre qu'Amazon Linux AMI. WordPress limite la mémoire de ses processus PHP par défaut.

Informations connexes

Personnalisation avancée d'un environnement avec des fichiers de configuration (.ebextensions)

Déploiement d'un site Web WordPress haute disponibilité avec une base de données Amazon Relational Database Service (Amazon RDS) externe sur Elastic Beanstalk

Héberger un blog WordPress sur Amazon Linux 2

Description des principales directives php.ini sur le site Web de PHP

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 6 mois