Cara Mudah Upload Laravel Project ke Shared Hosting

Cara Mudah Upload Laravel Project ke Shared Hosting

Admin
Admin・ 6 Juni 2021
13 min read ・ 10605 views

Laravel Shared Hosting - Jika kamu mempunyai laravel project kemudian kamu ingin menyebarkannya atau mempublikasinnya secara online, mungkin kamu akan membutuhkan hosting untuk dapat membuat laravel project tersebut dapat diakses secara online. Shared hosting merupakan solusi untuk kamu yang sedang mencari hosting dengan harga murah. Shared hosting banyak dipilih karena biaya sewanya relatif agak murah. Untuk upload laravel project ke shared hosting, prosesnya tidak sama dengan upload file HTML di shared hosting, ada beberapa penyesuaian yang harus kita lakukan. Kebanyakan shared hosting juga tidak menyediakan terminal SSH, jadi kita yang ingin menggunakan shared hosting untuk upload laravel project tidak akan bisa menggunakan perintah seperti php artisan cache:clear, php artisan storage:link atau yang lainnya. Untuk menjalankan perintah-perintah artisan laravel tersebut di shared hosting, kita bisa menggunakan cronjob atau bisa juga dengan symlink.

Di artikel ini, saya akan memberikan panduan atau tutorial lengkap bagaimana cara mudah upload laravel project ke shared hosting. Disini saya akan memakai layanan shared hosting dari Niagahoster karena menurut pengalaman saya memang Niagahoster sudah terbukti kwalitasnya baik dari segi layanan atau support, kecepatan website, jaminan uptime dan lain-lain. Jika teman-teman tertarik untuk upload laravel project kalian ke shared hosting Niagahoster, kalian bisa order shared hosting disini dan gunakan kode voucher "codelapan" saat checkout untuk mendapatkan diskon.

Dan pada percobaan ini, saya akan coba upload atau deploy laravel project website company profile yang sudah saya bagikan sebelumnya ke shared hosting. Jika kalian mengikuti tutorial ini, kalian bisa menggunakan source code tersebut atau bisa juga mengikuti dengan memakai source code punya kalian sendiri.

Baca: Download Source Code Website Company Profile (Laravel 8 & Bootstrap)

Membuat Database Baru di Hosting

Sebelum masuk ke langkah-langkah upload laravel project ke hosting, kita harus mempersiapkan database di hosting terlebih dahulu. Bagaimana langkah-langkahnya ? yuk simak penjelasannya di bawah ini.

Setup MySQLDB

Create New Database

Langkah pertama untuk membuat database baru di hosting, silahkan masuk ke cPanel lalu pilih MySqlDB. di MySqlDB, pertama kita akan membuat database baru seperti di atas lalu lanjutkan dengan menekan button Create Database.

Add New User

Setelah melewati proses membuat database baru, sekarang kita perlu membuat user baru yang akan kita gunakan untuk mengakses database nantinya. Silahkan isi form input yang tersedia seperti gambar di atas lalu lanjutkan dengan menekan button Create User.

Add User To Database

Kemudian kita akan menambahkan akses akun user yang sudah kita buat sebelumnya ke database.

Privileges 

Setelah menekan button Add pada Add User to Database, kita akan dihadapkan pilihan-pilihan seperti gambar di atas. Disini silahkan pilih sesuai dengan kebutuhan kalian, dan pada artikel ini saya akan memilih All Privilages untuk user u1102229_company di database u1102229_company. Setelah selesai memilih privileges, lanjutkan dengan menekan button Make Changes.

Import Database di phpMyAdmin

Setelah menyelesaikan semua proses di langkah setup MySqlDB, sekarang silahkan masuk ke phpMyAdmin di cPanel. Di PhpMyAdmin, silahkan pilih database yang baru saja kita buat pada langkah setup MySqlDB sebelumnya. Kemudian masuk ke tab-menu Import, cari file company.sql yang sudah saya sertakan di repostory source code company profile laravel, lanjutkan dengan menekan button kirim atau Go.

Oke, sampai disini kita sudah berhasil membuat database di phpMyAdmin shared hosting. Kita lanjutkan dengan menyiapkan file-file laravel yang akan kita upload ke shared hosting.

Cara 1: Upload Laravel ke Shared Hosting

Pada artikel ini, saya akan membagikan 2 cara bagaimana cara upload laravel project ke shared hosting. Di cara yang pertama ini saya akan memisahkan folder public yang akan saya upload ke public_html (di hosting) dan folder lainnya saya upload di root hosting.

