Verwenden der Elastic Beanstalk PHP-Plattform - AWS Elastic Beanstalk

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden der Elastic Beanstalk PHP-Plattform

AWS Elastic Beanstalk unterstützt eine Reihe von Plattformen für verschiedene Versionen der PHP-Programmiersprache. Diese Plattformen unterstützen PHP-Webanwendungen, die sowohl eigenständig als auch mit Composer ausgeführt werden können. Weitere Informationen finden Sie unter PHP im Dokument AWS Elastic Beanstalk -Plattformen.

Elastic Beanstalk bietet Konfigurationsoptionen, mit denen sich die auf den EC2-Instances in der Elastic Beanstalk-Umgebung ausgeführte Software anpassen lässt. Sie können die von Ihrer Anwendung erforderlichen Umgebungsvariablen konfigurieren, die Protokollrotation an Amazon S3 aktivieren, Ordner in der Anwendungsquelle mit statischen Dateien zu vom Proxy-Server verwendeten Pfaden zuordnen und gemeinsame PHP-Initialisierungseinstellungen festlegen.

In der Elastic Beanstalk-Konsole sind Konfigurationsoptionen für das Ändern der Konfiguration einer ausgeführten Umgebung verfügbar. Um zu verhindern, dass die Umgebungskonfiguration beim Beenden verloren geht, können Sie gespeicherte Konfigurationen verwenden, um Ihre Einstellungen zu speichern und sie später für eine andere Umgebung zu übernehmen.

Zum Speichern der Einstellungen im Quellcode können Sie Konfigurationsdateien einschließen. Die Einstellungen in Konfigurationsdateien werden jedes Mal verwendet, wenn Sie eine Umgebung erstellen oder Ihre Anwendung bereitstellen. Mit Konfigurationsdateien können Sie auch Pakete installieren, Skripts ausführen und andere Instance-Anpassungen bei Bereitstellungen vornehmen.

Wenn Sie Composer verwenden, können Sie durch das Einbinden einer composer.json-Datei in das Quell-Bundle die Pakete während der Bereitstellung installieren.

Für eine erweiterte PHP-Konfiguration und PHP-Einstellungen, die nicht als Konfigurationsoptionen verfügbar sind, können Sie mit Konfigurationsdateien eine INI-Datei bereitstellen, mit der die Standardeinstellungen von Elastic Beanstalk erweitert und überschrieben werden, oder Sie können zusätzliche Erweiterungen installieren.

Die in der Elastic Beanstalk-Konsole angewendeten Einstellungen überschreiben die entsprechenden Einstellungen in Konfigurationsdateien, falls vorhanden. So sind Standardeinstellungen in Konfigurationsdateien möglich, die Sie mit umgebungsspezifischen Einstellungen in der Konsole überschreiben können. Für weitere Informationen zur Rangfolge und zu anderen Methoden zum Ändern der Einstellungen siehe Konfigurationsoptionen.

Details zu den verschiedenen Möglichkeiten für das Erweitern einer Linux-basierten Elastic Beanstalk-Plattform finden Sie unter Erweitern von Elastic Beanstalk-Linux-Plattformen.

Überlegungen zu PHP 8.1 auf Amazon Linux 2

Lesen Sie diesen Abschnitt, wenn Sie den Plattformzweig PHP 8.1 auf Amazon Linux 2 verwenden.

Anmerkung

Die Informationen in diesem Thema beziehen sich nur auf den Plattformzweig PHP 8.1 auf Amazon Linux 2. Sie gelten nicht für die PHP-Plattformzweige, die auf AL2023 basieren. Sie gelten auch nicht für den Plattformzweig PHP 8.0 Amazon Linux 2.

Elastic Beanstalk speichert die PHP-8.1-bezogenen RPM-Pakete für den Plattformzweig PHP 8.1 auf Amazon Linux 2 auf den EC2-Instances in einem lokalen Verzeichnis statt im Amazon-Linux-Repository. Sie können rpm -i verwenden, um Pakete zu installieren. Beginnend mit PHP 8.1 Plattformversion 3.5.0 speichert Elastic Beanstalk die PHP 8.1-bezogenen RPM-Pakete im folgenden lokalen EC2-Verzeichnis:

