Verwenden der Elastic Beanstalk PHP-Plattform - AWS Elastic Beanstalk

Verwenden der Elastic Beanstalk PHP-Plattform

AWS Elastic Beanstalk unterstützt zahlreiche 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.

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-Konsole und wählen Sie in der Liste Regions (Regionen) Ihre AWS-Region aus.

  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 Software 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 sollen.

Statische Dateien

Um die Leistung zu verbessern, können Sie im Abschnitt Static files (Statische Dateien) den Proxy-Server so 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 einrichten AWS CLI. Weitere Informationen finden Sie unter Konfigurationsoptionen.