Edit .ENV

APP_NAME=Laravel
APP_ENV=production
APP_KEY=base64:wbCizzT+msaj0kL3fcQ/ILOKP9QcUCnkaXFSZtcSHmc=
APP_DEBUG=false
APP_URL=https://example.com

LOG_CHANNEL=stack
LOG_LEVEL=debug

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=yourDB
DB_USERNAME=yourUsername
DB_PASSWORD=yourPassword123

BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

Sebelum melakukan compress ke zip untuk file-file laravel, silahkan edit terlebih dahulu file .env kalian. Di APP_ENV bisa diganti dari local ke production, APP_DEBUG silahkan ganti dari true ke false agar saat terjadi error di live tidak menampilkan tampilan error seperti pada saat di local, APP_URL silahkan sesuaikan dengan domain kalian dan DB_DATABASE, DB_USERNAME, DB_PASSWORD silahkan sesuaikan dengan apa yang telah dibuat pada langkah setup MySqlDB sebelumnya.

Compress Laravel Project ke ZIP

folder public laravel

Sekarang kita akan compress folder atau file yang ada di folder public ke format ZIP. File public.zip ini nantinya akan kita upload ke public_html (di hosting).

Compress folder laravel

Kemudian silahkan keluar dari folder public, compress semua folder atau file (kecuali folder public) ke format zip. File company-profile.zip ini nanti akan kita upload ke folder root file manager di hosting.

*Catatan: untuk folder node_modules bisa dihapus atau tidak disertakan saat upload ke hosting.

Upload File zip ke Hosting

laravel shared hosting

Silahkan masuk ke cPanel, kemudian pilih File Manager. Pada tab menu upload, silahkan klik lalu cari file company-profile.zip yang sudah kita compress sebelumnya. Jika proses upload sudah selesai, silahkan extract file company-profile.zip yang baru kita upload sebelumnya dan akan kita extract ke folder companyprofile.

laravel shared hosting

Oke, sekarang kita masuk ke folder public_html. Disini prosesnya sama dengan proses sebelumnya yaitu klik tab menu Upload, cari file public.zip yang berisikan folder atau file-file yang terdapat pada folder public laravel yang sudah kita compress ke zip sebelumnya. Setelah proses upload file public.zip selesai, sekarang silahkan extract file public.zip tersebut di folder public_html.

Edit index.php

Kita masuk ke file index.php di folder public_html untuk menyesuaikan path. Silahkan cari kode seperti di bawah ini pada file index.php

require __DIR__.'/../vendor/autoload.php';

Ubah menjadi

require __DIR__.'/../companyprofile/vendor/autoload.php';

Dan cari kode di bawah ini

$app = require_once __DIR__.'/../bootstrap/app.php';

Ubah menjadi

$app = require_once __DIR__.'/../companyprofile/bootstrap/app.php';

Membuat Storage Link di Shared Hosting

Di folder public_html kita mungkin sudah punya folder storage, tapi sebenarnya folder tersebut tidak berfungsi saat kita upload ke hosting karena folder tersebut kita bawa dari local dan tidak terhubung ke folder storage. Bagaimana solusinya ? solusinya kita bisa hapus folder tersebut lalu buat storage link lagi. Bagaimana cara membuat storage link di shared hosting yang tidak terdapat fitur SSH ? Oke, memang beberapa shared hosting tidak menyediakan terminal SSH untuk dapat kita gunakan menjalankan perintah-perintah artisan seperti php artisan storage:link. Tapi ada cara lain untuk membuat storage link di shared hosting, yaitu dengan CronJob.

ln -s /home/u111xxxx/companyprofile/storage/app/public /home/u111xxxx/public_html/storage

Baris script di atas merupakan contoh script untuk membuat folder storage link dengan cronjob di shared hosting.

Menjalankan php artisan storage link dengan cronjob di shared hosting

Silahkan buka menu Cronjob yang ada di cPanel, lalu input pada form-form input yang tersedia. Untuk Common Settings, silahkan bisa pilih Once per Five Minutes saja. Kemudian pada command, silahkan isi dengan script yang sudah saya sertakan di atas. Pada script tersebut, silahkan ganti u111xxxx dengan username atau nama akun cPanel kalian dan companyprofile silahkan sesuaikan juga dengan folder project kalian di root folder file manager. Jika form input sudah terisi semua, klik Add New Cron Job.

