Cara Aman Upload Project CodeIgniter 4 di Hosting Menggunakan Symbolic Link

Melakukan deployment aplikasi CodeIgniter 4 (CI4) di layanan shared hosting seringkali membingungkan bagi pemula. Masalah utamanya adalah struktur folder CI4 yang memisahkan folder public sebagai document root dengan folder inti sistem. Banyak orang memilih cara "instan" dengan memindahkan isi folder public ke public_html dan memodifikasi file index.php, namun cara ini kurang rapi dan berisiko saat ada pembaruan versi.

Cara terbaik dan paling profesional adalah dengan menaruh seluruh folder projek di luar folder public_html dan menggunakan Symbolic Link atau ln -s. Dengan metode ini, file inti aplikasi Anda tidak akan bisa diakses langsung melalui browser, sehingga jauh lebih aman.

Mengapa Harus Menggunakan Symbolic Link?

Sebelum masuk ke teknis, mari kita pahami keunggulannya:

  • Keamanan Maksimal: File .env, folder app, dan writable berada di luar direktori publik.

  • Struktur Tetap Rapi: Anda tidak perlu mengubah struktur folder asli dari lokal ke server.

  • Kemudahan Update: Anda cukup melakukan git pull atau re-upload folder inti tanpa merusak konfigurasi folder publik.


Langkah-Langkah Deployment CI4 dengan ln -s

1. Persiapan File di Lokal

Pastikan projek CI4 Anda sudah siap. Ubah konfigurasi di file .env terutama bagian app.baseURL dan kredensial database sesuai dengan detail yang ada di panel hosting Anda. Pastikan juga folder writable memiliki izin akses yang benar sebelum di-kompres menjadi .zip.

2. Upload Projek ke Hosting

Login ke File Manager di cPanel atau melalui FTP. Jangan masuk ke public_html. Unggah file .zip projek Anda di tingkat yang sama dengan folder public_html (root direktori akun hosting). Setelah selesai, ekstrak file tersebut. Misalkan folder projek Anda bernama my-app.

3. Hapus atau Amankan Folder public_html Bawaan

Karena kita akan menggunakan symbolic link, kita perlu memastikan folder public_html kosong atau dihapus. Namun, banyak hosting tidak mengizinkan penghapusan folder ini. Jika tidak bisa dihapus, cukup hapus semua isinya.

4. Membuat Symbolic Link melalui Terminal/SSH

Langkah ini adalah inti dari tutorial ini. Jika hosting Anda menyediakan akses Terminal atau SSH, silakan buka dan jalankan perintah berikut:

Catatan: Ganti username dengan nama pengguna hosting Anda, dan my-app dengan nama folder projek Anda. Perintah ini akan menghubungkan folder public milik CI4 ke folder public_html yang diakses publik.

5. Alternatif Menggunakan PHP Script (Jika Tidak Ada SSH)

Jika hosting Anda tidak menyediakan akses terminal, jangan khawatir. Anda bisa membuat file bernama link.php di dalam folder root (bukan di dalam public_html), lalu isi dengan kode berikut:

Jalankan file tersebut melalui browser (misal: domainanda.com/link.php), lalu segera hapus file tersebut setelah muncul pesan berhasil.

6. Penyesuaian Izin Folder (Permissions)

Pastikan folder writable di dalam direktori projek Anda memiliki permission 775 atau 777 agar aplikasi bisa menulis log dan menyimpan session. Jika muncul error 500, biasanya masalah terletak pada file .htaccess yang berada di dalam folder public atau versi PHP yang belum sesuai (CI4 minimal membutuhkan PHP 8.1+).

Kesimpulan

Metode ln -s adalah cara paling elegan untuk meng-host aplikasi modern seperti CodeIgniter 4 atau Laravel di shared hosting. Dengan memisahkan logika aplikasi dari akses publik, Anda telah menerapkan standar keamanan yang baik pada web Anda.

Selamat mencoba, dan pastikan selalu melakukan backup sebelum melakukan perubahan pada struktur folder server Anda!





Anna Nikova
Lawumedia Indonesia

welcome Mauris mattis auctor cursus. Phasellus tellus tellus, imperdiet ut imperdiet eu, iaculis a sem. Donec vehicula luctus nunc in laoreet. Aliquam erat volutpat. Suspendisse vulputate porttitor condimentum.