Installieren der Abhängigkeiten Ihrer Anwendung - AWS Elastic Beanstalk

Installieren der Abhängigkeiten Ihrer Anwendung

Ihre Anwendung ist möglicherweise von anderen PHP-Paketen abhängig. Sie können Ihre Anwendung so konfigurieren, dass diese Abhängigkeiten auf Amazon Elastic Compute Cloud (Amazon EC2)-Instances der Umgebung installiert werden. Alternativ können Sie die Abhängigkeiten Ihrer Anwendung in das Quell-Bundle einschließen und sie mit der Anwendung bereitstellen. Im folgenden Abschnitt werden beide Möglichkeiten vorgestellt.

Verwenden einer Composer-Datei zum Installieren von Abhängigkeiten von Instances

Mit einer composer.json-Datei im Stammverzeichnis der Projektquelle können Sie die von der Anwendung benötigten Pakete über Composer auf den Amazon EC2-Instances Ihrer Umgebung installieren.

Beispiel composer.json
{ "require": { "monolog/monolog": "1.0.*" } }

Wenn eine composer.json-Datei vorhanden ist, führt Elastic Beanstalk composer.phar install aus, um Abhängigkeiten zu installieren. Sie können Optionen für den Befehl anfügen, indem Sie die Option composer_options im Namespace aws:elasticbeanstalk:container:php:phpini festlegen.

Einschließen von Abhängigkeiten in Quell-Bundles

Wenn Ihre Anwendung viele Abhängigkeiten hat, kann die Installation etwas länger dauern. Dies kann die Bereitstellung und Skalierung von Operationen erhöhen, da auf jeder neuen Instance Abhängigkeiten installiert sind.

Um negative Auswirkungen auf die Bereitstellungszeit zu vermeiden, können Sie mit Composer in Ihrer Entwicklungsumgebung Abhängigkeiten auflösen und sie im Ordner vendor zu installieren.

So schließen Sie Abhängigkeiten in das Quell-Bundle Ihrer Anwendung ein
  1. Führen Sie den Befehl aus:

    % composer install
  2. Fügen Sie den generierten Ordner vendor zum Stamm des Quell-Bundles der Anwendung hinzu.

Wenn Elastic Beanstalk einen Ordner vendor in der Instance findet, wird die Datei composer.json ignoriert (selbst, wenn sie vorhanden ist). Ihre Anwendung verwendet dann die Abhängigkeiten im Ordner vendor.