/opt/elasticbeanstalk/RPMS

Im folgenden Beispiel wird das php-debuginfo-Paket installiert.

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

Die Version im Paketnamen hängt von der tatsächlichen Version ab, die im lokalen EC2-Verzeichnis /opt/elasticbeanstalk/RPMS aufgeführt ist. Verwenden Sie dieselbe Syntax, um andere PHP 8.1 RPM-Pakete zu installieren.

Erweitern Sie den folgenden Abschnitt, um eine Liste der von uns bereitgestellten RPM-Pakete anzuzeigen.

Die folgende Liste enthält die RMP-Pakete, die die Elastic Beanstalk PHP 8.1-Plattform auf Amazon Linux 2 bereitstellt. Diese befinden sich im lokalen Verzeichnis /opt/elasticbeanstalk/RPMS.

Die Versionsnummern 8.1.8-1 und 3.7.0-1 in den aufgelisteten Paketnamen sind nur ein Beispiel.

  • 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

Sie können die Pakete PEAR und PECL verwenden, um allgemeine Erweiterungen zu installieren. Weitere Informationen zu PEAR finden Sie auf der Website PEAR PHP Extension and Application Repository. Weitere Informationen zu PECL finden Sie auf der Website der PECL-Erweiterung.

Mit den folgenden Beispielbefehlen werden die Memcached-Erweiterungen installiert.

$pecl install memcache

Sie können auch Folgendes verwenden:

$pear install pecl/memcache

Die folgenden Beispielbefehle installieren die Redis-Erweiterungen.

$pecl install redis

Sie können auch Folgendes verwenden:

$pear install pecl/redis

Konfigurieren Ihrer PHP-Umgebung

Mit der Elastic Beanstalk-Konsole können Sie die Protokollrotation für Amazon S3 aktivieren, Variablen konfigurieren, die die Anwendung in der Umgebung lesen kann, und die PHP-Einstellungen ändern.

So konfigurieren Sie Ihre PHP-Umgebung in der Elastic Beanstalk-Konsole
  1. Öffnen Sie die Elastic Beanstalk Beanstalk-Konsole und wählen Sie in der Liste Regionen Ihre aus. AWS-Region

  2. Wählen Sie im Navigationsbereich Environments (Umgebungen) aus und wählen Sie dann in der Liste den Namen Ihrer Umgebung aus.

    Anmerkung

    Wenn Sie viele Umgebungen haben, verwenden Sie die Suchleiste, um die Umgebungsliste zu filtern.

  3. Wählen Sie im Navigationsbereich Configuration (Konfiguration) aus.

  4. Wählen Sie in der Konfigurationskategorie Updates, monitoring and logging  (Updates, Überwachung und Protokolle) die Option Edit (Bearbeiten) aus.

PHP-Einstellungen

  • Proxy server (Proxy-Server) – Der Proxyserver, der in Ihren Umgebungs-Instances verwendet werden soll. Standardmäßig wird nginx verwendet.

  • Document root (Dokumentenstamm) – In diesem Ordner ist die Standardseite Ihrer Website enthalten. Falls sich die Willkommenseite nicht im Stamm des Quell-Bundles befindet, geben Sie den entsprechenden Ordner relativ zum Stammpfad an. Beispielsweise /public, wenn die Willkommenseite im Ordner public ist.

  • Memory limit (Speicherlimit) – Der maximale Speicher, der von einem Skript zugeordnet werden kann. Zum Beispiel 512M.

  • Zlib output compression (Zlib-Ausgabekomprimierung) – Legen Sie den Wert auf On fest, um Antworten zu komprimieren.

  • Allow URL fopen (DÖffnen für URLs zulassen) – Legen Sie den Wert auf Off fest, damit Skripts keine Dateien von Remote-Speicherorten herunterladen können.

  • Display errors (Fehler anzeigen) – Legen Sie den Wert auf On fest, damit interne Fehlermeldungen zum Debuggen angezeigt werden.

  • Max execution time (Max. Ausführungszeit) – Gibt die maximale Dauer (in Sekunden) an, die ein Skript ausgeführt werden kann, bevor es von der Umgebung beendet wird.

Protokolloptionen

