Deploy Project Laravel di Shared Hosting

mithicher
I Wayan Adi Sparta Oct, 05 2022 12:31 PM
162

Setelah kita selesai mengembangkan website, perlu halnya untuk mendeploy aplikasi tersebut ke VPS maupun share hosting. Nah disesi kali ini, saya akan menampilkan bagaimana langkah-langkah untuk mendeploy website anda ke shared hosting.

Laravel sendiri merupakan salah satu framework paling populer saat ini. Laravel dikembangkan untuk membantu anda mengembangkan website menggunakan bahasa pemrograman PHP. Laravel menjadi salah satu framework yang paling populer bukan tanpa sebab. Hal ini karena Laravel sangat disenangi oleh Developer karena memberikan banyak kemudahan.

Baca juga artikel mengenai Membuat Project Laravel Menggunakan Composer

Persiapan

Sebelum dideploy, ada beberapa hal yang harus anda pastikan dari cpanel share hosting maupun dari sisi project Laravel anda.

  1. Project Laravel

    Tentunya sebelum ada melakukan hosting, anda harus memastikan bahwa project yang anda buat sudah selesai atau paling tidak tidak menampilkan pesan error ketika dijalankan. Hal ini juga penting dilakukan terkait keamanan storage dan data anda di shared hosting nantinya.

  2. Versi dan Ekstensi PHP

    Penyesuaian versi PHP sangat penting dilakukan agar website anda dapat berjalan dengan baik. Saya merekomendasikan anda menggunakan versi PHP yang sama antara di shared hosting dan diperangkat yang anda pergunakan untuk mengembangkan website.

Tahap Deploy

Nah langsung saja ke tahap deploy aplikasi. Berikut merupakan tahapan yang dapat anda ikuti untuk mendeploy web project Laravel anda.

1. Persiapan Domain atau Subdomain

Pertama, anda harus sudah menyiapkan domain atau subdomain yang akan anda gunakan. Anda juga harus mengetahui directory utama pada domain atau subdomain tersebut.

Apabila anda menggunakan domain utama, maka otomatis directory utama anda adalah folder public_html.

Namun apabila anda menggunakan subdomain, maka directory anda harus menyesuaikan folder utama pada subdomain tersebut. Sebagai contoh saya akan menggunakan subdomain blog-saya. Maka yang saya lakukan adalah masuk ke cpanel, kemudian saya akan membuat subdomain melalui menu berikut:

Membuat Sub Domain

Selanjutnya halaman akan berpindah ke formulir untuk pengisian nama subdomain.

Formulir Create Subdomain

Adapun penjelasan masing-masing isian tersebut diatas adalah sebagai berikut:

  • Subdomain, diisi dengan nama subdomain yang akan dibuat. Untuk kasus ini saya menggunakan nama blog-saya
  • Domain, diisi dengan domain utama yang akan dipergunakan. Saya menggunakan domain utama adisparta.xyz sehingga nantinya website ini akan dapat diakses dengan alamat https://blog-saya.adisparta.xyz
  • Document Root, diisi dengan lokasi directory utama dari subdomain anda. Difolder inilah nantinya sourcecode anda akan ditaruh dan dijalankan oleh server. Pada contoh ini, letak dokumen utama saya adalah di /public_html/blog-saya

2. Pengaturan Versi PHP

Setelah berhasil menyiapkan domain atau subdomain, tahap selanjutnya adalah menyesuaikan versi PHP yang akan digunakan. Dalam kasus ini saya rekomendasi anda menggunakan versi PHP yang sama dengan environment tempat anda mengembangkan project Laravel.

PHPMulti Manager

Klik pada menu MultiPHP Manager yang akan mengalihkan anda ke halaman pengaturan versi PHP.

Pilih domain

Sebagai contoh, saya disini akan secara khusus menggunakan PHP versi 7.2 ke subdomain ini. Sehingga saya harus mencentang subdomain kemudian dipojok kanan atas saya akan memilih versi PHP yang akan dipergunakan yang selanjutnya tekan tombol Apply untuk menyimpan. Kurang lebih hasil akhirnya seperti gambar berikut

