Laravel
Laravel adalah salah satu framework yang dapat memaksimalkan penggunaan PHP dalam proses pengembangan aplikasi atau website.
PHP sendiri adalah salah satu bahasa pemrograman yang dinamis, dengan adanya laravel, membuat PHP menjadi lebih sederhana, aman dan cepat. Karena itu, terdapat fitur seperti Template Engine, Modularity dan Routing.
Pada umumnya, Laravel adalah backend, namun tidak jarang juga Laravel dijadikan full stack.
Dewacloud
Dewacloud adalah layanan berbasis PaaS (Platform as a Service) dimana kamu dapat membuat, mengelola dan mendesain topologi dengan one-click, selain easy-to-use, tampilannya pun sudah user-friendly, sehingga dapat dengan mudah dipahami oleh user.
Pada artikel ini, kami akan membahas mengenai cara deploy Laravel menggunakan Apache dengan GitHub di Dewacloud.
Cara Deploy Laravel Menggunakan Apache di Dewacloud
Untuk melakukan Deploy Laravel ini, kamu perlu memastikan sudah memiliki account di Dewacloud.
Step 1: Login Dewacloud Dashboard
Login terlebih dahulu ke Dewacloud Dashboard dengan email dan password yang valid.
Step 2: Create New Environment
Laravel menggunakan bahasa pemrograman PHP, sehingga pilih PHP serta versi yang akan kamu gunakan, sesuaikan dengan requirement pada aplikasi yang akan kamu deploy dan kamu bisa tentukan Web Server yang ingin digunakan, lalu pilih driver SQL nya.
Kami di sini memilih Apache sebagai Web Server dan MariaDB sebagai Databasenya. Tentukan Region serta Environment Name nya, kemudian jika sudah klik Create di pojok kanan bawah.
Untuk melihat proses yang sedang berjalan, kamu dapat monitor pada Active Task di pojok kiri bawah.
Setelah pembuatan Environment selesai, kamu bisa melihat informasi login ke PHPMyAdmin yang dikirimkan ke email account Dewacloud kamu secara otomatis, jika tidak ada di Inbox, kamu bisa cek pada Spam/Junk email kamu.
Step 3: Deploy From Git
Klik Deploy from Git/SVN pada Deployments Environment yang akan di Deploy Laravel nanti nya.
Buat Repository baru untuk Laravel dengan klik Add New Repository.
Untuk nama Repository tidak dapat menggunakan special character, maksudnya adalah seperti penggunaan tanda baca maupun spasi.
Masukkan URL dari source GitHub yang akan kamu gunakan, kemudian klik Add.
Pilih path sesuaikan dengan kebutuhan kamu ingin di deploy di directory yang mana, jika ingin di standard document root atau public_html (seperti di cPanel), maka biarkan secara default, yaitu ROOT.
Terdapat 3 option:
- Check and auto-deploy updates, artinya akan melakukan automatic deployment dari semua perubahan repository yang dilakukan sesuai dengan interval waktu yang ditentukan.
- Auto-resolve conflicts, artinya untuk mencegah terjadinya merge conflict, perintah git reset –hard akan dilakukan selama project update. Akibatnya, contradictory files akan ter-update sesuai dengan versi repository, dan membuang semua perubahan yang dilakukan secara local.
- Enable zero-downtime deployment, artinya deployment dilakukan tanpa ada nya kemungkinan down.
Jika sudah, klik Deploy.
Akan terlihat proses nya pada Active Task, segala proses yang memungkinkan adanya Action yang dilakukan pada Environment, akan ter-logs pada Active Task.
Lama atau tidaknya proses deployment tersebut, tergantung dari berapa size file yang di deploy, semakin besar size file, semakin memakan waktu juga untuk prosesnya.
Kemudian cek file nya, apakah sudah ter-deploy atau belum dengan klik Config pada Application Server dan ke path var/www/webroot/ROOT/
Step 4: Create Database & User Database
Buat database dan user database pada phpMyAdmin dengan login sesuai dengan informasi login yang kamu terima di email, setelah login klik menu Databases.
Kami menggunakan laravel sebagai nama database dengan collation utf8mb4_unicode_ci, kemudian klik Create.
Klik menu Privileges, dan klik Add user account di bawah.
Masukkan Username dan Password sesuai dengan kebutuhan kamu, kami disini menggunakan laraveluser sebagai Username dan laravel123 sebagai passwordnya. Untuk Hostname, masukkan private IP dari Application Servers kamu, lalu klik Go di paling bawah.
Pastikan ceklis semua pada Database-specific privileges, dan klik Go pada bagian bawah.
Lakukan restart nodes pada MySQL untuk apply perubahan atau penambahan yang kamu lakukan.
Step 5: Config
Open file .env.example, lalu copy semua isi filenya ke notepad komputer kamu
Lalu buat file .env dan pastekan isi file yang sudah di copy ke notepad sebelumnya.
Perlu di ubah pada:
APP_URL=https://domainkamu.com/ DB_CONNECTION=mariadb DB_HOST=172.16.4.20 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=laraveluser DB_PASSWORD=laravel123
Penjelasan
- APP_URL : Masukkan nama domain, SLB atau subdomain yang kamu gunakan.
- DB_CONNECTION : Masukkan driver SQL yang kamu gunakan.
- DB_HOST : Masukkan IP Private dari SQL Database.
- DB_PORT : Biarkan secara default, yaitu 3306
- DB_DATABASE : Masukkan nama database yang sudah dibuat.
- DB_USERNAME : Masukkan user database yang sudah dibuat.
- DB_PASSWORD : Masukkan password pada user database yang sudah dibuat.
Jika sudah klik Save.
Edit Virtual Host
Ubah document root pada config virtual host Apache.
Tambahkan public, karena Laravel mengarahkan index nya di directory public.
Install Composer
Lakukan SSH Access ke container Application Server dan jalankan perintah di bawah ini.
$ cd /var/www/webroot/ROOT/ $ composer install
Hal tersebut berguna untuk menginstall dependencies yang diperlukan.
Generate APP_Key
Lakukan SSH Access ke container Application Server dan jalankan perintah berikut.
$ cd /var/www/webroot/ROOT/ $ php artisan key:generate
Maka akan terlihat APP_Key sudah berhasil ter-generate.
Install SSL Let’s Encrypt
Install SSL pada Domain, Subdomain atau SLB yang digunakan agar lebih secure.
Step 7: Testing
Step terakhir adalah testing, yaitu melakukan akses melalui SLB, Domain atau Subdomain kamu.
Kesimpulan
Jika kamu mengikuti artikel ini dari awal sampai akhir, artinya kamu sudah berhasil melakukan Deploy Laravel Menggunakan Apache Dengan GitHub di Dewacloud.
Demikian artikel ini, jangan sungkan untuk meninggalkan ide-ide topik yang ingin Anda baca di blog ini. Semoga artikel ini membantu kamu, ya.