Selamat datang! Jika Anda seorang developer Laravel di Indonesia, pasti pernah mengalami tantangan saat ingin mempublikasikan aplikasi kesayangan Anda ke hosting. Proses deploy aplikasi Laravel, apalagi ke hosting Indonesia, terkadang terasa rumit. Tapi jangan khawatir! Artikel ini akan memandu Anda langkah demi langkah, dengan cara deploy aplikasi Laravel ke hosting Indonesia secara praktis dan mudah dipahami. Kita akan membahas semua yang perlu Anda ketahui, mulai dari persiapan hingga aplikasi Anda siap digunakan. Yuk, simak!
1. Persiapan Sebelum Deploy: Pastikan Aplikasi Laravel Anda Siap Tempur!
Sebelum kita terjun ke proses deploy, ada beberapa hal penting yang perlu dipersiapkan. Persiapan ini akan mempermudah proses deploy dan memastikan aplikasi Laravel Anda berjalan lancar di server hosting.
-
Pastikan Aplikasi Laravel Anda Berfungsi dengan Baik: Uji aplikasi Anda secara lokal. Pastikan semua fitur berfungsi sebagaimana mestinya, tidak ada error, dan koneksi ke database berjalan lancar.
-
Konfigurasi
.env
untuk Lingkungan Produksi: File.env
berisi konfigurasi penting seperti koneksi database, kunci aplikasi (APP_KEY
), dan pengaturan lainnya. Sesuaikan file ini untuk lingkungan produksi (hosting) Anda. Jangan lupa ubahAPP_DEBUG
menjadifalse
agar tidak menampilkan informasi debug yang sensitif kepada publik. Contoh:APP_NAME=AplikasiSaya APP_ENV=production APP_KEY=base64:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX APP_DEBUG=false APP_URL=https://www.domainanda.com DB_CONNECTION=mysql DB_HOST=localhost # Atau alamat database hosting Anda DB_PORT=3306 DB_DATABASE=nama_database DB_USERNAME=username_database DB_PASSWORD=password_database
-
Buat Akun Hosting dan Database: Pastikan Anda sudah memiliki akun hosting di provider hosting Indonesia pilihan Anda dan sudah membuat database yang akan digunakan oleh aplikasi Laravel Anda. Catat informasi penting seperti nama database, username, dan password.
-
Versi PHP yang Kompatibel: Pastikan server hosting Anda menggunakan versi PHP yang kompatibel dengan aplikasi Laravel Anda. Anda bisa mengecek persyaratan versi PHP di dokumentasi Laravel. Umumnya, Laravel versi terbaru membutuhkan PHP 8.1 atau lebih tinggi.
-
Composer Terinstall di Server (Opsional): Jika Anda berencana menggunakan Composer di server hosting (misalnya untuk meng-update package), pastikan Composer sudah terinstall. Jika tidak, Anda bisa meng-upload folder
vendor
(yang berisi package Composer) dari local environment Anda ke server. -
Buat Backup: Ini penting! Selalu buat backup aplikasi Laravel Anda sebelum melakukan perubahan apapun. Jika terjadi kesalahan saat deploy, Anda bisa dengan mudah mengembalikan aplikasi ke kondisi semula.
2. Memilih Hosting di Indonesia yang Cocok untuk Aplikasi Laravel
Memilih provider hosting yang tepat adalah kunci keberhasilan deploy aplikasi Laravel Anda. Ada banyak pilihan hosting di Indonesia, dan penting untuk mempertimbangkan beberapa faktor berikut:
- Dukungan PHP dan Ekstensi yang Dibutuhkan: Pastikan hosting Anda mendukung versi PHP yang sesuai dengan aplikasi Laravel Anda dan memiliki ekstensi PHP yang dibutuhkan (seperti
PDO
,OpenSSL
,mbstring
,Tokenizer
,XML
,Ctype
,JSON
). - Kapasitas Penyimpanan dan Bandwidth: Pilih hosting dengan kapasitas penyimpanan dan bandwidth yang cukup untuk menampung aplikasi dan melayani traffic pengunjung Anda.
- Kemudahan Pengelolaan: Pilih hosting dengan control panel yang mudah digunakan (seperti cPanel atau Plesk) sehingga Anda bisa dengan mudah mengelola file, database, dan konfigurasi server.
- Dukungan Pelanggan: Pastikan provider hosting Anda memiliki dukungan pelanggan yang responsif dan siap membantu jika Anda mengalami masalah.
- Harga: Bandingkan harga dari beberapa provider hosting dan pilih yang sesuai dengan anggaran Anda.
- Fitur Tambahan (Opsional): Beberapa provider hosting menawarkan fitur tambahan seperti SSL certificate gratis, automatic backup, dan staging environment. Fitur-fitur ini bisa sangat berguna untuk aplikasi Laravel Anda.
Beberapa provider hosting populer di Indonesia yang sering digunakan untuk deploy aplikasi Laravel antara lain:
- Niagahoster
- IDCloudHost
- Domainesia
- Qwords
Lakukan riset dan bandingkan fitur serta harga dari berbagai provider hosting sebelum membuat keputusan.
3. Cara Upload Aplikasi Laravel ke Server Hosting: Menggunakan FTP/SFTP atau Git
Setelah memiliki akun hosting dan aplikasi Laravel Anda siap, langkah selanjutnya adalah meng-upload aplikasi ke server hosting. Ada beberapa cara untuk melakukan ini:
-
FTP/SFTP: Ini adalah cara yang paling umum digunakan. Anda akan menggunakan client FTP (seperti FileZilla atau Cyberduck) untuk terhubung ke server hosting Anda dan meng-upload file aplikasi Laravel Anda. Pastikan Anda meng-upload semua file dan folder, termasuk folder
vendor
(jika Anda tidak menggunakan Composer di server).- Langkah-langkah menggunakan FTP/SFTP:
- Dapatkan informasi koneksi FTP/SFTP dari provider hosting Anda (biasanya berupa host, username, password, dan port).
- Buka client FTP Anda dan masukkan informasi koneksi.
- Hubungkan ke server.
- Cari folder yang menjadi root directory untuk website Anda (biasanya
public_html
atauwww
). - Upload semua file dan folder aplikasi Laravel Anda ke root directory ini.
- Langkah-langkah menggunakan FTP/SFTP:
-
Git: Jika Anda menggunakan Git untuk mengelola kode aplikasi Anda, Anda bisa menggunakan Git untuk men-deploy aplikasi ke server. Cara ini lebih efisien karena Anda hanya perlu meng-upload perubahan yang ada, bukan seluruh aplikasi.
- Langkah-langkah menggunakan Git:
- Pastikan Git terinstall di server hosting Anda.
- Buat repository Git di server (misalnya menggunakan
git init --bare
). - Tambahkan remote repository di local environment Anda.
- Push kode aplikasi Anda ke remote repository di server.
- Buat hook Git di server untuk secara otomatis mem-deploy aplikasi setiap kali ada perubahan di-push.
- Langkah-langkah menggunakan Git:
4. Konfigurasi Web Server: Mengatur public
Directory sebagai Root
Setelah aplikasi Laravel Anda ter-upload ke server, Anda perlu mengkonfigurasi web server (seperti Apache atau Nginx) untuk mengarahkan root directory ke folder public
di dalam aplikasi Laravel Anda. Hal ini penting karena hanya folder public
yang seharusnya bisa diakses oleh publik.
-
cPanel: Jika Anda menggunakan cPanel, Anda bisa mengubah Document Root dari website Anda ke folder
public
. Cari opsi “Domains” atau “Aliases” di cPanel dan ubah Document Root ke path yang benar.Contoh:
/home/username/public_html/nama_folder_aplikasi/public
-
DirectAdmin: Prosesnya mirip dengan cPanel. Cari opsi “Domain Setup” atau “Site Redirection” dan ubah Document Root.
-
Manual (Apache): Jika Anda memiliki akses ke konfigurasi Apache, Anda bisa mengedit file
httpd.conf
atauvirtualhost
dan mengubah DocumentRoot ke folderpublic
.Contoh:
<VirtualHost *:80> ServerName www.domainanda.com DocumentRoot /home/username/public_html/nama_folder_aplikasi/public <Directory /home/username/public_html/nama_folder_aplikasi/public> AllowOverride All </Directory> </VirtualHost>
-
Manual (Nginx): Edit file konfigurasi Nginx (biasanya di
/etc/nginx/sites-available/
) dan ubahroot
ke folderpublic
.Contoh:
server { listen 80; server_name www.domainanda.com; root /home/username/public_html/nama_folder_aplikasi/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 } }
Pastikan Anda me-restart web server setelah membuat perubahan pada konfigurasi.
5. Mengatur Permissions: Keamanan Aplikasi Laravel Anda
Mengatur permissions yang tepat adalah penting untuk keamanan aplikasi Laravel Anda. Anda perlu memastikan bahwa web server memiliki akses untuk membaca dan menulis file dan folder yang dibutuhkan, tetapi tidak memiliki akses yang berlebihan.
- Storage Folder: Folder
storage
dan semua subfolder di dalamnya harus dapat ditulis oleh web server. Biasanya, permission775
atau777
digunakan (tergantung konfigurasi server). Namun, permission777
dianggap kurang aman. Sebaiknya konsultasikan dengan provider hosting Anda untuk permission yang paling tepat. - Bootstrap/Cache Folder: Folder
bootstrap/cache
juga harus dapat ditulis oleh web server. - File Lainnya: Sebagian besar file lainnya (seperti file PHP, file konfigurasi) seharusnya hanya bisa dibaca oleh web server (biasanya dengan permission
644
).
Anda bisa mengubah permissions menggunakan client FTP atau melalui command line (jika Anda memiliki akses SSH).
Contoh menggunakan command line:
chmod -R 775 storage
chmod -R 775 bootstrap/cache
chmod 644 artisan
6. Migrasi Database: Membuat dan Mengisi Tabel
Setelah aplikasi Laravel Anda terhubung ke database, Anda perlu melakukan migrasi database untuk membuat tabel dan struktur database yang dibutuhkan.
-
Jalankan Perintah
php artisan migrate
: Buka terminal atau SSH ke server hosting Anda, masuk ke directory aplikasi Laravel Anda, dan jalankan perintah berikut:php artisan migrate
Perintah ini akan menjalankan semua migration yang ada di folder
database/migrations
dan membuat tabel yang sesuai di database Anda. -
Seed Database (Opsional): Jika Anda memiliki data awal yang ingin dimasukkan ke dalam database, Anda bisa menggunakan seeder. Jalankan perintah berikut:
php artisan db:seed
Perintah ini akan menjalankan semua seeder yang ada di folder
database/seeders
dan memasukkan data ke dalam tabel yang sesuai.
7. Konfigurasi Cache: Meningkatkan Performa Aplikasi Laravel
Cache adalah teknik penting untuk meningkatkan performa aplikasi Laravel Anda. Dengan menyimpan data yang sering diakses di cache, Anda bisa mengurangi beban database dan mempercepat waktu loading halaman.
-
Konfigurasi
CACHE_DRIVER
di.env
: Pilih driver cache yang sesuai dengan server hosting Anda. Pilihan yang umum adalahfile
,redis
, ataumemcached
. Jika Anda menggunakanredis
ataumemcached
, pastikan server hosting Anda mendukung driver tersebut dan sudah terkonfigurasi dengan benar.Contoh menggunakan
file
:CACHE_DRIVER=file
Contoh menggunakan
redis
:CACHE_DRIVER=redis REDIS_HOST=127.0.0.1 REDIS_PORT=6379
-
Konfigurasi Cache di Kode Aplikasi Anda: Gunakan fungsi
Cache::remember()
atauCache::get()
di kode aplikasi Anda untuk menyimpan dan mengambil data dari cache. -
Bersihkan Cache: Setelah melakukan perubahan pada kode aplikasi Anda, Anda perlu membersihkan cache agar perubahan tersebut diterapkan. Jalankan perintah berikut:
php artisan cache:clear
Anda juga bisa membersihkan cache view dengan perintah:
php artisan view:clear
Dan cache config dengan perintah:
php artisan config:cache
8. Mengatur Cron Jobs: Otomatisasi Tugas-Tugas Penting
Cron jobs adalah tugas-tugas yang dijalankan secara otomatis pada interval waktu tertentu. Anda bisa menggunakan cron jobs untuk berbagai keperluan, seperti:
- Menjalankan Scheduled Tasks: Laravel memiliki fitur task scheduling yang memungkinkan Anda menjadwalkan tugas-tugas yang akan dijalankan secara otomatis.
- Membersihkan Log Files: Secara berkala membersihkan log files untuk menghemat ruang penyimpanan.
- Mengirimkan Email: Mengirimkan email secara berkala (misalnya newsletter).
Untuk mengatur cron job, Anda perlu mengakses control panel hosting Anda dan mencari opsi “Cron Jobs”. Tambahkan cron job baru dengan perintah yang sesuai.
Contoh untuk menjalankan task scheduling Laravel setiap menit:
* * * * * php /path/ke/aplikasi/artisan schedule:run >> /dev/null 2>&1
Ganti /path/ke/aplikasi
dengan path yang benar ke directory aplikasi Laravel Anda.
9. Mengaktifkan SSL: Mengamankan Koneksi Website Anda
SSL (Secure Sockets Layer) adalah protokol keamanan yang mengenkripsi komunikasi antara browser pengunjung dan server hosting Anda. Mengaktifkan SSL sangat penting untuk mengamankan data sensitif (seperti password dan informasi kartu kredit) dan meningkatkan kepercayaan pengunjung terhadap website Anda.
-
Dapatkan Sertifikat SSL: Anda bisa mendapatkan sertifikat SSL gratis dari Let’s Encrypt atau membeli sertifikat SSL dari provider sertifikat komersial. Banyak provider hosting menawarkan sertifikat SSL gratis sebagai bagian dari paket hosting mereka.
-
Instal Sertifikat SSL: Setelah mendapatkan sertifikat SSL, Anda perlu menginstalnya di server hosting Anda. Biasanya, provider hosting Anda akan menyediakan panduan langkah demi langkah untuk melakukan ini.
-
Redirect HTTP ke HTTPS: Setelah sertifikat SSL terinstal, Anda perlu mengarahkan semua traffic HTTP (port 80) ke HTTPS (port 443). Anda bisa melakukan ini dengan menambahkan kode berikut ke file
.htaccess
(untuk Apache) atau file konfigurasi Nginx:-
.htaccess (Apache):
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
-
Nginx:
server { listen 80; server_name www.domainanda.com; return 301 https://www.domainanda.com$request_uri; } server { listen 443 ssl; server_name www.domainanda.com; # Konfigurasi SSL Anda di sini }
-
10. Monitoring dan Troubleshooting: Memastikan Aplikasi Laravel Berjalan Lancar
Setelah aplikasi Laravel Anda deploy, penting untuk terus memantau dan melakukan troubleshooting jika terjadi masalah.
- Periksa Log Files: Periksa log files aplikasi Laravel Anda (di folder
storage/logs
) secara berkala untuk mencari error atau peringatan. - Gunakan Debugging Tools: Gunakan debugging tools seperti Laravel Telescope atau Clockwork untuk membantu Anda melacak masalah dan menganalisis performa aplikasi Anda.
- Pantau Performa Server: Pantau penggunaan CPU, memori, dan bandwidth server Anda untuk memastikan bahwa server Anda tidak kelebihan beban.
- Uji Aplikasi Anda Secara Berkala: Uji aplikasi Anda secara berkala untuk memastikan bahwa semua fitur berfungsi sebagaimana mestinya.
- Dapatkan Bantuan dari Komunitas: Jika Anda mengalami kesulitan, jangan ragu untuk meminta bantuan dari komunitas Laravel Indonesia. Ada banyak forum, grup Facebook, dan channel Slack tempat Anda bisa mendapatkan bantuan dari developer Laravel lainnya.
11. Optimalisasi Performa Aplikasi Laravel di Hosting Indonesia
Setelah berhasil melakukan deploy, langkah selanjutnya adalah mengoptimalkan performa aplikasi Laravel Anda agar berjalan lebih cepat dan efisien di hosting Indonesia. Berikut beberapa tips yang bisa Anda terapkan:
- Gunakan CDN (Content Delivery Network): CDN menyimpan cache dari asset statis aplikasi Anda (seperti gambar, CSS, dan JavaScript) di server yang tersebar di berbagai lokasi geografis. Ketika pengunjung mengakses website Anda, asset statis akan dikirimkan dari server CDN terdekat, sehingga mempercepat waktu loading halaman. Beberapa CDN populer antara lain Cloudflare, Amazon CloudFront, dan Akamai.
- Optimalkan Gambar: Kompres gambar sebelum meng-upload-nya ke server untuk mengurangi ukuran file. Gunakan format gambar yang tepat (misalnya JPEG untuk foto dan PNG untuk grafik).
- Minifikasi CSS dan JavaScript: Minifikasi CSS dan JavaScript untuk menghapus karakter yang tidak perlu (seperti spasi dan komentar) dan mengurangi ukuran file.
- Gunakan Database Indexing: Pastikan database Anda menggunakan indexing yang tepat untuk mempercepat query.
- Aktifkan Gzip Compression: Aktifkan Gzip compression di web server Anda untuk mengompres file sebelum dikirimkan ke browser.
- Gunakan Caching: Manfaatkan berbagai teknik caching yang disediakan oleh Laravel, seperti view caching, route caching, dan query caching, untuk mengurangi beban database dan mempercepat waktu loading halaman.
- Optimalkan Kode Aplikasi Anda: Tinjau kode aplikasi Anda dan identifikasi bagian-bagian yang bisa dioptimalkan. Hindari penggunaan query yang tidak efisien dan gunakan algoritma yang tepat.
12. Tips Tambahan: Keamanan dan Maintenance Rutin
Selain performa, keamanan dan maintenance rutin juga penting untuk memastikan aplikasi Laravel Anda berjalan lancar dan aman dalam jangka panjang.
- Perbarui Laravel dan Package Secara Teratur: Selalu perbarui Laravel dan package Composer Anda ke versi terbaru untuk mendapatkan bug fixes dan security updates.
- Gunakan Security Middleware: Laravel menyediakan beberapa security middleware yang bisa Anda gunakan untuk melindungi aplikasi Anda dari serangan umum seperti Cross-Site Scripting (XSS) dan Cross-Site Request Forgery (CSRF).
- Validasi Input Pengguna: Selalu validasi input pengguna untuk mencegah serangan SQL Injection dan XSS.
- Backup Database Secara Rutin: Lakukan backup database secara rutin untuk memastikan Anda memiliki salinan data terbaru jika terjadi masalah.
- Pantau Aktivitas Pengguna: Pantau aktivitas pengguna untuk mendeteksi aktivitas yang mencurigakan.
Dengan mengikuti panduan ini, Anda seharusnya bisa dengan mudah melakukan cara deploy aplikasi Laravel ke hosting Indonesia. Selamat mencoba dan semoga berhasil! Jangan ragu untuk mencari bantuan jika Anda mengalami kesulitan. Komunitas Laravel Indonesia selalu siap membantu!