#Deploy Heroku - Laravel 5.1 Tive alguns problemas ao tentar fazer o deploy ao Heroku, para mais detalhes vejam esse post Deployment broken when upgrading to Laravel 5.1.
Caso você esteja criando um projeto do zero utilize via Laravel Installer:
laravel new nome_app
ou via Composer:
composer create-project laravel/laravel --prefer-dist
##Iniciar o git
Vamos da um git init
.
##Criar os arquivos
Os arquivos .buildpacks
e Procfile
são arquivos específicos do Heroku, são eles que fazem a setting do server. Já o app_boot.sh
é um shell que iremos rodar quando for montado o server. Vamos criar os arquivos com o comando touch
na raiz do projeto:
touch .buildpacks Procfile app_boot.sh
##Criar app no Heroku
heroku create name_app
##Configurando os arquivos Agora vamos configurar o nosso server. Primeiramente a nossa BuildPacks usando a heroku-buildpack-multi, assim vamos especificar que tipo de servidor queremos montar (PHP e NodeJS).
heroku buildpacks:set https://github.com/heroku/heroku-buildpack-multi.git
Agora que o nosso servidor ja sabe que tem que ler o arquivo .buildpacks
que criamos, vamos especificar os builds que queremos:
curl -s https://gist.githubusercontent.com/3runoDesign/7c4c8652c7c4543c9a3b/raw/5bb673135c6498abf8512b623e3d362efcfbd59c/buildpacks > .buildpacks
Como falei do arquivo app_boot.sh
que é um shell que iremos rodar quando for montado o server.
Nele vamos rodar o clear-compiled
e o optimize
do artisan
e vamos fazer o Boot up na pasta public/
.
curl -s https://gist.githubusercontent.com/3runoDesign/7c4c8652c7c4543c9a3b/raw/bdc5e201a7949c6d90c53ee2fd12dd164a173247/app_boot.sh > app_boot.sh
Agora vamos configurar o Procfile
, com eles vamos "falar" em que momento vamos rodar o app_boot.sh
e outros worker, para mais detalhes:
curl -s https://gist.githubusercontent.com/3runoDesign/7c4c8652c7c4543c9a3b/raw/2dec75e90b8d8c9ac165b412ec7d2b18861136c9/Procfile > Procfile
Algo extremamente importante é configurar o arquivo composer.json
.
...
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled"
],
"post-update-cmd": [
"php artisan clear-compiled"
],
Tanto no post-install-cmd
quanto em post-update-cmd
deixe somente o comando php artisan clear-compiled
.
##Adicionar as variáveis de ambiente
heroku config:set APP_ENV=production
heroku config:set APP_KEY=suaKeyAqui
heroku config:set APP_DEBUG=false
##E por fim...
git add .
git commit -m "Start"
git push heroku master #&& git push origin master