Laravel adalah framework PHP yang populer untuk membangun aplikasi web modern. Dengan sintaks yang elegan dan fitur-fitur canggih, Laravel memudahkan pengembang untuk membuat aplikasi web yang kompleks dan terstruktur dengan baik. Jika Anda ingin mengembangkan aplikasi web menggunakan Laravel dan menghostingnya secara online, panduan ini akan memandu Anda langkah demi langkah tentang cara install dan konfigurasi Laravel di hosting.
Artikel ini akan membahas secara mendalam proses instalasi, konfigurasi, dan pemecahan masalah umum yang mungkin Anda temui. Mari kita mulai!
1. Persiapan Awal: Memilih Hosting dan Memenuhi Persyaratan Sistem Laravel
Sebelum kita masuk ke detail teknis, ada beberapa persiapan penting yang perlu dilakukan:
-
Memilih Penyedia Hosting yang Tepat: Ini adalah langkah krusial. Pastikan penyedia hosting Anda mendukung PHP versi yang dibutuhkan oleh Laravel (saat artikel ini ditulis, Laravel 9 dan 10 membutuhkan PHP 8.0 atau lebih tinggi). Selain itu, pastikan hosting Anda memiliki akses SSH, cPanel atau control panel sejenis, dan database (biasanya MySQL atau MariaDB). Beberapa penyedia hosting yang direkomendasikan antara lain Niagahoster, Hostinger, IDCloudHost, dan Domainesia.
-
Memenuhi Persyaratan Sistem Laravel: Laravel memiliki persyaratan sistem tertentu agar dapat berjalan dengan baik. Berikut adalah persyaratan minimum yang perlu Anda penuhi:
- PHP >= 8.0 (disarankan versi terbaru untuk keamanan dan performa)
- Ekstensi PHP: BCMath, Ctype, Fileinfo, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML, dan Curl.
- Composer (package manager untuk PHP)
Anda dapat memeriksa versi PHP yang terinstall di hosting Anda melalui cPanel atau dengan membuat file phpinfo.php dengan kode <?php phpinfo(); ?> dan membukanya melalui browser. Jika ekstensi PHP yang dibutuhkan belum terinstall, hubungi dukungan teknis penyedia hosting Anda untuk mengaktifkannya.
- Akses ke cPanel atau Control Panel Lainnya: Sebagian besar penyedia hosting menawarkan cPanel atau panel kontrol serupa. Panel ini memungkinkan Anda mengelola file, database, domain, dan pengaturan hosting lainnya dengan mudah. Pastikan Anda memahami dasar-dasar penggunaan cPanel, seperti mengunggah file, membuat database, dan mengelola domain.
2. Mengakses Hosting: Menggunakan SSH atau FTP untuk Upload File Laravel
Setelah Anda menyiapkan hosting dan memastikan persyaratan sistem terpenuhi, langkah selanjutnya adalah mengakses hosting dan mengunggah file Laravel Anda. Ada dua cara utama untuk melakukannya:
-
Melalui SSH (Secure Shell): SSH adalah protokol jaringan yang memungkinkan Anda mengakses server secara remote melalui terminal. Ini adalah cara yang paling direkomendasikan karena lebih aman dan efisien. Untuk menggunakan SSH, Anda membutuhkan client SSH seperti PuTTY (untuk Windows) atau terminal bawaan (untuk macOS dan Linux).
- Langkah-langkah:
- Buka client SSH dan masukkan informasi koneksi (hostname, username, password, dan port). Informasi ini biasanya disediakan oleh penyedia hosting Anda.
- Setelah terhubung, navigasi ke direktori tempat Anda ingin menginstall Laravel (biasanya
public_htmlatauwww). - Upload file Laravel Anda menggunakan perintah
scp(Secure Copy) atau dengan menginstall Git di server dan melakukangit clonerepository Laravel Anda.
- Langkah-langkah:
-
Melalui FTP (File Transfer Protocol): FTP adalah protokol standar untuk mentransfer file antara komputer Anda dan server. Ini adalah alternatif jika Anda tidak memiliki akses SSH. Anda membutuhkan client FTP seperti FileZilla atau Cyberduck.
- Langkah-langkah:
- Buka client FTP dan masukkan informasi koneksi (hostname, username, password, dan port). Informasi ini biasanya disediakan oleh penyedia hosting Anda.
- Setelah terhubung, navigasi ke direktori tempat Anda ingin menginstall Laravel (biasanya
public_htmlatauwww). - Unggah semua file dan folder Laravel Anda ke direktori tersebut.
- Langkah-langkah:
Penting: Jika Anda mengupload file Laravel dalam bentuk ZIP, jangan lupa untuk mengekstraknya setelah selesai diunggah. Anda bisa menggunakan fitur “File Manager” di cPanel untuk mengekstrak file ZIP tersebut.
3. Konfigurasi Database Laravel: Membuat Database dan Mengatur Koneksi
Laravel membutuhkan database untuk menyimpan data aplikasi Anda. Langkah selanjutnya adalah membuat database dan mengkonfigurasi koneksi database di aplikasi Laravel Anda.
-
Membuat Database MySQL/MariaDB:
- Login ke cPanel Anda.
- Cari bagian “Databases” dan klik “MySQL Databases”.
- Buat database baru dengan memberikan nama database yang unik.
- Buat user database baru dan berikan password yang kuat.
- Tambahkan user database ke database yang baru dibuat dan berikan semua hak akses (privileges).
-
Mengatur Koneksi Database di File
.env:- Buka file
.envyang terletak di root direktori Laravel Anda. Jika file.envtidak ada, copy file.env.exampledan rename menjadi.env. - Cari bagian yang mengatur koneksi database (biasanya diawali dengan
DB_). - Ubah nilai-nilai berikut sesuai dengan informasi database yang baru Anda buat:
DB_CONNECTION=mysql(jika menggunakan MySQL/MariaDB)DB_HOST=127.0.0.1(atau hostname database jika berbeda)DB_PORT=3306(biasanya port default MySQL)DB_DATABASE=nama_database_andaDB_USERNAME=username_database_andaDB_PASSWORD=password_database_anda
- Buka file
Tips: Jangan pernah menyimpan informasi sensitif seperti password di dalam kode Anda. Gunakan file .env untuk menyimpan konfigurasi aplikasi Anda dan jangan pernah commit file .env ke repository public.
4. Menginstall Dependencies Laravel: Menggunakan Composer untuk Instalasi Package
Laravel menggunakan Composer untuk mengelola dependencies atau package yang dibutuhkan oleh aplikasi Anda. Setelah Anda mengunggah file Laravel dan mengkonfigurasi database, langkah selanjutnya adalah menginstall dependencies menggunakan Composer.
-
Melalui SSH:
- Login ke server melalui SSH.
- Navigasi ke root direktori Laravel Anda.
- Jalankan perintah
composer install. Perintah ini akan mengunduh dan menginstall semua dependencies yang terdaftar di filecomposer.json.
-
Jika Composer Tidak Terinstall di Server:
- Beberapa penyedia hosting tidak menginstall Composer secara default. Anda bisa menginstall Composer secara lokal di komputer Anda dan mengunggah folder
vendorke server. - Atau, Anda bisa meminta bantuan dukungan teknis penyedia hosting untuk menginstall Composer di server Anda.
- Beberapa penyedia hosting tidak menginstall Composer secara default. Anda bisa menginstall Composer secara lokal di komputer Anda dan mengunggah folder
Perhatian: Proses instalasi dependencies bisa memakan waktu tergantung pada kecepatan internet dan jumlah dependencies yang dibutuhkan. Pastikan koneksi internet Anda stabil selama proses instalasi.
5. Konfigurasi Web Server: Mengatur Direktori Publik dan Rewrite URL
Setelah menginstall dependencies, Anda perlu mengkonfigurasi web server Anda (biasanya Apache atau Nginx) agar aplikasi Laravel Anda dapat diakses melalui browser.
-
Mengatur Direktori Publik: Secara default, Laravel menganggap direktori
publicsebagai root direktori web. Artinya, semua file statis (seperti CSS, JavaScript, dan gambar) harus diletakkan di dalam direktoripublic.- Di cPanel, Anda bisa mengatur “Document Root” domain Anda ke direktori
publicdi dalam direktori Laravel Anda.
- Di cPanel, Anda bisa mengatur “Document Root” domain Anda ke direktori
-
Mengatur Rewrite URL (Mod_Rewrite untuk Apache): Laravel menggunakan URL yang bersih dan ramah SEO. Untuk mengaktifkan fitur ini, Anda perlu mengaktifkan
mod_rewritedi Apache dan membuat file.htaccessdi dalam direktoripublicdengan konten berikut:
<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>
- Untuk Nginx: Anda perlu mengkonfigurasi virtual host Anda agar mengarah ke direktori
publicdan mengatur rewrite rules. Contoh konfigurasi Nginx untuk Laravel:
server {
listen 80;
server_name yourdomain.com;
root /path/to/your/laravel/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock; # Sesuaikan dengan versi PHP Anda
}
location ~ /.ht {
deny all;
}
}
Catatan: Sesuaikan yourdomain.com dan /path/to/your/laravel/public dengan informasi domain dan direktori Laravel Anda.
6. Konfigurasi Tambahan: Mengatur App Key dan Cache
Setelah mengkonfigurasi web server, ada beberapa konfigurasi tambahan yang perlu Anda lakukan untuk memastikan aplikasi Laravel Anda berjalan dengan optimal.
- Generate App Key: App key digunakan untuk mengenkripsi data sensitif seperti session dan cookies. Generate app key dengan menjalankan perintah berikut melalui SSH:
php artisan key:generate
Perintah ini akan menghasilkan app key acak dan menyimpannya di file .env.
-
Konfigurasi Cache: Laravel menyediakan berbagai opsi caching untuk meningkatkan performa aplikasi Anda. Anda bisa menggunakan file-based cache, database cache, atau Redis/Memcached. Konfigurasi cache di file
.envsesuai dengan kebutuhan Anda. -
Konfigurasi Session: Secara default, Laravel menggunakan file-based session. Anda bisa mengubahnya menjadi database session atau Redis session untuk performa yang lebih baik. Konfigurasi session di file
config/session.php.
7. Migrasi Database: Membuat Tabel dan Struktur Database
Setelah mengkonfigurasi koneksi database, langkah selanjutnya adalah membuat tabel dan struktur database menggunakan migration.
- Menjalankan Migrasi: Laravel menyediakan fitur migration untuk mengelola struktur database Anda. Migration adalah file PHP yang berisi instruksi untuk membuat, mengubah, atau menghapus tabel database.
- Jalankan perintah berikut melalui SSH untuk menjalankan semua migration yang belum dijalankan:
php artisan migrate
- Membuat Seeders (Opsional): Seeders digunakan untuk mengisi database dengan data awal. Anda bisa membuat seeders untuk data dummy atau data default yang dibutuhkan oleh aplikasi Anda.
- Jalankan perintah berikut melalui SSH untuk menjalankan semua seeders:
php artisan db:seed
8. Pemecahan Masalah Umum (Troubleshooting)
Selama proses instalasi dan konfigurasi Laravel di hosting, Anda mungkin menemui beberapa masalah umum. Berikut adalah beberapa masalah umum dan cara mengatasinya:
500 Internal Server Error: Kesalahan ini biasanya disebabkan oleh kesalahan konfigurasi web server atau kesalahan pada kode Laravel Anda. Periksa log error web server untuk mengetahui penyebab pastinya.Class Not Found: Kesalahan ini biasanya disebabkan oleh dependencies yang belum terinstall dengan benar. Pastikan Anda telah menjalankancomposer installdengan sukses.Database Connection Error: Kesalahan ini biasanya disebabkan oleh kesalahan konfigurasi koneksi database di file.env. Pastikan username, password, hostname, dan nama database sudah benar.Permission Issues: Beberapa file atau folder mungkin tidak memiliki izin yang tepat. Pastikan web server memiliki izin untuk membaca dan menulis file di direktoristoragedanbootstrap/cache.- Error saat menjalankan
php artisan migrate: Periksa kembali konfigurasi database di.env, pastikan kredensialnya benar. Juga pastikan ekstensi PHP yang dibutuhkan untuk database sudah terinstall.
Tips: Selalu periksa log error web server dan log error Laravel untuk mengetahui penyebab kesalahan. Aktifkan mode debug di file .env untuk menampilkan pesan kesalahan yang lebih detail.
9. Keamanan Laravel: Tips Keamanan Dasar untuk Aplikasi Web Anda
Setelah aplikasi Laravel Anda berjalan dengan baik, penting untuk menerapkan beberapa tips keamanan dasar untuk melindungi aplikasi Anda dari serangan.
- Gunakan HTTPS: Enkripsi semua komunikasi antara browser dan server Anda menggunakan HTTPS. Dapatkan sertifikat SSL dari penyedia hosting Anda atau menggunakan Let’s Encrypt (gratis).
- Validasi Input: Validasi semua input dari user untuk mencegah serangan SQL injection dan XSS. Gunakan fitur validasi yang disediakan oleh Laravel.
- Escaping Output: Escape semua output yang ditampilkan kepada user untuk mencegah serangan XSS. Gunakan fungsi
htmlspecialchars()atau sintaks Blade yang aman. - Lindungi File
.env: File.envberisi informasi sensitif seperti password database dan app key. Pastikan file ini tidak dapat diakses secara publik. - Gunakan Middleware: Laravel menyediakan middleware untuk melakukan berbagai tugas seperti otentikasi, otorisasi, dan throttling. Manfaatkan middleware untuk melindungi rute dan fungsi aplikasi Anda.
- Update Laravel dan Dependencies Secara Teratur: Selalu update Laravel dan dependencies Anda ke versi terbaru untuk mendapatkan perbaikan keamanan terbaru.
- Lindungi dari CSRF: Aktifkan perlindungan CSRF (Cross-Site Request Forgery) yang sudah disediakan oleh Laravel.
10. Optimasi Laravel: Meningkatkan Performa Aplikasi Web Anda
Setelah aplikasi Laravel Anda aman, Anda bisa melakukan optimasi untuk meningkatkan performa aplikasi Anda.
- Gunakan Cache: Manfaatkan fitur caching yang disediakan oleh Laravel untuk menyimpan data yang sering diakses.
- Optimize Database Queries: Optimalkan query database Anda agar berjalan lebih cepat. Gunakan eager loading untuk mengurangi jumlah query yang dijalankan.
- Minify CSS dan JavaScript: Kompres file CSS dan JavaScript Anda untuk mengurangi ukuran file dan mempercepat waktu loading.
- Gunakan CDN (Content Delivery Network): Gunakan CDN untuk mendistribusikan file statis Anda ke server yang tersebar di seluruh dunia.
- Optimize Images: Kompres gambar Anda untuk mengurangi ukuran file tanpa mengurangi kualitas gambar.
- Gunakan Queue: Gunakan queue untuk memproses tugas-tugas yang memakan waktu secara asynchronous.
11. Deploy Aplikasi Laravel: Proses Deployment dan Best Practices
Setelah aplikasi Laravel Anda selesai dikembangkan dan diuji, langkah selanjutnya adalah mendeploy aplikasi Anda ke lingkungan produksi.
- Konfigurasi Lingkungan Produksi: Pastikan Anda telah mengkonfigurasi aplikasi Anda untuk lingkungan produksi. Ubah nilai
APP_DEBUGmenjadifalsedi file.env. - Generate Asset Versioning: Generate asset versioning untuk mencegah browser menggunakan cache lama setelah Anda melakukan update pada file CSS dan JavaScript.
- Clear Cache: Clear semua cache aplikasi sebelum mendeploy aplikasi Anda.
- Backup Database: Selalu backup database Anda sebelum melakukan deployment.
- Gunakan Deployment Tools: Manfaatkan tools deployment seperti Envoyer atau Deployer untuk menyederhanakan proses deployment.
12. Kesimpulan: Laravel di Hosting – Langkah Awal Kesuksesan Aplikasi Web Anda
Selamat! Anda telah berhasil menyelesaikan panduan lengkap cara install dan konfigurasi Laravel di hosting. Dengan mengikuti langkah-langkah di atas, Anda sekarang memiliki aplikasi Laravel yang berjalan di server dan siap untuk diakses oleh pengguna. Ingatlah untuk selalu memperhatikan keamanan dan performa aplikasi Anda agar aplikasi Anda berjalan dengan optimal.
Semoga panduan ini bermanfaat dan membantu Anda dalam mengembangkan aplikasi web yang sukses menggunakan Laravel. Teruslah belajar dan bereksplorasi dengan fitur-fitur Laravel lainnya untuk meningkatkan kemampuan Anda sebagai pengembang web. Selamat berkarya!







