En utilisant AWS re:Post, vous acceptez les AWS re:Post Conditions d’utilisation

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

Lecture de 4 minute(s)
0

Lorsque je charge des fichiers WordPress de plus de 2 Mo dans mon environnement AWS Elastic Beanstalk, l’erreur suivante s’affiche : « The uploaded file exceeds the upload_max_filesize directive in 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 qui signifient « mégaoctet ». Par exemple, 2 M est égal à 2 Mo. Mo n’étant pas valide dans un fichier de configuration, utilisez uniquement M.

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, mettez à jour l’Amazon Machine Image (AMI) que vous utilisez. 

Procédez comme suit :

  1. Dans un éditeur de code, créez un nouveau fichier nommé change_upload_size.config auquel vous devez ajouter 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 à 100 M.
    Pour modifier les paramètres du fichier php.ini, tels que 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 page Création d’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 page Extension de php.ini.

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

Procédez comme suit :

  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 memory_limit, consultez les directives php.ini pour post_max_size. Pour en savoir plus, consultez la page relative à post_max_size du site Web PHP.
  3. Pour redémarrer correctement le serveur Apache, exécutez la commande suivante pour votre environnement.
    Amazon Linux :
    $ sudo service httpd graceful
    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. Si vous utilisez une distribution autre qu’Amazon Linux AMI, la commande de redémarrage du serveur Apache peut également varier. 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 8 mois