Im Abschnitt mit den Protokolloptionen hat zwei Einstellungen:

  • Instance profile (Instance-Profil) – Gibt das Instance-Profil an, das zum Zugriff auf den entsprechenden Amazon S3-Bucket der Anwendung berechtigt ist.

  • Enable log file rotation to Amazon S3 (Protokolldateirotation für Amazon S3 aktivieren) – Gibt an, ob die Protokolldateien für die Amazon-EC2-Instances der Anwendung in den der Anwendung zugeordneten Amazon-S3-Bucket kopiert werden.

Statische Dateien

Um die Leistung zu verbessern, können Sie den Abschnitt Static files (Statische Dateien) benutzen, um den Proxy-Server so zu konfigurieren, dass er statische Dateien (z. B. HTML oder Bilder) aus Verzeichnissen innerhalb Ihrer Webanwendung bereitstellt. Legen Sie für jedes Verzeichnis den virtuellen Pfad zum Verzeichnis-Mapping fest. Wenn der Proxy-Server eine Anfrage nach einer Datei unter dem angegebenen Pfad erhält, stellt er die Datei direkt bereit, anstatt die Anfrage an Ihre Anwendung weiterzuleiten.

Weitere Informationen zum Konfigurieren statischer Dateien mit der Elastic Beanstalk-Konsole finden Sie unter Bereitstellen von statischen Dateien.

Umgebungseigenschaften

Im Bereich Environment Properties (Umgebungseigenschaften) können Sie die Einstellungen für die Umgebungskonfiguration der Amazon-EC2-Instances angeben, auf denen die Anwendung ausgeführt wird. Diese Einstellungen werden als Schlüsselwert-Paare an die Anwendung weitergeleitet.

Ihr Anwendungscode kann mithilfe der Funktion $_SERVER oder get_cfg_var auf Umgebungseigenschaften zugreifen.

$endpoint = $_SERVER['API_ENDPOINT'];

Weitere Informationen finden Sie unter Umgebungseigenschaften und andere Softwareeinstellungen.

Der Namespace aws:elasticbeanstalk:container:php:phpini

Mithilfe einer Konfigurationsdatei können Sie im Rahmen der Bereitstellung Konfigurationsoptionen festlegen und andere Instance-Konfigurationsaufgaben durchführen. Konfigurationsoptionen können durch den Elastic Beanstalk-Service oder die verwendete Plattform definiert und in Namespaces organisiert werden.

Sie können mithilfe des Namespace aws:elasticbeanstalk:environment:proxy den Proxy-Server der Umgebung auswählen.

Sie können mithilfe des Namespace aws:elasticbeanstalk:environment:proxy:staticfiles den Umgebungsproxy so konfigurieren, dass statische Dateien bereitgestellt werden. Sie definieren Zuordnungen von virtuellen Pfaden zu Anwendungsverzeichnissen.

Die PHP-Plattform definiert Optionen im aws:elasticbeanstalk:container:php:phpini-Namespace, darunter auch eine Option, die in der Elastic Beanstalk-Konsole nicht verfügbar ist. composer_options legt fest, welche benutzerdefinierten Optionen verwendet werden sollen, wenn Sie mit Composer Abhängigkeiten über composer.phar install installieren. Weitere Informationen sowie die verfügbaren Optionen finden Sie unter http://getcomposer.org/doc/03-cli.md#install.

Die folgende Beispielkonfigurationsdatei gibt eine Option für statische Dateien an, mit der ein Verzeichnis mit dem Namen staticimages dem Pfad /images zugeordnet wird, und zeigt die Einstellungen jeder der im Namespace aws:elasticbeanstalk:container:php:phpini verfügbaren Optionen an:

Beispiel .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
Anmerkung

Der Namespace aws:elasticbeanstalk:environment:proxy:staticfiles ist auf Amazon Linux AMI PHP-Plattformvarianten (Vorgänger von Amazon Linux 2) nicht definiert.

Elastic Beanstalk bietet zahlreiche Konfigurationsoptionen für die Anpassung Ihrer Umgebung. Neben den Konfigurationsdateien können Sie die Konfigurationsoptionen auch unter Verwendung der Konsole, gespeicherter Konfigurationen, der EB CLI oder der AWS CLI einrichten. Weitere Informationen finden Sie unter Konfigurationsoptionen.