Silahkan tunggu sekitar 5 menit dengan melakukan pengecekan di folder public_html dengan reload halaman atau refresh halaman. Jika folder storage sudah tersedia, segera lakukan penghapusan cronjob karena jika tidak, cronjob akan terus menjalankan prosesnya.

laravel shared hosting

Sekarang seharusnya kita sudah berhasil upload dan meng-onlinekan laravel project di shared hosting. Silahkan coba dengan mengakses domain kamu di browser.

Cara 2: Upload Laravel ke Shared Hosting

Setelah sukses upload laravel project ke shared hosting dengan cara yang pertama, kali ini saya akan membagikan cara kedua untuk upload laravel project ke shared hosting. Pada cara kedua ini, kita tidak akan memisahkan folder public. Jadi, semua folder atau file-file pada laravel project kita akan sama-sama diupload di folder public_html di hosting.

Kita kembali lagi ke laravel project di local. Silahkan copy file .htaccess dan index.php yang ada di folder public lalu paste di folder root laravel project kita atau sejajar dengan file .env, folder app, folder routes dan lain-lain, kemudian lakukan perubahan kode di file index.php yang baru saja di paste di folder root laravel project tersebut.

Buka file public_html/index.php, cari kode seperti di bawah ini

require __DIR__.'/../vendor/autoload.php';

ubah menjadi

require __DIR__.'/vendor/autoload.php';

dan cari lagi kode seperti di bawah ini

$app = require_once __DIR__.'/../bootstrap/app.php';

ubah menjadi

$app = require_once __DIR__.'/bootstrap/app.php';

compress laravel project ke zip

Sekarang, compress seluruh folder atau file laravel project termasuk folder public ke format zip. File zip ini nantinya akan kita upload ke folder public_html di shared hosting.

Buka File Manager di cPanel, kemudian masuk ke public_html. Pada tab menu upload, silahkan upload file zip yang sudah kita compress sebelumnya. Setelah proses upload berhasil, extract file zip tersebut di folder public_html.

Sekarang kalau kita coba akses domain kita di browser, website laravel project kita sudah berhasil online tapi seluruh asset seperti image masih belum muncul, untuk itu kita perlu menjalankan storage link via cronjob lagi seperti pada cara 1. Dan sebelum masuk ke cronjob, kita harus hapus terlebih dahulu folder storage yang ada di folder public, karena folder tersebut tidak berfungsi saat dibawa dari local ke hosting.

ln -s /home/u111xxxx/public_html/storage/app/public /home/u111xxxx/public_html/public/storage

Silahkan masuk ke Cronjob di cPanel kalian, kemudian pilih common settings "Once per Five Minutes" dan pada command masukkan script seperti contoh di atas. Ganti u111xxxx, sesuaikan dengan username atau akun cPanel kalian. Tunggu kurang lebih 5 menit sambil mengecek secara berkala pada folder public dengan refresh atau reload halaman. Jika folder storage sudah muncul, segera lakukan penghapusan pada Cronjob agar script tidak dijalankan secara terus menerus.

deploy laravel project to shared hosting

Oke, jika folder storage di folder public sudah muncul, sekarang jika kita coba akses kembali domain kita di browser, maka semua asset seperti gambar pada folder storage sudah berhasil muncul. Mudah dan cepatkan untuk upload atau deploy laravel project ke shared hosting ?

Kesimpulan

Pada artikel ini, kita sudah belajar bagaimana cara upload laravel project ke shared hosting dengan menggunakan 2 cara. Cara pertama kita pisahkan folder public dengan folder atau file laravel yang lain. Dan cara kedua, kita tidak perlu memisahkan folder public dengan folder atau file laravel yang lainnya, tetapi kita perlu meng-copy file .htaccess dan index.php yang ada di folder public dan me-pastenya di folder root laravel project (sejajar dengan folder app, resources, routes, dll) dan melakukan penyesuaian kode pada file index.php. Silahkan kalian tentukan sendiri cara mana yang akan kalian gunakan untuk upload atau deploy laravel project ke shared hosting.

Sekian artikel tentang upload laravel project ke shared hosting kali ini, jika kalian punya saran, kritik atau apapun itu yang ingin didiskusikan, silahkan tulis komentar kalian pada form komentar yang tersedia di bawah ini. See you

 

Data illustrations by Storyset

Tinggalkan Komentar
Loading Comments