Come faccio a caricare file WordPress di dimensioni superiori a 2 MB nel mio ambiente Elastic Beanstalk?

4 minuti di lettura
0

Quando carico file WordPress di dimensioni superiori a 2 MB nel mio ambiente AWS Elastic Beanstalk, ricevo il seguente messaggio di errore: "The uploaded file exceeds the upload_max_filesize directive in php.ini."

Breve descrizione

La configurazione PHP predefinita su un'istanza Amazon Elastic Compute Cloud (Amazon EC2) non consente di caricare file WordPress di dimensioni superiori a 2 MB. Per caricare file di dimensioni superiori a 2 MB, modifica il valore predefinito del parametro upload_max_filesize nel file /etc/php.ini.

Importante: M e MB sono espressioni equivalenti per "megabyte". Ad esempio, 2 M equivalgono a 2 MB. Tuttavia, usa solo M nel tuo file di configurazione, poiché MB non è valido in un file di configurazione.

Risoluzione

Scegli la risoluzione che si applica al tuo stack di soluzioni.

Aggiornamento della dimensione del file di caricamento per un ambiente Elastic Beanstalk che esegue uno stack di soluzioni PHP

Per aumentare le dimensioni del file in tutte le istanze, completa i seguenti passaggi per aggiornare l'Amazon Machine Image (AMI) sottostante.

1.    In un editor di codice, crea un nuovo file denominato change_upload_size.config, quindi aggiungi il seguente codice al file:

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: nell'esempio precedente, il valore del parametro post_max_size viene aggiornato dal valore predefinito 32 M a 100 M.

Per modificare i parametri php.ini come memory_limit, consulta le direttive php.ini per post_max_size. Il valore massimo memory_limit in Elastic Beanstalk è 256 M.

2.    Nella root del bundle sorgente dell'applicazione, crea una nuova directory denominata .ebextensions, quindi sposta il file change_upload_size.config nella directory .ebextensions.

Se la directory .ebextensions è già all'interno del bundle sorgente dell'applicazione, conserva il file change_upload_size.config nella directory .ebextensions con gli altri file .config.
Esempio:

├── 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: per le piattaforme Amazon Linux 2 basate su Elastic Beanstalk, modifica il nome del file 99uploadsize.ini in z99uploadsize.ini. Per consentire alle nuove impostazioni PHP di sovrascrivere i valori predefiniti, modifica il nome del file ovunque in .ebextension.

3.    Apri la console Elastic Beanstalk, quindi crea un archivio zip del bundle sorgente dell'applicazione.

4.    Per caricare il codice in un ambiente Elastic Beanstalk esistente, scegli il tuo ambiente, quindi scegli Carica e implementa.
Nota: per implementare il codice in un nuovo ambiente Elastic Beanstalk, consulta Creazione di un ambiente Elastic Beanstalk.

Dopo aver caricato il file .ebextensions, se il messaggio di errore persiste, utilizza un validatore YAML per verificare la presenza di errori di spazi vuoti nel codice. Inoltre, utilizza il comando remove_old_ini per rimuovere i file di backup non necessari. Per ulteriori informazioni, consulta Estensione di php.ini.

Modifica della dimensione del file di caricamento per una singola istanza Amazon EC2 che esegue uno stack LAMP

1.    Per aprire il file /etc/php.ini con l'editor vi, esegui il seguente comando:

$ sudo vi /etc/php.ini

Nota: il nome o il percorso del file /etc/php.ini può variare a seconda della versione di PHP o dell'AMI che utilizzi.

2.    Nell'editor vi, modifica il valore del parametro upload_max_filesize con una dimensione maggiore di 2 MB, quindi salva il file.
Nota: per modificare i parametri php.ini come memory_limit, consulta le direttive php.ini per post_max_size. Per ulteriori informazioni, consulta la voce post_max_size sul sito web di PHP.

3.    Per riavviare correttamente il server Apache, esegui il comando appropriato per il tuo ambiente.

Per Amazon Linux:

$ sudo service httpd graceful

Per Amazon Linux 2:

$ sudo service httpd reload

Nota: il nome o il percorso del file /etc/php.ini può variare a seconda della versione di PHP o dell'AMI che utilizzi. Il comando per riavviare il server Apache può variare anche se si utilizza una distribuzione diversa dall'AMI Amazon Linux. Per impostazione predefinita, WordPress limita la memoria dei suoi processi PHP.

Informazioni correlate

Personalizzazione avanzata dell'ambiente con i file di configurazione (.ebextensions)

Distribuzione di un sito Web WordPress a elevata disponibilità con un database Amazon RDS esterno in Elastic Beanstalk

Hosting di un blog di WordPress su Amazon Linux 2

Descrizione delle direttive principali di php.ini sul sito web di PHP

AWS UFFICIALE
AWS UFFICIALEAggiornata 6 mesi fa