Bereitstellen einer Laravel 4 App auf AWS Elastic Beanstalk

7

Ich habe eine Anwendung in Laravel 4 entwickelt - funktioniert perfekt auf meiner lokalen Maschine mit dem üblichen / typischen Laravel-Setup (nichts Ungewöhnliches hier).

Ich möchte jetzt die App in AWS Elastic Beanstalk implementieren (wahrscheinlich auf einem typischen Linux 64-Bit-Server mit installiertem PHP 5.4)

Meine Frage ist: Muss ich Änderungen an Dateien vornehmen, um die Anwendung für die Bereitstellung bereit zu machen?

Gibt es zum Beispiel irgendwelche Konfigurationsdateien, die ich erstellen muss usw.? (Ich habe hier über eine Art App / Config / Elastic-Datei gelesen: Ссылка )

Ich habe noch nie zuvor eingesetzt, also bitte gehen Sie so detailliert wie möglich vor.

    
Josh 04.08.2013, 07:29
quelle

2 Antworten

18

Um Ihre Frage bezüglich der L4-App-Konfiguration zu beantworten, werden Sie diese Beiträge sicherlich hilfreich finden:

Probleme mit der L4-Cloud-Bereitstellung
Laravel und Elastic Beanstalk


Laravel und Elastic Beanstalk AWS-Umgebungskonfiguration
Wie bei Ihrer Frage zu "irgendwas / app / config / elsatic" - kann Laravel je nach der Umgebung, in der es ausgeführt wird, verschiedene Konfigurationen "laden". Sie können beispielsweise verschiedene Unterordner mit Konfigurationsdateien einrichten für einen Testserver und einen Produktionsserver. Auf diese Weise können Sie Dateien sicher zwischen zwei Servern kopieren und müssen bei jedem Synchronisieren der Dateien beispielsweise nicht die Datenbank-Berechtigungsnachweise oder den Basispfad ändern. Daher wird hier in dem Artikel, den Sie verlinkt haben, vorgeschlagen, einen Unterordner für die AWS-Umgebung zu erstellen, damit Sie über einen benutzerdefinierten Satz von Konfigurationen verfügen können, die aktiviert werden, wenn Ihre App auf AWS ausgeführt wird.

So stellen Sie eine Laravel 4 App auf AWS bereit
Hier haben Sie eine kurze Anleitung. Die Anleitung, auf die ich gestoßen bin (aber noch keine Zeit hatte, sie zu testen), ist unten, aber lese immer noch die obigen Beiträge. Danke / Requisiten / Kudos für die folgenden Schritte gehen zu codenamegary aus dem Laravel-Forum


Installieren Sie das AWS-Befehlszeilentool auf Ihrem Computer
Ссылка - Erfordert Ruby und ein paar andere Dinge

EC2 - Richten Sie eine Sicherheitsgruppe ein
Ссылка
- Erstellen Sie unter EC2 eine neue Sicherheitsgruppe - Namenskonventionen sind, was immer Sie wollen, indem ich typischerweise versuche, etwas wie ... zu verwenden     "app-umwelt-eb"
- Für eine App namens "Blog" in der Produktionsumgebung würde ich sie beispielsweise "Blog-Produktion-eb", was Blog-App bedeutet, in der Produktionsumgebung auf elastischem Bohnenranke nennen - Auf der Gruppe erlauben Sie alle HTTP / HTTPS und was Sie sonst noch brauchen könnten

RDS - RDS-Sicherheitsgruppe einrichten (für MySQL)
Ссылка
- Erstellen Sie unter RDS eine neue Sicherheitsgruppe - Noch einmal, Namenskonventionen sind, was immer Sie wollen, aber ich versuche, etwas wie ... zu folgen     "app-umwelt-rds"
- Für eine App namens "Blog" in der Produktionsumgebung würde ich sie beispielsweise "blog-production-rds", also Blog-App, in der Produktionsumgebung auf RDS
nennen - Erlauben Sie der EC2-Sicherheitsgruppe in dieser RDS-Sicherheitsgruppe - Sie können auch Ihre eigene öffentliche IP-Adresse für die Gruppe zulassen, damit Sie direkt von Ihrem Computer aus auf die Datenbank zugreifen können - Richten Sie alternativ einen VPC und ein Gateway (ganzer anderer Ball aus Wachs) ein, um Fernzugriff zu erhalten - Erstellen Sie eine neue RDS-Instanz und hängen Sie sie an die neue RDS-Sicherheitsgruppe an.

EB - Erstellen Sie eine EB App und Umgebung
Ссылка
- Unter Elastic Beanstalk eine App, Amazon 64-bit PHP-Knoten (oder was auch immer) einrichten - Richten Sie eine Umgebung ein (nennen Sie es, was Sie wollen)
- Legen Sie den Dokumentenstamm des Umgebungscontainers auf / public
fest - Setzen Sie die Sicherheitsgruppe des Umgebungscontainers auf den Namen der gerade erstellten EC2-Sicherheitsgruppe - Konfigurieren Sie Ihre App-DB-Verbindung so, dass sie auf die von Ihnen erstellte RDS-Instanz zeigt (Hostname, Benutzername, Passwort usw.)

    
Gadoma 14.08.2013, 16:33
quelle
2

Außerdem würde ich empfehlen, das TrustedProxy-Paket von Chris Fidao auszuprobieren, damit Sie beim Aufruf von Request :: getClientIp () die richtigen IP-Adressen erhalten: Ссылка

(Stellen Sie sicher, dass Sie die Proxy-Adressen über CIDR-Notation festlegen.)

Eine weitere hilfreiche Informationsquelle, um Laravel hinter die Load Balancer von Amazon zu stellen: Ссылка

    
LF. 23.12.2013 05:42
quelle