2015-11-14 8 views
6

In den Laravel-Dokumenten wird empfohlen, ./artisan config:cache in Produktion zu verwenden, um die Dinge zu beschleunigen. Das ist großartig mit Heroku, da jeder Build einen neuen Dateisystemzustand hervorruft, so dass wir uns nicht einmal darum kümmern müssen, den Cache zwischen Deploy-Operationen zu löschen.Wie Cache-Konfiguration in Laravel in Heroku? d. h. in einem anderen Pfad als der Laufzeitumgebung erstellt werden

ABER: Wenn Sie diesen Befehl zu Ihrem Deployment-Vorgang hinzufügen (über Composer zum Beispiel), stürzt Ihre Laravel-App ab, da sie nach Dateien in den bisherigen Build-Pfaden (etwa /tmp/random_string) sucht. Wenn Sie heroku run pwd ausführen, werden Sie bemerken, dass die Laufzeit-App unter /app läuft.

Es scheint ./artisan config:cache speichert den temporären Build-Pfad in den zwischengespeicherten Einstellungen, während die App in einem anderen Pfad ausgeführt wird. Ist es möglich, den im resultierenden Konfigurationscache verwendeten Pfad zu ändern?

Antwort

3

Sie sollten dies am besten beim Booten und nicht zum Zeitpunkt der Erstellung tun. Um was Sie tun müssen, um modifizieren Sie composer.json hinzuzufügen:

"warmup": [ 
    "php artisan config:cache", 
    "php artisan route:cache" 
], 

Und dann ändern Sie Ihre procfile zu so etwas wie web: composer warmup && $(composer config bin-dir)/heroku-php-apache2 public/

Credits für die Spitze von der Heroku Unterstützung zu David geht!

+0

Kudos zu David! Wie hast du das bekommen? Sie haben ein Support-Ticket geöffnet und danach gefragt? – igorsantos07

+0

Ja, ihre Antwort war ziemlich schnell. Er hat mich zum [Heroku + Symphony doc] umgeleitet (https://devcenter.heroku.com/articles/getting-started-with-symfony#creating-a-procfile) –

+0

Cool! Ich wusste nicht, dass sie Dokumente für bestimmte Frameworks hatten. Wenn das Ticket noch offen ist, bitten Sie sie, darüber in https://devcenter.heroku.com/articles/getting-started-with-laravel zu schreiben – igorsantos07