GULANGGULING.COM

Multisites CodeIgniter – Multi Configuration

Melanjutkan postingan mengenai membuat modular pada CodeIgniter kemaren,

Sekarang bertemakan membuat codeigniter menjadi multisites atau bisa disebut dengan multi konfigurasi. Sebelumnya mari mengerti multisites dahulu. Tujuan multisites disini adalah untuk membuat beberapa client/subdomain menggunakan configurasi dan database koneksi berbeda beda tapi tetap menggunakan satu sumber code (source codes). Biar lebih mengerti ilustrasinya begini :

 

 

Ilustrasi diatas menggambarkan dalam satu source codes CI, bisa diakses oleh banyak client dan setiap client tersebut memiliki koneksi database masing masing. Sebenarnya di dalam CI sudah memberikan deskripsi multi database, dengan membuat configurasi databasenya lebih dari satu. Tapi yang ini sedikit berbeda, perbedaannya yaitu setiap client nanti akan dideskripsikan dengan subdomain yang berbeda, misalnya situs utamanya dalah www.kucing.com kemudian client A (www.anak.kucing.com) dan Client B (www.ibu.kucing.com) , setiap sub-domain tersebut merepresentasikan setiap clientnya sendiri. Oke, semoga penjelasannya mudah dipahami, mari lanjut ke bagian pengaturannya saja, :

 

Langkah – langkah pembuatan :

Pertama, silakan download codeIgniter, kalau bisa versi terbaru, silakan cari di ellislab atau menggunakan CI pada artikel yang pernah saya bahas terdahulu.

Kedua, Asumsi anda telah berhasil melakukan setup CI di Desk kalian masing-masing. Silakan buka file index.php bagian root. Ingat, bagian root. Masukan kode berikut dalam file tersebut, sebaiknya diletakan paling atas.

Fungsi ini digunakan untuk melakukan pengecekan nama client, misalnya pada url berikut www.anak.kucing.com artinya clientnya bernama anak. Hal ini digunakan untuk mengambil file konfigurasi database untuk client tersebut saja.

if ( ! function_exists('domains_determine_uri'))
{
function domains_determine_uri($domain_environment = 'prefix')
{
$http_host = (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : FALSE);
$http_split = ($http_host ? explode('.', $http_host) : FALSE);
switch(strtolower($domain_environment))
{
case 'prefix':
$domain_uri = $http_split[0];
break;
case 'suffix':
$domain_uri = end($http_split);
break;
default:
exit('The domain environment has not been set correctly, please use either prefix or suffix.');
}
return (isset($domain_uri) ? $domain_uri : FALSE);
}
}

$pref = 'prefix';

$client = domains_determine_uri($pref) ;

define('ENVIRONMENT', $client);

Jika anda menemukan baris ENVIRONMENT lain di file index.php, maka dianjurkan untuk dihapus.

Ketiga, Buat folder client di dalam configurasi /application/config. Dalam hal ini kita buat dua client yaitu anak dan ibu.

 

Dalam setiap folder tersebut diisikan dengan file config.php dan database.php , file ini silakan copy saja file dari /application/config. Setiap file config.php dan database.php itu dapat diseting berbeda-beda dan dapat anda sesuaikan dengan source database masing masing client. Oke sebenarnya sampai disini anda sudah selesai seting multisites pada CI.

Keempat atau terakhir, jangan lupa anda membuat atau melakukan seting vhost dan host pada website anda. Jika langkah anda benar maka seharusnya anda sudah memiliki multisites menggunakan CI. Contoh host yang saya gunakan ini yaitu http://www.kucing.com , http://www.anak.kucing.com dan http://www.ibu.kucing.com.

 

Sekian dulu dan semoga bermanfaat. Jika anda berminat dengan file-nya silakan email saya di ardhityawiedhairawan@gmail.com

 

Salam

 

Verba volant, scripta manent