Utilizzo della piattaforma PHP di Elastic Beanstalk - AWS Elastic Beanstalk

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo della piattaforma PHP di Elastic Beanstalk

AWS Elastic Beanstalk supporta una serie di piattaforme per diverse versioni del linguaggio di programmazione PHP. Queste piattaforme supportano le applicazioni Web PHP che possono essere eseguite come servizio indipendente o in Composer. Per ulteriori informazioni, consulta PHP nel documento relativo alle PiattaformeAWS Elastic Beanstalk .

Elastic Beanstalk fornisce le opzioni di configurazione che puoi utilizzare per personalizzare il software in esecuzione sulle istanze EC2 nell'ambiente. È possibile configurare le variabili di ambiente necessarie per l'applicazione, abilitare la rotazione dei log su Amazon S3, mappare le cartelle nell'origine dell'applicazione che contengono i file statici sui percorsi serviti dal server proxy e configurare le impostazioni di inizializzazione PHP comuni.

Sono disponibili opzioni di configurazione specifiche della piattaforma nella console Elastic Beanstalk per la modifica della configurazione di un ambiente in esecuzione. Per conservare la configurazione dell'ambiente una volta terminata, puoi utilizzare configurazioni salvate per salvare le impostazioni e applicarle successivamente a un altro ambiente.

Per salvare le impostazioni nel codice sorgente, puoi includere i file di configurazione. Le impostazioni nei file di configurazione vengono applicate ogni volta che crei un ambiente o distribuisci l'applicazione. Puoi inoltre utilizzare i file di configurazione per installare pacchetti, eseguire script o altre operazioni di personalizzazione delle istanze durante le distribuzioni.

Se utilizzi Composer, puoi includere un file composer.json nel bundle di origine per installare pacchetti durante la distribuzione.

Per la configurazione e le impostazioni avanzate di PHP che non vengono fornite come opzioni di configurazione, è possibile utilizzare i file di configurazione per fornire un file INI che può estendere e ignorare le impostazioni di default applicate da Elastic Beanstalk o installare altre estensioni.

Le impostazioni applicate nella console Elastic Beanstalk sostituiscono le stesse impostazioni nei file di configurazione, se esistenti. Ciò ti consente di disporre di impostazioni predefinite nei file di configurazione, sostituibili con impostazioni specifiche per l'ambiente nella console. Per ulteriori informazioni sulla precedenza e altri metodi di modifica delle impostazioni, consulta Opzioni di configurazione.

Per informazioni dettagliate sui vari modi in cui è possibile estendere una piattaforma Elastic Beanstalk basata su Linux, consulta Estensione delle piattaforme Elastic Beanstalk Linux.

Considerazioni per PHP 8.1 su Amazon Linux 2

Leggi questa sezione se stai usando la ramificazione della piattaforma PHP 8.1 su Amazon Linux 2.

Nota

Le informazioni contenute in questo argomento si applicano solo alle ramificazioni della piattaforma PHP 8.1 basati su Amazon Linux 2. Non si applica alle ramificazioni della piattaforma PHP basati su AL2023. Inoltre non si applica alla ramificazione della piattaforma PHP 8.0 Amazon Linux 2.

Elastic Beanstalk memorizza i pacchetti RPM relativi a PHP 8.1 per la ramificazione della piattaforma PHP 8.1 su Amazon Linux 2 sulle istanze EC2 in una directory locale, anziché nel repository Amazon Linux. È possibile utilizzare rpm -i per installare pacchetti. A partire dalla versione 3.5.0 della piattaforma PHP 8.1, Elastic Beanstalk archivia i pacchetti RPM relativi a PHP 8.1 nella seguente directory EC2 locale.

/opt/elasticbeanstalk/RPMS

L'esempio seguente installa il pacchetto php-debuginfo.

$rpm -i /opt/elasticbeanstalk/RPMS/php-debuginfo-8.1.8-1.amzn2.x86_64.rpm

La versione nel nome del pacchetto varierà in base alla versione effettiva elencata nella directory EC2 locale /opt/elasticbeanstalk/RPMS. Usa la stessa sintassi per installare altri pacchetti RPM PHP 8.1.

Espandi la sezione seguente per visualizzare un elenco dei pacchetti RPM che forniamo.

L'elenco seguente mostra i pacchetti RMP forniti dalla piattaforma PHP 8.1 Elastic Beanstalk su Amazon Linux 2. Questi si trovano nella directory locale /opt/elasticbeanstalk/RPMS.

