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
Sebelum dideploy, ada beberapa hal yang harus anda pastikan dari cpanel share hosting maupun dari sisi project Laravel anda.
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.
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.
Nah langsung saja ke tahap deploy aplikasi. Berikut merupakan tahapan yang dapat anda ikuti untuk mendeploy web project Laravel anda.
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:
Selanjutnya halaman akan berpindah ke formulir untuk pengisian nama subdomain.
Adapun penjelasan masing-masing isian tersebut diatas adalah sebagai berikut:
blog-saya
/public_html/blog-saya
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.
Klik pada menu MultiPHP Manager yang akan mengalihkan anda ke halaman pengaturan versi PHP.
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
Tahap selanjutnya anda harus melakukan installasi extension PHP. Laravel memerlukan beberapa extension berikut agar berjalan normal:
Nah disini anda harus menyesuaikannya dengan PHP di shared hosting tersebut. Klik menu Select PHP Version pada section Software
Setelah dialihkan, klik 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.
Anda perlu menyiapkan database untuk dijalankan di project tersebut. Caranya, pilih menu Mysql Databases
Pada halaman tersebut, masukan nama database baru anda kemudian klik tombol Create Database
Setelah berhasil membuat database, anda dapat melakukan import database anda melalui phpMyAdmin pada section Database.
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.
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.
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.
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
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.
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.
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.
Pernahkan anda memilliki project yang secara terjadwal melakukan suatu aksi? Misalkan anda memiliki sebuah website yang menampung data user termasuk tanggal lahirnya. Anda menambahkan suatu fitur tamb...
Selain menggunakan fitur standar dari framework, sebagai developer juga memerlukan plugin atau package tambahan untuk mengembangkan project tergantung dari fitur yang diperlukan project tersebut maupu...
Single Page Application (SPA) merupakan teknologi javascript dalam aplikasi web atau situs web yang berinteraksi dengan pengguna secara dinamis menampilkan halaman web saat ini dengan data baru dari s...
Saya bisa membuatkan anda Aplikasi berkualitas Tertarik mengembangkan aplikasi? Hubungi saya sekarang untuk mendapatkan penawaran terbaik