Deploy CodeIgniter 4 ke hosting bukan sekadar mengunggah semua file lewat File Manager. Struktur folder, konfigurasi environment, document root, database, dan permission harus cocok. Panduan ini membantu pemula memindahkan aplikasi ke shared hosting atau server Apache dengan alur yang bisa diuji. 💡 Kerjakan di salinan proyek dan simpan backup.
🔍 Pahami struktur CodeIgniter 4
Jadikan folder public sebagai document root yang boleh diakses web. Folder app, system, dan writable jangan dijadikan document root. Pembatasan ini membantu mencegah file internal diminta langsung lewat URL.
Dokumentasi resmi CodeIgniter menjelaskan kebutuhan document root ke direktori public. Untuk Apache, public/.htaccess membantu meneruskan route ke front controller. Modul rewrite dan izin override harus aktif sesuai konfigurasi hosting.
✅ Checklist sebelum upload
- Pastikan aplikasi berjalan normal di lokal.
- Catat versi PHP dan extension project.
- Siapkan database tujuan dan backup.
- Pastikan
.envtidak masuk repository publik. - Siapkan domain atau subdomain untuk pengujian.
Periksa huruf besar-kecil nama file. Server umumnya memakai filesystem case-sensitive; perbedaan Config dan config dapat membuat aplikasi gagal setelah upload.
📦 Siapkan release production
Jangan upload cache, log, session, backup, atau dependency development. Dokumentasi CodeIgniter menyarankan composer install --no-dev saat deployment agar paket development tidak ikut dipasang. Jika tersedia, php spark phpini:check membantu memeriksa pengaturan PHP penting.
Buat release dari commit yang sudah diuji atau ZIP source yang bersih. Jangan masukkan credential, dump database, maupun file rahasia ke arsip. Kalau aplikasi memakai migration, uji dulu di development dan backup database sebelum menjalankannya di production.
🌐 Arahkan domain ke folder public
Di panel hosting, cari document root, domain, addon domain, atau virtual host. Arahkan root domain ke folder public aplikasi, misalnya /home/akun/apps/nama-proyek/public. Path sebenarnya mengikuti provider.
Jangan memakai PHP built-in development server sebagai layanan production. Server bawaan CodeIgniter ditujukan untuk development lokal. Jika rewrite belum aktif, homepage mungkin terbuka tetapi route seperti /login atau halaman detail gagal.
⚙️ Atur environment dan URL
Buat atau perbarui .env sesuai konfigurasi project. Set environment production dan gunakan base URL HTTPS dengan trailing slash. Contoh konsep: CI_ENVIRONMENT = production dan app.baseURL = 'https://contoh-domain.com/'. Cek nama key pada template project sebelum menyalin.
Matikan tampilan error detail di production. Exception yang terlalu lengkap bisa membocorkan path server, query, atau konfigurasi. Untuk debugging, gunakan log hosting secara terbatas dan jangan menampilkan credential ke browser.
🗄️ Sambungkan database
Buat database, user, dan password melalui panel hosting. Isi hostname database, port bila berbeda, nama database, username, dan password lewat environment atau konfigurasi project. Uji koneksi memakai migration atau health check aman, bukan dengan menampilkan credential.
Jika query gagal, periksa collation, timezone, extension, serta hak akses user. Berikan hak database minimum yang dibutuhkan aplikasi.
🚀 Upload dan atur permission
Upload source code di luar document root jika hosting mendukungnya, lalu jadikan hanya folder public sebagai document root. Pastikan dependency terpasang dan folder writable bisa ditulis aplikasi. Jangan memakai permission 777 sebagai solusi permanen.
Jika cache atau log gagal ditulis, cari folder yang tepat dan berikan akses minimum sesuai aturan provider. Permission terlalu longgar meningkatkan risiko file diubah proses lain.
🔍 Uji dari luar
Uji homepage, route dinamis, form validasi, koneksi database, upload bila ada, halaman 404, CSS, JavaScript, gambar, HTTPS, serta redirect canonical. HTTP 200 pada homepage belum cukup; route dinamis dan asset juga harus diuji.
Setelah konfigurasi berubah, cek log server untuk error PHP, permission denied, missing extension, database connection, dan rewrite. Perbaiki satu error utama lalu ulangi test. Jangan mengganti banyak setting sekaligus.
⚠️ Kesalahan deploy yang sering terjadi
- Document root menunjuk root project, bukan
public. - Environment masih development.
- Base URL masih localhost atau belum HTTPS.
.envberada di lokasi salah.- Dependency atau versi PHP tidak cocok.
- Rewrite Apache belum aktif.
- Folder
writabletidak bisa ditulis. - Nama file beda huruf besar-kecil.
- Migration belum dijalankan setelah backup.
- ZIP, log, atau backup tertinggal di folder publik.
📋 Checklist final
- Domain membuka aplikasi melalui HTTPS.
- Document root menunjuk ke
public. - Environment production aktif.
- Homepage, route, 404, form, dan database lulus uji.
- CSS, JavaScript, dan gambar termuat.
- Detail error tidak tampil.
- Permission minimum.
- Tidak ada credential, dump, atau backup di area publik.
- Backup release dan database tersimpan aman.
Artikel AI untuk coding tanpa cuma copy-paste bisa membantu membedah route, controller, database, dan view sebelum deploy. Kuskuskuy menyarankan mulai dari staging atau subdomain, lalu pindah ke domain utama setelah checklist lulus.
📌 Kesimpulan
Cara deploy CodeIgniter 4 ke hosting yang aman berawal dari struktur benar: jadikan public document root, pasang dependency production, atur environment dan base URL, sambungkan database, lalu uji route serta permission.
Sumber
[1] CodeIgniter 4 — Deployment.
[2] CodeIgniter 4 — Running Your App.
Featured image: ComputerProgrammer.jpg, Wikimedia Commons, lisensi tercantum pada halaman sumber. Sumber: Wikimedia Commons.
