Ada beberapa cara men deploy
aplikasi laravel ke server, dengan cara git, manual, menggunakan app hosting
, dan untuk menggunakan automatic deployment biasanya akan sangat memudahkan anda dalam memanage project.
Ketika ada perubahan, anda tidak perlu edit di server langsung karena itu resikonya besar. Apalagi perubahannya itu banyak, pasti akan banyak waktu untuk mengecek ulang kodenya. Namun dengan adanya automatic deployment anda akan sangat mudah ketika di project yang anda kerjakan bisa di edit di lokal, dan menggunakan command line
yang simple.
Dengan begitu code anda bisa teratur, perubahan pun tetap bisa anda track dengan git
dengan mengecek perubahannya.
Gunakan package dari lorisleiva agar anda bisa lebih mudah untuk mendeploy aplikasi laravel anda. Silahkan anda cek githubnya di Laravel Deployer
composer require deployer/deployer:^7.0
Copy/paste file deploy.php
atau deploy.yml
sample nya seperti ini jika anda menggunakan deploy.yml
import: - recipe/laravel.php - contrib/php-fpm.php - contrib/npm.php config: application: 'mylaravelapp' repository: 'git@github.com:lorisleiva/mylaravelapp.git' php_fpm_version: 8.0 hosts: prod: remote_user: loris hostname: mylaravelapp.com deploy_path: '~/{{application}}' tasks: deploy: - deploy:prepare - deploy:vendors - artisan:storage:link - artisan:view:cache - artisan:config:cache - artisan:migrate - npm:install - npm:run:prod - deploy:publish - php-fpm:reload npm:run:prod: script: - 'cd {{release_or_current_path}} && npm run prod' after: deploy:failed: deploy:unlock
Edit beberapa bagian dan sesuaikan dengan server anda :
config: application: 'aplikasilaravelanda'
Ubah application dengan nama Aplikasi Laravel anda.
config: repository: 'git@github.com:lorisleiva/mylaravelapp.git' php_fpm_version: 8.0
Ubah repository dengan repo aplikasi laravel anda. dan tentukan versi php yang anda gunakan.
Ubah juga bagian ini :
hosts: prod: remote_user: loris hostname: mylaravelapp.com deploy_path: '~/{{application}}'
Jika anda ingin langsung mendeploy ke production bisa langsung isi bagian prod
dengan server anda. Atau anda bisa juga menggunakan 2 kriteria yang ingin anda gunakan seperti ini :
hosts: stagging: remote_user: loris hostname: stagging.aplikasi.com deploy_path: '~/{{application}}' production: remote_user: loris hostname: aplikasi.com deploy_path: '~/{{application}}'
Ubah bagian remote_user
dengan user di server anda,
Saran untuk anda ketika anda ingin menggunakan ini, gunakan user yang selain
root
contoh user yang sering digunakan menggunakandeployer
Bagian hostname bisa anda isi dengan endpoint domain server anda. contohnya aplikasi.com
dan bagian deploy_path
adalah direktori tempat aplikasi anda di simpan.
Dibagian Task
anda bisa menggunakan beberapa command untuk command setelah aplikasi anda di deploy ke server :
tasks: deploy: - deploy:prepare - deploy:vendors - artisan:storage:link - artisan:view:cache - artisan:config:cache - artisan:migrate - npm:install - npm:run:prod - deploy:publish - php-fpm:reload
Beberapa opsi jika anda sudah melakukan npm run prod
di local sebaiknya tidak memerlukan command npm install
lagi. biasanya saya compile di local dan hanya menggunakan seperti ini :
tasks: deploy: - deploy:prepare - deploy:vendors - artisan:storage:link - artisan:view:cache - artisan:config:cache - artisan:migrate - deploy:publish
Karena saya tidak akan mereload juga untuk php-fpm
dan sekarang saatnya untuk melakukan deploying ke server.
Gunakan terminal / cmd anda di project direktori :
dep deploy
Dan akan di proses oleh package tersebut, jika anda ingin login ke SSH anda hanya tinggal mengetik :
dep ssh
Copy file .env
anda yang sebelumnya sudah anda setting dan tulis ulang di .env.example
sehingga anda akan mudah mengaturnya di server nanti, masukan perintah di server anda :
cp .env.example && php artisan key:generate
Ubah .env
anda di server dengan variable database
dan lainnya yang sudah anda buat sebelumnya.
Demikian tutorial cara Deploy Laravel Dengan Laravel Deployer semoga bermanfaat untuk anda semua happy coding...