I numeri di versione 8.1.8-1 e 3.7.0-1 nei nomi dei pacchetti elencati rappresentano solo un esempio.

  • php-8.1.8-1.amzn2.x86_64.rpm

  • php-bcmath-8.1.8-1.amzn2.x86_64.rpm

  • php-cli-8.1.8-1.amzn2.x86_64.rpm

  • php-common-8.1.8-1.amzn2.x86_64.rpm

  • php-dba-8.1.8-1.amzn2.x86_64.rpm

  • php-dbg-8.1.8-1.amzn2.x86_64.rpm

  • php-debuginfo-8.1.8-1.amzn2.x86_64.rpm

  • php-devel-8.1.8-1.amzn2.x86_64.rpm

  • php-embedded-8.1.8-1.amzn2.x86_64.rpm

  • php-enchant-8.1.8-1.amzn2.x86_64.rpm

  • php-fpm-8.1.8-1.amzn2.x86_64.rpm

  • php-gd-8.1.8-1.amzn2.x86_64.rpm

  • php-gmp-8.1.8-1.amzn2.x86_64.rpm

  • php-intl-8.1.8-1.amzn2.x86_64.rpm

  • php-ldap-8.1.8-1.amzn2.x86_64.rpm

  • php-mbstring-8.1.8-1.amzn2.x86_64.rpm

  • php-mysqlnd-8.1.8-1.amzn2.x86_64.rpm

  • php-odbc-8.1.8-1.amzn2.x86_64.rpm

  • php-opcache-8.1.8-1.amzn2.x86_64.rpm

  • php-pdo-8.1.8-1.amzn2.x86_64.rpm

  • php-pear-1.10.13-1.amzn2.noarch.rpm

  • php-pgsql-8.1.8-1.amzn2.x86_64.rpm

  • php-process-8.1.8-1.amzn2.x86_64.rpm

  • php-pspell-8.1.8-1.amzn2.x86_64.rpm

  • php-snmp-8.1.8-1.amzn2.x86_64.rpm

  • php-soap-8.1.8-1.amzn2.x86_64.rpm

  • php-sodium-8.1.8-1.amzn2.x86_64.rpm

  • php-xml-8.1.8-1.amzn2.x86_64.rpm

  • php-pecl-imagick-3.7.0-1.amzn2.x86_64.rpm

  • php-pecl-imagick-debuginfo-3.7.0-1.amzn2.x86_64.rpm

  • php-pecl-imagick-devel-3.7.0-1.amzn2.noarch.rpm

È possibile utilizzare i pacchetti PEAR e PECL per installare estensioni comuni. Per ulteriori informazioni su PEAR, consulta il sito web PEAR PHP Extension and Application Repository. Per ulteriori informazioni su PECL, consulta il sito Web PECL extension.

I seguenti comandi di esempio installano le estensioni Memcached.

$pecl install memcache

Oppure puoi inoltre utilizzare quanto segue:

$pear install pecl/memcache

I seguenti comandi di esempio installano le estensioni Redis.

$pecl install redis

Oppure puoi inoltre utilizzare quanto segue:

$pear install pecl/redis

Configurazione dell'ambiente PHP

Puoi utilizzare la console Elastic Beanstalk per attivare la rotazione dei log in Amazon S3, configurare variabili che l'applicazione è in grado di leggere dall'ambiente e modificare le impostazioni PHP.

