Menggabungkan dua sistem berbeda seperti WordPress dan CodeIgniter 3 dalam satu hosting bisa menjadi tantangan tersendiri, terutama ketika Anda ingin meletakkan CodeIgniter di dalam subfolder WordPress, misalnya:https://domainanda.com/ciapp
.
WordPress adalah sebuah sistem manajemen konten (CMS – Content Management System) berbasis open-source yang digunakan untuk membuat dan mengelola website secara mudah tanpa perlu kemampuan pemrograman yang mendalam.
CodeIgniter adalah sebuah framework PHP ringan dan cepat yang dirancang untuk membantu pengembang membangun aplikasi web dengan cara yang lebih efisien, terstruktur, dan aman. Versi 3 ini merupakan versi stabil dan populer dari CodeIgniter sebelum diluncurkannya CodeIgniter 4 yang lebih modern.
Artikel ini akan membahas langkah demi langkah cara meng-hosting CodeIgniter 3 di dalam subfolder WordPress, termasuk pengaturan .htaccess
, config.php
, dan index.php
agar keduanya dapat berjalan berdampingan tanpa konflik.
1. Struktur Folder yang Diperlukan Codeigniter 3
Pertama-tama, pastikan Anda memiliki struktur direktori seperti berikut:
/var/www/html/wordpress/
├── index.php ← WordPress
├── wp-content/
├── wp-includes/
├── ciapp/ ← Aplikasi CodeIgniter 3
│ ├── application/
│ ├── system/
│ ├── index.php
│ └── ...
Dengan demikian, WordPress akan tetap menjadi aplikasi utama, sementara CodeIgniter ditempatkan dalam subfolder bernama ciapp
.
2. Konfigurasi config.php
CodeIgniter
Edit file berikut:
$config['base_url'] = 'http://domainanda.com/ciapp/';
3. Edit index.php
CodeIgniter (jika perlu)
Pastikan jalur system
dan application
sesuai:
$system_path = 'system';
$application_folder = 'application';
Jika index.php
berada di dalam folder ciapp
, dan struktur tidak diubah, tidak perlu diubah apa pun di sini.
4. Konfigurasi Nginx
Edit file konfigurasi server Anda di /etc/nginx/sites-available/domainkamu.conf
atau lokasi virtual host Anda. Contoh konfigurasi:
server {
server_name domainkamu;
root /var/www/domainkamu;
index index.php index.html;
access_log /var/log/domainkamu-access.log;
error_log /var/log/domainkamu-error.log error;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
//ciapp adalah codeigniter
location /ciapp/ {
alias /var/www/prolov.co.id/ciapp/;
try_files $uri $uri/ /ciapp/index.php;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
}
location ~ \.php {
fastcgi_index index.php;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Catatan penting:
- Pastikan blok
/ciapp
tidak mengganggu WordPress. - Anda harus menggunakan
$document_root
danSCRIPT_FILENAME
dengan benar agar PHP bisa dieksekusi dengan benar.
5. Restart Nginx
Setelah konfigurasi selesai, restart Nginx agar perubahan diterapkan:
sudo systemctl restart nginx
6. Cek Akses Codeigniter 3
Akses WordPress: http://domainanda.com/
Akses CodeIgniter: http://domainanda.com/ciapp
Tips Tambahan
- Pastikan
index.php
di CodeIgniter bisa menanganiPATH_INFO
— ini penting untuk routing. - Jika URL pada CodeIgniter masih menunjukkan error, aktifkan debug logging dan cek log Nginx di
/var/log/nginx/error.log
. - Tidak perlu
.htaccess
, karena Nginx tidak menggunakannya.
Kesimpulan
Menjalankan CodeIgniter 3 di subfolder dalam instalasi WordPress dengan Nginx memungkinkan pengembangan sistem terpisah tanpa memengaruhi WordPress. Kunci utamanya adalah konfigurasi nginx.conf
dan config.php
CodeIgniter yang tepat. Dengan pendekatan ini, Anda bisa menggunakan CodeIgniter sebagai sistem API atau aplikasi admin di dalam instalasi WordPress.