Hasil Ubah Domain

3. Installasi Extension PHP

Tahap selanjutnya anda harus melakukan installasi extension PHP. Laravel memerlukan beberapa extension berikut agar berjalan normal:

  • PHP >= 7.2.5
  • BCMath PHP Extension
  • Ctype PHP Extension
  • Fileinfo PHP extension
  • JSON PHP Extension
  • Mbstring PHP Extension
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension

Nah disini anda harus menyesuaikannya dengan PHP di shared hosting tersebut. Klik menu Select PHP Version pada section Software

Atur Extensions

Setelah dialihkan, klik menu Extensions

Menu Extensions

Anda akan dialihkan ke halaman baru tempat memilih extensions PHP yang akan dipasang. Pilih versi PHP yang sebelumnya digunakan kemudian checklist pada daftar extensions yang anda perlukan. Pada contoh ini, saya akan memilih php 7.2 (sesuai yang saya pergunakan pada subdomain) kemudian saya akan mencentang beberapa extensions yang saya perlukan.

Checklist Extensions

4. Menyiapkan Database

Anda perlu menyiapkan database untuk dijalankan di project tersebut. Caranya, pilih menu Mysql Databases

Menu Database

Pada halaman tersebut, masukan nama database baru anda kemudian klik tombol Create Database

Create Database

Setelah berhasil membuat database, anda dapat melakukan import database anda melalui phpMyAdmin pada section Database.

5. Upload Source Code

Tahap ini dapat anda lakukan dengan mengakses menu File Manager. Sebenarnya cara upload source seperti ini menurut saya sudah terlalu lawas atau sudah akan ditinggalkan. Hal ini karena dengan mengupload file seperti ini rentan terhadap kesalahan saat terjadi update pada website. Cara yang paling update saat ini adalah dengan menggunakan version control yaitu git. Namun sampai saat ini belum semua cpanel mensupport git. Nah untuk sekarang, kita akan menguploadnya dengan cara paling sederhana dulu.

Menu File Manager

Setelah mengklik menu File Manager ada akan diarahkan ke halaman baru yang berisi sourcecode dari domain kita. Pada tahap ini, kita akan melakukan upload sourcecode Laravel ke directory utama domain atau subdomain kita. Apabila menggunakan domain utama, anda hanya perlu upload project pada folder public_html.

Namun, apabila menggunakan subdomain, anda perlu menguploadnya ke directory utama dari subdomain anda. Pada kasus ini sudah saya informasikan diatas bahwa folder utama dari subdomain saya berada pada folder public_html/blog-saya sehingga saya perlu masuk ke folder tersebut dan mengupload project saya kesana.

Directory Tree File Manager

Struktur File Awal

Dari gambar diatas dapat dilihat isi dari folder utama dari subdomain yang akan saya pergunakan. Nah untuk mengupload project Laravel, klik tombol upload pada toolbar. Pastikan sebelum upload sourcecode anda telah mengcompress project anda ke dalam bentuk *.zip untuk mempercepat proses upload.

Setelah file *.zip telah anda upload, anda dapat langsung meng-extract file tersebut. Kira-kira seperti inilah hasilnya.

Struktur File Setelah Project Diunggah

6. Konfigurasi .env file

Setelah berhasil mengupload dan extract project anda ke directory utama dari domain. Sekarang saatnya anda melakukan konfigurasi pada file .env. Konfigurasi yang dilakukan berupa konfigurasi database dan status aplikasi. Selain itu, apabila aplikasi anda menggunakan fitur Mail maka anda harus mengkonfigurasinya juga pada file ini.

Untuk menyesuaikan konfigurasi database, buka file .env kemudian edit bagian berikut:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

Pada bagian DB_HOST dapat anda isi dengan localhost. Pada bagian DB_PORT sesuaikan dengan PORT mysql yang dipergunakan pada domain anda, biasanya kita biarkan default yaitu 3306. Bagian DB_DATABASE masukan nama database yang sebelumnya telah kita buat pada langkah nomor 4. Terakhir, pada bagian DB_USERNAME dan DB_PASSWORD silahkan masukan username dan password dari akun shared hosting anda.

