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, modifiez la valeur par défaut du paramètre upload_max_filesize dans le fichier /etc/php.ini.

Remarque : 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, puis ajoutez le code suivant au fichier :

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

    Remarque : 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 bundle source d’application.

  4. Pour charger votre code dans un environnement Elastic Beanstalk existant, choisissez votre environnement, puis sélectionnez 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 plus d'informations, consultez la section Extension du fichier php.ini dans votre configuration Elastic Beanstalk.

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

  1. Pour ouvrir le fichier /etc/php.ini à l’aide de l'éditeur vi, exécutez la commande suivante :

    $ 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 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, exécutez la commande correspondant à 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

Tutoriel : Héberger un blog WordPress sur AL2

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

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