2015-11-14 26 views
6

Nei documenti di Laravel si consiglia di eseguire ./artisan config:cache in produzione per velocizzare le cose. Questo è fantastico con Heroku dato che ogni build fa apparire un nuovo stato del filesystem, quindi non dobbiamo nemmeno preoccuparci di svuotare la cache tra i deploys.Come memorizzare nella cache la configurazione in Laravel all'interno di Heroku? Compilare in un percorso diverso dal runtime

MA: se si aggiunge questo comando alla procedura di distribuzione (tramite Composer per esempio) l'applicazione Laravel inizierà a bloccarsi, poiché cercherà i file nei percorsi di costruzione ormai scomparsi (qualcosa come /tmp/random_string). Se esegui heroku run pwd, noterai che l'app di runtime è attiva su /app.

Sembra che ./artisan config:cache memorizzi il percorso di generazione temporaneo nelle impostazioni memorizzate nella cache, mentre l'app viene eseguita in un altro percorso. È possibile modificare il percorso utilizzato nella cache di configurazione risultante?

risposta

3

Farebbe meglio all'avvio e non al momento della compilazione. Per fare ciò è necessario modificare si composer.json aggiungere:

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

e quindi modificare il tuo procfile a qualcosa di simile web: composer warmup && $(composer config bin-dir)/heroku-php-apache2 public/

Crediti per la punta va a David dal supporto Heroku!

+0

Complimenti a David! Come l'hai avuto? Hai aperto un ticket di supporto chiedendo questo? – igorsantos07

+0

Sì, la loro risposta è stata abbastanza veloce. Mi ha reindirizzato al [Heroku + Symphony doc] (https://devcenter.heroku.com/articles/getting-started-with-symfony#creating-a-procfile) –

+0

Cool! Non sapevo che avessero documenti per quadri specifici. Se il biglietto è ancora aperto, chiedi loro di scrivere a riguardo in https://devcenter.heroku.com/articles/getting-started-with-laravel – igorsantos07