Siap membawa aplikasi Laravel kamu ke dunia nyata? Deploy aplikasi Laravel ke hosting cPanel memang terlihat rumit di awal, tapi jangan khawatir! Panduan lengkap ini akan memandu kamu langkah demi langkah, dari persiapan hingga aplikasi kamu go live dan siap digunakan oleh pengguna. Kita akan membahas semua yang perlu kamu ketahui agar proses deploy berjalan lancar dan tanpa kendala. Yuk, simak selengkapnya!
1. Persiapan Sebelum Deploy: Fondasi Penting untuk Sukses
Sebelum terjun ke proses deploy aplikasi Laravel ke cPanel, ada beberapa persiapan penting yang perlu kamu lakukan. Anggap saja ini adalah fondasi yang kokoh untuk memastikan aplikasi kamu berjalan dengan lancar di lingkungan hosting.
-
Memilih Layanan Hosting cPanel yang Tepat: Pilihlah layanan hosting yang menawarkan cPanel dan memenuhi kebutuhan aplikasi Laravel kamu. Pastikan spesifikasi server (RAM, CPU, storage) mencukupi, dan perhatikan juga dukungan teknis yang ditawarkan. Beberapa penyedia hosting populer dengan cPanel antara lain Niagahoster, IDCloudHost, DomaiNesia, dan Dewaweb.
-
Memastikan Versi PHP yang Kompatibel: Laravel memiliki persyaratan versi PHP tertentu. Pastikan versi PHP di server hosting kamu sesuai atau lebih tinggi dari yang dibutuhkan oleh versi Laravel yang kamu gunakan. Kamu bisa mengecek versi PHP di cPanel pada bagian “Select PHP Version”. Upgrade jika diperlukan. Umumnya, Laravel 8 ke atas membutuhkan PHP 7.3 atau lebih tinggi.
-
Membuat Database MySQL: Aplikasi Laravel umumnya membutuhkan database untuk menyimpan data. Buatlah database MySQL di cPanel pada bagian “MySQL Databases”. Catat nama database, username, dan password yang akan digunakan.
-
Menguji Aplikasi Laravel Secara Lokal: Sebelum deploy, pastikan aplikasi Laravel kamu berjalan dengan baik di lingkungan lokal (misalnya menggunakan XAMPP atau Laragon). Perbaiki semua bug dan error yang mungkin ada.
-
Mempersiapkan File
.env: File.envberisi konfigurasi penting aplikasi, termasuk koneksi database, API keys, dan variabel lingkungan lainnya. Sesuaikan file.envdengan informasi database yang telah kamu buat di cPanel. -
Membuat Backup: Sebelum melakukan perubahan apapun pada server hosting, selalu lakukan backup website dan database kamu. Ini akan sangat membantu jika terjadi kesalahan yang tidak terduga.
2. Upload Aplikasi Laravel ke cPanel: Dua Metode Utama
Setelah semua persiapan selesai, langkah selanjutnya adalah mengupload aplikasi Laravel kamu ke server hosting cPanel. Ada dua metode utama yang bisa kamu gunakan:
-
Melalui File Manager cPanel:
- Kompres File Aplikasi: Kompres seluruh direktori aplikasi Laravel kamu menjadi file
.zip. Pastikan untuk tidak menyertakan direktorivendordannode_modules(jika ada). Kita akan menginstall dependencies ini langsung di server. - Upload File
.zip: Login ke cPanel, buka “File Manager”, dan navigasikan ke direktoripublic_html(atau subdirektori jika kamu ingin menginstall aplikasi di subdomain). Upload file.zipyang telah kamu buat. - Ekstrak File: Setelah file
.zipselesai diupload, ekstrak file tersebut di direktoripublic_html.
- Kompres File Aplikasi: Kompres seluruh direktori aplikasi Laravel kamu menjadi file
-
Melalui FTP Client (FileZilla):
- Download dan Install FTP Client: Download dan install aplikasi FTP client seperti FileZilla.
- Konfigurasi FTP Client: Masukkan informasi FTP (host, username, password, port) yang diberikan oleh penyedia hosting kamu ke FTP client. Informasi ini biasanya bisa ditemukan di email konfirmasi hosting atau di cPanel.
- Upload File Aplikasi: Hubungkan ke server hosting melalui FTP client. Navigasikan ke direktori
public_htmldan upload seluruh direktori aplikasi Laravel kamu (kecualivendordannode_modules). Proses ini mungkin memakan waktu cukup lama tergantung ukuran file dan kecepatan internet kamu.
Tips: Jika kamu menggunakan Git, kamu juga bisa melakukan deploy menggunakan Git. Cara ini lebih efisien dan mudah untuk update aplikasi di kemudian hari.
3. Menginstall Dependencies: composer install Wajib!
Setelah aplikasi Laravel berhasil diupload, langkah selanjutnya adalah menginstall semua dependencies yang dibutuhkan. Ini dilakukan dengan menggunakan Composer, package manager untuk PHP.
-
Akses SSH Terminal: Login ke cPanel dan cari opsi “Terminal”. Opsi ini memungkinkan kamu mengakses server melalui SSH. Jika kamu tidak memiliki akses SSH, hubungi penyedia hosting kamu.
-
Navigasi ke Direktori Aplikasi: Setelah berhasil masuk ke terminal, gunakan perintah
cduntuk navigasi ke direktori aplikasi Laravel kamu (misalnyacd public_html). -
Jalankan
composer install: Jalankan perintahcomposer installuntuk menginstall semua dependencies yang terdaftar di filecomposer.json. Proses ini akan mengunduh dan menginstall semua package yang dibutuhkan.- Jika Composer Belum Terinstall: Jika kamu mendapatkan pesan error bahwa
composertidak dikenal, berarti Composer belum terinstall di server. Kamu bisa menginstall Composer dengan mengikuti panduan dari getcomposer.org. Beberapa penyedia hosting mungkin sudah menyediakan Composer secara global, jadi kamu tidak perlu menginstallnya.
- Jika Composer Belum Terinstall: Jika kamu mendapatkan pesan error bahwa
-
Atasi Error: Jika ada error selama proses install, perhatikan pesan error tersebut. Beberapa error umum termasuk versi PHP yang tidak sesuai, package yang tidak kompatibel, atau memori yang kurang.
4. Konfigurasi Aplikasi Laravel: Menghubungkan Database dan Mengatur Environment
Setelah dependencies terinstall, kamu perlu mengkonfigurasi aplikasi Laravel agar terhubung ke database dan berfungsi dengan benar.
-
Edit File
.env: Gunakan File Manager cPanel atau editor teks melalui SSH terminal untuk membuka file.env. Sesuaikan nilai-nilai berikut:DB_CONNECTION: Biasanyamysql.DB_HOST: Biasanyalocalhostatau127.0.0.1.DB_PORT: Biasanya3306.DB_DATABASE: Nama database yang telah kamu buat di cPanel.DB_USERNAME: Username database yang telah kamu buat di cPanel.DB_PASSWORD: Password database yang telah kamu buat di cPanel.APP_URL: URL aplikasi kamu (misalnyahttp://domainanda.com).APP_DEBUG: Ubah menjadifalsedi lingkungan production.
-
Generate Application Key: Jalankan perintah
php artisan key:generateuntuk menghasilkan application key yang unik. Key ini digunakan untuk mengenkripsi data sensitif. -
Migrasi Database: Jalankan perintah
php artisan migrateuntuk membuat tabel-tabel database berdasarkan migration yang telah kamu definisikan. -
Seed Database (Opsional): Jika kamu memiliki seeders untuk mengisi data awal ke database, jalankan perintah
php artisan db:seed. -
Cache Konfigurasi: Jalankan perintah
php artisan config:cachedanphp artisan route:cacheuntuk meningkatkan performa aplikasi.
5. Konfigurasi Web Server: Mengarahkan Direktori Public
Secara default, web server akan mencari file index.php di direktori public_html. Aplikasi Laravel memiliki file index.php di dalam direktori public. Kita perlu mengarahkan web server ke direktori public ini.
-
Menggunakan
.htaccess: Buat atau edit file.htaccessdi direktoripublic_html(jika belum ada) dan tambahkan kode berikut:<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On # Redirect Trailing Slashes If Not A Valid File RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*[^/])$ /$1/ [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] </IfModule>Catatan: Pastikan
mod_rewriteaktif di server hosting kamu. Kamu bisa menanyakannya ke penyedia hosting jika tidak yakin. -
Menggunakan Shared Hosting Alternatif (Simlink): Jika metode
.htaccesstidak berfungsi (biasanya karena konfigurasi server), kamu bisa membuat symlink.-
Pindahkan Direktori
public_html: Rename direktoripublic_htmlmenjadi nama lain, misalnyapublic_html_old. -
Buat Simlink: Di direktori induk
public_html_old, jalankan perintah berikut melalui SSH terminal:ln -s public public_htmlIni akan membuat symlink bernama
public_htmlyang mengarah ke direktoripublicdi dalam direktori aplikasi Laravel kamu.
-
6. Mengatur Izin File dan Direktori: Keamanan Penting
Izin file dan direktori yang salah dapat menyebabkan aplikasi kamu tidak berfungsi atau bahkan rentan terhadap serangan. Pastikan izin yang tepat diatur untuk keamanan aplikasi.
-
Direktori
storage: Direktoristorageharus memiliki izin writeable oleh web server. Jalankan perintah berikut:chmod -R 775 storage chmod -R 775 bootstrap/cache -
File Lainnya: Sebagian besar file lainnya harus memiliki izin read-only untuk web server. Izin default 644 biasanya sudah cukup.
Penting: Hindari memberikan izin 777 (read, write, execute untuk semua user) kecuali benar-benar diperlukan.
7. Mengaktifkan SSL/TLS (HTTPS): Wajib untuk Keamanan
Mengamankan website kamu dengan SSL/TLS (HTTPS) adalah hal yang sangat penting untuk melindungi data pengguna dan meningkatkan kepercayaan.
-
Cek Apakah SSL Sudah Aktif: Periksa apakah domain kamu sudah memiliki sertifikat SSL. Kamu bisa melihat ikon gembok di address bar browser saat mengunjungi website kamu.
-
Install SSL/TLS Certificate: Jika belum ada, kamu bisa mendapatkan sertifikat SSL gratis dari Let’s Encrypt melalui cPanel. Cari opsi “SSL/TLS” di cPanel dan ikuti instruksinya.
-
Redirect HTTP ke HTTPS: Setelah SSL aktif, pastikan semua traffic HTTP otomatis di-redirect ke HTTPS. Tambahkan kode berikut ke file
.htaccess:RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
8. Debugging dan Troubleshooting: Mengatasi Masalah yang Mungkin Timbul
Meskipun kamu sudah mengikuti semua langkah dengan benar, terkadang masalah tetap bisa muncul. Berikut beberapa tips debugging dan troubleshooting:
-
Periksa Log File: Periksa log file Laravel di direktori
storage/logsuntuk mencari pesan error. Log file biasanya memberikan petunjuk tentang penyebab masalah. -
Aktifkan Debug Mode (Sementara): Jika kamu masih kesulitan menemukan penyebab masalah, aktifkan debug mode di file
.envdengan mengubahAPP_DEBUG=falsemenjadiAPP_DEBUG=true. Ini akan menampilkan pesan error yang lebih detail di browser. Ingat untuk menonaktifkan debug mode kembali setelah masalah teratasi! -
Periksa Konfigurasi Database: Pastikan konfigurasi database di file
.envsudah benar. Cek nama database, username, password, dan host. -
Periksa Izin File dan Direktori: Pastikan izin file dan direktori sudah sesuai.
-
Clear Cache: Coba clear cache konfigurasi, route, dan view dengan perintah berikut:
php artisan config:clear php artisan route:clear php artisan view:clear php artisan cache:clear -
Restart PHP-FPM: Terkadang restart PHP-FPM bisa menyelesaikan masalah. Kamu bisa melakukannya melalui cPanel (biasanya di bagian “Select PHP Version”).
-
Cari di Google: Cari pesan error atau masalah yang kamu hadapi di Google. Kemungkinan besar orang lain sudah pernah mengalami masalah serupa dan menemukan solusinya.
-
Hubungi Dukungan Hosting: Jika kamu sudah mencoba semua cara di atas dan masih belum berhasil, jangan ragu untuk menghubungi dukungan teknis dari penyedia hosting kamu.
9. Optimasi Performa Aplikasi Laravel: Meningkatkan Kecepatan dan Efisiensi
Setelah aplikasi kamu berhasil deploy dan berjalan dengan baik, langkah selanjutnya adalah melakukan optimasi performa untuk meningkatkan kecepatan dan efisiensi.
-
Caching: Gunakan caching untuk menyimpan hasil query database atau bagian-bagian halaman yang sering diakses. Laravel menyediakan berbagai opsi caching, termasuk file cache, database cache, dan Redis cache.
-
Minifikasi Aset: Minifikasi file CSS dan JavaScript untuk mengurangi ukuran file dan mempercepat waktu loading halaman. Kamu bisa menggunakan tools seperti Laravel Mix atau Gulp untuk otomatisasi proses minifikasi.
-
Optimasi Gambar: Optimasi gambar untuk mengurangi ukuran file tanpa mengurangi kualitas gambar secara signifikan. Kamu bisa menggunakan tools online atau library PHP untuk optimasi gambar.
-
Gunakan CDN: Gunakan CDN (Content Delivery Network) untuk mendistribusikan aset statis (gambar, CSS, JavaScript) ke server-server di seluruh dunia. Ini akan mempercepat waktu loading halaman bagi pengguna di berbagai lokasi geografis.
-
Database Indexing: Pastikan tabel database kamu memiliki index yang tepat untuk mempercepat query database.
-
Queue System: Gunakan queue system untuk memproses tugas-tugas yang memakan waktu (misalnya mengirim email, mengolah data) di background. Ini akan membuat aplikasi kamu lebih responsif.
10. Monitoring dan Pemeliharaan: Memastikan Aplikasi Tetap Sehat
Setelah aplikasi Laravel kamu go live, penting untuk melakukan monitoring dan pemeliharaan secara berkala untuk memastikan aplikasi tetap sehat dan berjalan dengan baik.
-
Pantau Log File: Pantau log file secara berkala untuk mencari pesan error atau peringatan.
-
Perbarui Dependencies: Perbarui dependencies aplikasi kamu secara berkala untuk mendapatkan perbaikan bug, fitur baru, dan peningkatan keamanan.
-
Backup Database: Lakukan backup database secara rutin untuk mencegah kehilangan data jika terjadi masalah.
-
Pantau Performa Aplikasi: Pantau performa aplikasi kamu menggunakan tools seperti New Relic atau Sentry.
-
Uji Keamanan: Lakukan pengujian keamanan secara berkala untuk menemukan dan memperbaiki potensi kerentanan keamanan.
Dengan mengikuti panduan lengkap ini, kamu seharusnya sudah bisa deploy aplikasi Laravel kamu ke hosting cPanel dengan sukses. Ingatlah untuk selalu melakukan backup, perhatikan konfigurasi, dan pantau aplikasi kamu secara berkala. Selamat mencoba dan semoga berhasil!







