Laravel adalah framework PHP yang populer karena kemudahan, fleksibilitas, dan fitur-fiturnya yang komprehensif. Setelah selesai mengembangkan aplikasi Laravel, langkah selanjutnya adalah mendeploynya ke server agar bisa diakses oleh pengguna. Panduan ini akan membahas secara detail deployment Laravel ke server shared hosting cPanel, langkah demi langkah, agar Anda bisa berhasil melakukannya tanpa kesulitan.
Daftar Isi
- Persiapan Sebelum Deployment Laravel ke cPanel
- Konfigurasi Aplikasi Laravel untuk Shared Hosting
- Upload File Laravel ke Server cPanel
- Membuat Database dan User di cPanel
- Konfigurasi File
.env
pada Server - Mengatur Symbolic Link (Public Directory)
- Konfigurasi
.htaccess
untuk URL Rewriting - Optimasi Performa Aplikasi Laravel di Shared Hosting
- Pemecahan Masalah Umum (Troubleshooting)
- Tips Tambahan untuk Keamanan Aplikasi Laravel
- Alternatif Deployment Laravel Selain Shared Hosting
- Kesimpulan: Sukses Deployment Laravel Anda!
1. Persiapan Sebelum Deployment Laravel ke cPanel
Sebelum memulai proses deployment Laravel ke server shared hosting cPanel, ada beberapa persiapan yang perlu Anda lakukan agar semuanya berjalan lancar. Persiapan ini meliputi pengecekan versi PHP, menyiapkan akses ke cPanel, dan memastikan aplikasi Laravel Anda siap untuk di-deploy.
- Memeriksa Versi PHP Server: Pastikan versi PHP di server shared hosting Anda memenuhi persyaratan minimal Laravel. Biasanya, Anda bisa mengecek versi PHP melalui cPanel atau menghubungi penyedia hosting Anda. Idealnya, gunakan versi PHP 7.4 atau yang lebih baru untuk kompatibilitas terbaik.
- Akses ke cPanel: Pastikan Anda memiliki akses penuh ke cPanel hosting Anda, termasuk akses ke File Manager, Database MySQL, dan fitur-fitur lainnya yang diperlukan. Username dan password cPanel biasanya diberikan oleh penyedia hosting saat Anda mendaftar.
- Backup Aplikasi Laravel: Sebelum melakukan perubahan apapun, selalu backup aplikasi Laravel Anda. Ini akan sangat membantu jika terjadi kesalahan dan Anda perlu mengembalikan aplikasi ke kondisi semula. Anda bisa mem-backup seluruh direktori proyek Laravel dan database MySQL Anda.
- Memahami Struktur Direktori Shared Hosting: Pahami bagaimana struktur direktori di shared hosting Anda bekerja. Biasanya, direktori web utama adalah
public_html
atauwww
. Anda akan perlu mengupload file-file Laravel Anda ke direktori yang tepat. - Testing Lokal: Pastikan aplikasi Laravel Anda berjalan dengan baik di lingkungan lokal sebelum Anda mencoba mendeploynya ke server. Ini akan membantu Anda mengidentifikasi masalah yang mungkin timbul akibat perbedaan konfigurasi server. Gunakan
php artisan serve
di terminal Anda untuk menjalankan server development lokal.
2. Konfigurasi Aplikasi Laravel untuk Shared Hosting
Konfigurasi aplikasi Laravel adalah langkah penting sebelum deployment Laravel ke server shared hosting cPanel. Shared hosting memiliki keterbatasan tertentu dibandingkan VPS atau server dedicated, jadi beberapa penyesuaian mungkin diperlukan.
- Mengubah Konfigurasi Database: Pastikan konfigurasi database di file
.env
sesuai dengan informasi database yang akan Anda buat di cPanel. Ini termasukDB_CONNECTION
,DB_HOST
,DB_PORT
,DB_DATABASE
,DB_USERNAME
, danDB_PASSWORD
. - Mengatur
APP_URL
: Ubah nilaiAPP_URL
di file.env
menjadi URL domain Anda yang benar. Ini penting agar aplikasi Laravel Anda menghasilkan URL yang benar. Contoh:APP_URL=https://www.domainanda.com
. - Mengatur
APP_ENV
: PastikanAPP_ENV
diatur keproduction
saat Anda siap untuk mendeploy aplikasi Anda. Ini akan mengaktifkan caching dan menonaktifkan debugging secara default. - Menonaktifkan Debugging: Hindari menampilkan informasi debug secara publik. Pastikan
APP_DEBUG
diatur kefalse
di file.env
saat berada di lingkungan produksi. - Mengoptimalkan Autoloader: Jalankan perintah
composer install --optimize-autoloader --no-dev
untuk mengoptimalkan autoloader Composer. Ini akan meningkatkan performa aplikasi Laravel Anda. - Konfigurasi Email: Jika aplikasi Anda mengirim email, pastikan Anda mengkonfigurasi pengaturan email di file
.env
dengan benar. Anda mungkin perlu menggunakan layanan SMTP eksternal seperti Mailgun atau SendGrid jika server shared hosting Anda memiliki batasan pengiriman email.
3. Upload File Laravel ke Server cPanel
Setelah aplikasi Laravel dikonfigurasi, langkah selanjutnya adalah mengupload file-file tersebut ke server shared hosting melalui cPanel. Ada beberapa cara untuk melakukannya:
- Menggunakan File Manager cPanel: Cara paling umum adalah menggunakan File Manager yang disediakan oleh cPanel. Kompres seluruh direktori proyek Laravel Anda menjadi file
.zip
. Kemudian, upload file.zip
tersebut ke direktori yang Anda inginkan (biasanya di luar direktoripublic_html
). Setelah selesai diupload, ekstrak file.zip
tersebut. - Menggunakan FTP (File Transfer Protocol): Jika Anda memiliki banyak file atau koneksi internet yang lambat, menggunakan FTP bisa menjadi pilihan yang lebih baik. Gunakan aplikasi FTP seperti FileZilla untuk mengupload file-file Laravel Anda ke server.
- Menggunakan Git (Opsional): Jika Anda menggunakan Git untuk mengelola kode Anda, Anda bisa menggunakan fitur Git di cPanel (jika tersedia) untuk men-deploy aplikasi Anda. Ini membutuhkan konfigurasi lebih lanjut, tetapi bisa sangat berguna untuk pembaruan berkelanjutan.
- Struktur Direktori: Pastikan semua file dan direktori Laravel Anda (kecuali direktori
public
) berada di luar direktoripublic_html
. Direktoripublic
Laravel harus berada di dalam direktoripublic_html
(atau bisa juga dibuat symbolic link, yang akan dibahas di bagian selanjutnya). - Mengabaikan Direktori
vendor
: Direktorivendor
berisi semua dependensi Composer Anda. Biasanya, Anda tidak perlu mengupload direktori ini karena Anda bisa menginstal dependensi tersebut langsung di server. Ini akan menghemat waktu upload dan ruang penyimpanan.
4. Membuat Database dan User di cPanel
Aplikasi Laravel Anda membutuhkan database untuk menyimpan data. Berikut adalah cara membuat database dan user di cPanel:
- Login ke cPanel: Masuk ke cPanel hosting Anda menggunakan username dan password yang diberikan oleh penyedia hosting Anda.
- Cari “MySQL Databases”: Cari opsi “MySQL Databases” atau “Database MySQL” di cPanel.
- Buat Database Baru: Masukkan nama database yang Anda inginkan (misalnya,
laravel_db
) dan klik “Create Database”. - Buat User MySQL Baru: Masukkan username dan password untuk user database baru. Pastikan passwordnya kuat.
- Tambahkan User ke Database: Setelah database dan user dibuat, tambahkan user ke database dan berikan hak akses “ALL PRIVILEGES”.
- Catat Informasi Database: Catat nama database, username, dan password database. Informasi ini akan Anda gunakan untuk mengkonfigurasi file
.env
.
5. Konfigurasi File .env
pada Server
File .env
berisi konfigurasi penting untuk aplikasi Laravel Anda. Anda perlu menyesuaikan file ini dengan informasi database yang baru Anda buat di cPanel.
- Cari File
.env
: Di File Manager cPanel, cari file.env
di direktori utama aplikasi Laravel Anda (di luarpublic_html
). Jika Anda tidak melihat file.env
, Anda mungkin perlu mengaktifkan opsi untuk menampilkan file tersembunyi di File Manager. - Edit File
.env
: Buka file.env
dan ubah nilai-nilai berikut:DB_CONNECTION=mysql
DB_HOST=localhost
(Biasanya,localhost
adalah host database default di shared hosting)DB_PORT=3306
(Biasanya,3306
adalah port database default)DB_DATABASE=nama_database_anda
(Ganti dengan nama database yang Anda buat)DB_USERNAME=username_database_anda
(Ganti dengan username database yang Anda buat)DB_PASSWORD=password_database_anda
(Ganti dengan password database yang Anda buat)APP_URL=https://www.domainanda.com
(Ganti dengan URL domain Anda)APP_DEBUG=false
(Pastikan ini diatur kefalse
di lingkungan produksi)
- Simpan Perubahan: Simpan perubahan pada file
.env
. - Generate Application Key: Setelah mengedit file
.env
, Anda perlu menggenerate application key. Akses terminal server (biasanya melalui SSH, jika disediakan oleh hosting Anda) dan jalankan perintahphp artisan key:generate
. Jika Anda tidak memiliki akses ke terminal, Anda bisa menambahkan kode sementara di salah satu route Anda untuk menjalankan perintah ini melalui browser. Pastikan untuk menghapus kode ini setelah application key berhasil digenerate. Contoh kode sementara:Route::get('/generate-key', function() { return IlluminateSupportStr::random(32); });
Kunjungi
/generate-key
di browser Anda dan salin hasilnya keAPP_KEY
di file.env
.
6. Mengatur Symbolic Link (Public Directory)
Karena direktori public
Laravel harus berada di dalam public_html
, tetapi file-file Laravel lainnya berada di luar, Anda perlu membuat symbolic link. Symbolic link adalah cara untuk membuat shortcut dari satu direktori ke direktori lain.
- Akses Terminal (SSH): Cara terbaik untuk membuat symbolic link adalah melalui terminal (SSH). Jika penyedia hosting Anda menyediakan akses SSH, login ke server Anda menggunakan SSH client seperti PuTTY.
- Navigasi ke Direktori
public_html
: Gunakan perintahcd public_html
untuk masuk ke direktoripublic_html
. - Buat Symbolic Link: Jalankan perintah berikut:
ln -s ../nama_direktori_laravel/public public
Ganti
nama_direktori_laravel
dengan nama direktori tempat Anda menyimpan file-file Laravel Anda (di luarpublic_html
). - Alternatif Jika Tidak Ada Akses SSH: Jika Anda tidak memiliki akses SSH, beberapa cPanel menyediakan fitur untuk membuat symbolic link. Jika tidak ada, Anda mungkin perlu menghubungi penyedia hosting Anda untuk meminta mereka membuat symbolic link untuk Anda. Atau, sebagai solusi terakhir, Anda bisa menyalin seluruh isi direktori
public
ke direktoripublic_html
. Namun, cara ini tidak direkomendasikan karena akan membuat duplikasi file dan menyulitkan pembaruan.
7. Konfigurasi .htaccess
untuk URL Rewriting
File .htaccess
digunakan untuk mengkonfigurasi server web Apache. Laravel menggunakan .htaccess
untuk URL rewriting, yang memungkinkan Anda menggunakan URL yang bersih dan ramah SEO.
-
Cari File
.htaccess
: Di File Manager cPanel, cari file.htaccess
di direktoripublic_html
. Jika tidak ada, buat file baru bernama.htaccess
. -
Edit File
.htaccess
: Tambahkan kode berikut ke file.htaccess
:<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>
-
Pastikan
mod_rewrite
Aktif: Pastikan modulmod_rewrite
diaktifkan di server Anda. Modul ini diperlukan untuk URL rewriting. Anda bisa menghubungi penyedia hosting Anda untuk memastikan modul ini aktif.
8. Optimasi Performa Aplikasi Laravel di Shared Hosting
Shared hosting seringkali memiliki sumber daya yang terbatas. Oleh karena itu, penting untuk mengoptimalkan performa aplikasi Laravel Anda agar berjalan dengan cepat dan efisien.
- Aktifkan Caching: Gunakan fitur caching Laravel untuk menyimpan hasil query database dan view. Ini akan mengurangi beban server dan mempercepat waktu loading halaman. Gunakan perintah
php artisan config:cache
danphp artisan route:cache
untuk mengaktifkan caching konfigurasi dan route. - Optimalkan Database: Pastikan database Anda dioptimalkan. Gunakan index yang tepat pada tabel database Anda untuk mempercepat query.
- Gunakan CDN (Content Delivery Network): Gunakan CDN untuk menyimpan file statis seperti gambar, CSS, dan JavaScript di server yang tersebar di seluruh dunia. Ini akan mempercepat waktu loading halaman bagi pengguna di berbagai lokasi geografis.
- Kompres Gambar: Kompres gambar sebelum menguploadnya ke server. Ini akan mengurangi ukuran file dan mempercepat waktu loading halaman.
- Minifikasi CSS dan JavaScript: Minifikasi file CSS dan JavaScript untuk mengurangi ukuran file.
- Gunakan Queue: Jika aplikasi Anda melakukan tugas-tugas yang memakan waktu (misalnya, mengirim email), gunakan queue untuk menjalankan tugas-tugas tersebut di latar belakang. Ini akan mencegah aplikasi Anda menjadi lambat.
- Pertimbangkan Upgrade Hosting: Jika performa aplikasi Anda tetap lambat meskipun sudah dioptimalkan, pertimbangkan untuk mengupgrade ke paket hosting yang lebih tinggi dengan sumber daya yang lebih besar.
9. Pemecahan Masalah Umum (Troubleshooting)
Saat melakukan deployment Laravel ke server shared hosting cPanel, Anda mungkin menghadapi beberapa masalah. Berikut adalah beberapa masalah umum dan solusinya:
- Error 500 (Internal Server Error): Error ini biasanya disebabkan oleh kesalahan konfigurasi
.htaccess
, error pada kode PHP, atau masalah perizinan file. Periksa log error server untuk mengetahui penyebab pastinya. - Halaman Putih (Blank Page): Halaman putih biasanya disebabkan oleh error PHP yang tidak ditampilkan. Pastikan
APP_DEBUG
diatur ketrue
di file.env
untuk menampilkan error. Jika Anda tidak bisa mengubah file.env
, periksa log error server. - Database Connection Error: Pastikan informasi database di file
.env
sudah benar. Periksa juga apakah user database memiliki hak akses yang benar ke database. - Masalah Routing: Pastikan file
.htaccess
dikonfigurasi dengan benar untuk URL rewriting. Periksa juga apakah cache route sudah di-clear dengan perintahphp artisan route:clear
. - Masalah Perizinan File: Pastikan file dan direktori memiliki perizinan yang benar. Biasanya, direktori harus memiliki perizinan 755 dan file harus memiliki perizinan 644.
- Composer Error: Jika Anda mengalami masalah saat menjalankan perintah Composer, pastikan Composer sudah terinstal dengan benar dan versinya kompatibel dengan versi PHP di server Anda.
10. Tips Tambahan untuk Keamanan Aplikasi Laravel
Keamanan adalah hal yang sangat penting dalam pengembangan web. Berikut adalah beberapa tips tambahan untuk meningkatkan keamanan aplikasi Laravel Anda:
- Gunakan HTTPS: Pastikan website Anda menggunakan HTTPS untuk mengenkripsi komunikasi antara browser dan server.
- Validasi Input: Selalu validasi semua input pengguna untuk mencegah serangan XSS dan SQL injection.
- Gunakan CSRF Protection: Laravel menyediakan CSRF (Cross-Site Request Forgery) protection secara default. Pastikan Anda menggunakannya di semua form Anda.
- Lindungi File
.env
: File.env
berisi informasi sensitif seperti password database. Pastikan file ini tidak dapat diakses oleh publik. - Update Laravel Secara Teratur: Update Laravel dan dependensi Anda secara teratur untuk mendapatkan perbaikan keamanan terbaru.
- Gunakan Firewall: Gunakan firewall untuk melindungi server Anda dari serangan dari luar.
- Monitor Log: Monitor log server Anda secara teratur untuk mendeteksi aktivitas yang mencurigakan.
11. Alternatif Deployment Laravel Selain Shared Hosting
Meskipun shared hosting adalah pilihan yang populer untuk deployment Laravel, ada alternatif lain yang mungkin lebih cocok untuk aplikasi Anda, terutama jika aplikasi Anda membutuhkan sumber daya yang lebih besar atau memiliki persyaratan keamanan yang lebih ketat.
- VPS (Virtual Private Server): VPS memberikan Anda lebih banyak kontrol dan sumber daya dibandingkan shared hosting. Anda bisa menginstal sistem operasi dan perangkat lunak yang Anda inginkan, termasuk server web, database, dan PHP.
- Cloud Hosting: Cloud hosting menawarkan skalabilitas dan fleksibilitas yang lebih besar dibandingkan VPS. Anda bisa dengan mudah menambah atau mengurangi sumber daya sesuai kebutuhan.
- Platform as a Service (PaaS): PaaS seperti Heroku, AWS Elastic Beanstalk, dan Google App Engine menyediakan platform untuk mendeploy dan menjalankan aplikasi web tanpa perlu mengelola infrastruktur server.
- Docker Containers: Docker memungkinkan Anda mengemas aplikasi Anda dan semua dependensinya ke dalam container. Container ini bisa dijalankan di berbagai lingkungan, termasuk server shared hosting, VPS, dan cloud.
12. Kesimpulan: Sukses Deployment Laravel Anda!
Deployment Laravel ke server shared hosting cPanel memang membutuhkan beberapa langkah, tetapi dengan panduan ini, Anda seharusnya bisa melakukannya dengan sukses. Ingatlah untuk selalu melakukan persiapan yang matang, mengkonfigurasi aplikasi Anda dengan benar, dan mengoptimalkan performanya. Jika Anda menghadapi masalah, jangan ragu untuk mencari bantuan di forum Laravel atau menghubungi penyedia hosting Anda. Dengan mengikuti panduan ini dan tips tambahan yang diberikan, Anda akan dapat mendeploy aplikasi Laravel Anda ke server shared hosting cPanel dengan aman dan efisien. Selamat mencoba dan semoga sukses!