Per configurare l'ambiente PHP nella console Elastic Beanstalk
  1. Apri la console Elastic Beanstalk e, nell'elenco Regioni, seleziona la tua. Regione AWS

  2. Nel pannello di navigazione selezionare Environments (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

    Nota

    Se si dispone di molti ambienti, utilizzare la barra di ricerca per filtrare l'elenco degli ambienti.

  3. Nel riquadro di navigazione, seleziona Configuration (Configurazione).

  4. Nella categoria di configurazione Updates, monitoring, and logging (Aggiornamenti, monitoraggio e registrazione), scegli Edit (Modifica).

Impostazioni PHP

  • Proxy server (Server proxy): il server proxy da utilizzare nelle istanze dell'ambiente. Per impostazione predefinita, viene utilizzato nginx.

  • Document root (Root del documento): la cartella che contiene la pagina predefinita del tuo sito. Se la pagina di benvenuto non è nella radice del bundle di origine, specifica la cartella che lo contiene rispetto al percorso principale. Ad esempio, /public se la pagina di benvenuto si trova in una cartella chiamata public.

  • Memory limit (Limite di memoria): la quantità massima di memoria che uno script può allocare. Ad esempio, 512M.

  • Zlib output compression (Compressione Zlib dell'output): impostare su On per comprimere le risposte.

  • Allow URL fopen (Consenti URL fopen): impostare su Off per evitare che gli script scarichino file da sedi remote.

  • Display errors (Visualizza errori): impostare su On per visualizzare messaggi di errore interni per il debug.

  • Max execution time (Tempo massimo di esecuzione): tempo massimo, espresso in secondi, durante il quale a uno script è consentita l'esecuzione prima di essere terminato dall'ambiente.

Opzioni di log

La sezione Log Options (Opzioni di log) ha due impostazioni:

  • Instance profile (Profilo dell'istanza): specifica il profilo dell'istanza che dispone dell'autorizzazione ad accedere al bucket Amazon S3 associato all'applicazione.

  • Enable log file rotation to Amazon S3 (Abilita rotazione file di log in Amazon S3): specifica se i file di log per le istanze Amazon EC2 dell'applicazione debbano essere copiati nel bucket Amazon S3 associato all'applicazione.

File statici

Per migliorare le prestazioni, la sezione Static files (File statici) consente di configurare il server proxy affinché fornisca file statici (ad esempio, HTML o immagini) da un set di directory all'interno dell'applicazione Web. Per ogni directory, è possibile impostare il percorso virtuale per la mappatura delle directory. Quando il server proxy riceve una richiesta da un file nel percorso specificato, questo serve il file direttamente anziché instradare la richiesta all'applicazione.

Per informazioni dettagliate sulla configurazione di file statici utilizzando file di configurazione o la console Elastic Beanstalk, consulta Fornire i file statici.

Proprietà dell'ambiente

La sezione Environment Properties (Proprietà ambiente) consente di specificare le impostazioni di configurazione dell'ambiente nelle istanze Amazon EC2 che eseguono l'applicazione. Queste impostazioni sono passate come coppie chiave-valore all'applicazione.

Il codice dell'applicazione può accedere alle proprietà dell'ambiente utilizzando $_SERVER o la funzione get_cfg_var.

$endpoint = $_SERVER['API_ENDPOINT'];

Per ulteriori informazioni, consultare Proprietà dell'ambiente e altre impostazioni software.

Spazio dei nomi aws:elasticbeanstalk:container:php:phpini

È possibile utilizzare un file di configurazione per impostare le opzioni di configurazione ed eseguire alte attività di configurazione delle istanze durante le distribuzioni. Le opzioni di configurazione, che possono essere definite dal servizio Elastic Beanstalk o dalla piattaforma utilizzata, sono organizzate in spazi dei nomi.

È possibile utilizzare lo spazio dei nomi aws:elasticbeanstalk:environment:proxy per scegliere il server proxy dell'ambiente.

È possibile utilizzare lo spazio dei nomi aws:elasticbeanstalk:environment:proxy:staticfiles dei nomi per configurare il proxy di ambiente per servire file statici. È possibile definire i mapping dei percorsi virtuali alle directory dell'applicazione.

La piattaforma PHP definisce le opzioni dello spazio dei nomi aws:elasticbeanstalk:container:php:phpini, tra cui uno che non è disponibile nella console Elastic Beanstalk. composer_options imposta le opzioni personalizzate da utilizzare quando si installano le dipendenze usando Composer tramite composer.phar install. Per ulteriori informazioni, comprese le opzioni disponibili, vai alla pagina http://getcomposer.org/doc/03-cli.md#install.

Il seguente file di configurazione di esempio specifica un'opzione di file statici che esegue il mapping di una directory denominata staticimages al percorso /images e mostra le impostazioni per ciascuna delle opzioni disponibili nello spazio dei nomi aws:elasticbeanstalk:container:php:phpini:

Esempio .ebextensions/php-settings.config
option_settings: aws:elasticbeanstalk:environment:proxy: ProxyServer: apache aws:elasticbeanstalk:environment:proxy:staticfiles: /images: staticimages aws:elasticbeanstalk:container:php:phpini: document_root: /public memory_limit: 128M zlib.output_compression: "Off" allow_url_fopen: "On" display_errors: "Off" max_execution_time: 60 composer_options: vendor/package
Nota

Lo spazio dei nomi aws:elasticbeanstalk:environment:proxy:staticfiles non è definito sui rami della piattaforma PHP AMI Amazon Linux (precedente Amazon Linux 2).

In Elastic Beanstalk sono disponibili varie opzioni di configurazione per la personalizzazione dell'ambiente. Oltre ai file di configurazione, puoi impostare le opzioni di configurazione tramite la console, le configurazioni salvate, la CLI EB o AWS CLI. Per ulteriori informazioni, consultare Opzioni di configurazione.