Setelah database terkonfigurasi, saatnya mencoba menjalankan website tersebut. Dari contoh ini, harusnya halaman website saya berada pada alamat https://blog-saya.adisparta.xyz. Namun karena laravel memiliki public folder, sehingga saya harus mengaksesnya menjadi https://blog-saya.adisparta.xyz/public

First Run Aplikasi Laravel di Shared Hosting

Apabila terkonfigurasi dengan baik, maka website akan berjalan dengan mengakses halaman tersebut.

Tahap selanjutnya kita akan melakukan konfigurasi status aplikasi. Buka kembali file .env dan edit bagian berikut:

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:5/7V6Bt8bK/nOX0eU9E2tDi8o0ZCASu7KdMbmj2Ysyg=
APP_DEBUG=true
APP_URL=http://localhost

Pada konfigurasi diatas, anda harus mengganti status APP_ENV dan APP_DEBUG. Ganti APP_ENV menjadi production dan APP_DEBUG menjadi false. Jangan lupa juga mengganti APP_URL menjadi url dari aplikasi anda saat ini seperti berikut:

APP_NAME=Laravel
APP_ENV=production
APP_KEY=base64:5/7V6Bt8bK/nOX0eU9E2tDi8o0ZCASu7KdMbmj2Ysyg=
APP_DEBUG=false
APP_URL=https://blog-saya.adisparta.xyz

Ini berguna agar apabila terjadi error, maka website anda tidak akan menampilkan pesan dan log error secara mendetail, tapi hanya akan menampilkan halaman error saja beserta status code error.

7. Menghilangkan Path Public pada Url

Tahap terakhir yang kita lakukan adalah untuk menghilangkan path public dari url website. Apabila kita perhatikan, sangat kurang bagus apabila url yang kita miliki sekarang memiliki path public. Sedangkan saat mengembangkan project, sama sekali tidak ada path public tersebut. Nah untuk menghilangkannya ada beberapa cara yang dapat dilakukan. Untuk sekarang, saya akan menyajikan cara yang paling sederhana, yaitu dengan menggunakan .htaccess.

Kembali ke directory utama project anda, kemudian buat baru atau edit yang sudah file ada dengan nama .htaccess

RewriteEngine on
RewriteCond %{HTTP_HOST} ^blog-saya.adisparta.xyz$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.blog-saya.adisparta.xyz$
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]

Pada file tersebut anda harus mengganti bagian blog-saya.adisparta.xyz sesuai dengan url website anda. Maksud dari file tersebut adalah menjadikan folder public sebagai folder utama pada domain atau subdomain. Sehingga apabila kita mengakses https://blog-saya.adisparta.xyz pada browser maka akan otomatis memanggil path https://blog-saya.adisparta.xyz/public/.

Sampai tahap ini, harusnya website anda sudah dapat diakses menggunakan url domain atau subdomain anda.

Penutup

Sebenarnya banyak sekali cara yang dapat kita lakukan untuk dapat mendeploy project kita ke webserver dalam lingkup pengaturan directory dalam File Manager. Namun cara diatas merupakan cara yang paling sering saya pergunakan. Selain itu, sebenarnya ketika kita mendeploy suatu aplikasi, dapat dipastikan pasti ada saja kasus-kasus error tertentu sesuai tempat hosting, domain ataupun framework yang kita pergunakan. Apabila anda bertemu dengan kasus seperti itu, jalan satu-satunya adalah dengan memahami pesan error atau informasi yang disajikan sehingga selanjutnya dapat kita jadikan acuan dalam menyelesaikan permasalahan tersebut.

Nah, sekian yang dapat saya sampaikan pada artikel ini, apabila anda memiliki keluhan atau perlunya bantuan dalam mendeploy website, anda dapat menghubungi saya menggunakan kontak saya pada website ini.

Terimakasi.

Tags:
PHP
Shared Hosting
Laravel
Website

Saya bisa membuatkan anda Aplikasi berkualitas

© 2021 Adisparta. All rights reserved.