Cara Seru Install Banyak WordPress di Satu Domain
February 17, 2008 1 Comment
Kalau di artikel sebelumnya kita bisa memiliki banyak blog WordPress dengan subdomain yang berbeda, sekarang akan dijelaskan bagaimana kita melakukan hal serupa namun hanya pada sebuah domain / hostname.
Asumsi kita memiliki sebuah host dengan alamat : www.inoidage.com. Kemudian kita ingin memiliki 3 buah blog WordPress, masing-masing dengan alamat :
- www.inoidage.com/aisar
- www.inoidage.com/labibi
- www.inoidage.com/romas
Langkah pertama tentunya mengekstraksi file-file wordpress ke “Document Root“. Kemudian, seperti biasa, membuat sebuah database khusus untuk wordpress. Setelah itu, bukalah file wp-config.php dan masukkan parameter database yang telah kita buat. Contohnya :
define('DB_NAME', 'blogs');
define('DB_USER', 'blogs-user');
define('DB_PASSWORD', 'blogs-password');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
Karena kita ingin menginstall beberapa blog dalam satu database, maka yang harus di-”mainkan” adalah “table_prefix”-nya. Nah, sekarang, problemnya adalah bagaimana menghubungkan antara URL dan “table_prefix” tersebut, sehingga pengaksesan /aisar dan /labibi akan merujuk ke tabel-tabel yang berbeda.
Karena kita akan memanipulasi URL, otomatis kita harus bekerja dengan mod_rewrite pada Apache. Aktifkanlah terlebih dahulu modul tersebut, kemudian buat sebuah file .htaccess pada “Document Root” dengan isi sebagai berikut :
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Contoh tersebut merupakan standar WordPress apabila kita mengaktifkan “permalink”. Jika file-file wordpress tidak berada pada “document root”, cukup mengubah parameter RewriteBase dan RewriteRule. Contohnya, apabila file-file wordpress berada di bawah /blog, maka .htaccess menjadi :
...
RewriteBase /blog/
...
RewriteRule . /blog/index.php [L]
Setelah berhasil memanipulasi URL dengan mod_rewrite, saatnya menghubungkan URL tersebut dengan “tabel_prefix”. Dikaitkan dengan asumsi sebelumnya, aku akan membuat folder baru dengan nama “wp-configs”, kemudian di dalamnya terdapat empat file :
- aisar.php
- labibi.php
- romas.php
- wp.php (default blog)
isi file tersebut kurang lebih hanya saru baris, seperti ini :
<?php $table_prefix = 'aisar_'; ?>
dengan ‘aisar_’ diubah-ubah sesuai “tabel_prefix” yang ingin dipakai (harus unik untuk tiap blog).
Pada file wp_config.php yang asli, aku menghapus baris yang mendefinisikan “table_prefix”, dan aku ganti dengan script di bawah ini :
define('BLOG_ID_POS',1);
define('ABSPATH', dirname(__FILE__).'/');
$parse = explode("/",$_SERVER['REQUEST_URI']);
$parse2 = explode("/",$_SERVER['PHP_SELF']);
if ($parse2[BLOG_ID_POS]=='index.php') {
setcookie('sitenya',$parse[BLOG_ID_POS]);
}
if (file_exists(ABSPATH.'wp-configs/'.$parse[BLOG_ID_POS].'.php')) {
include(ABSPATH.'wp-configs/'.$parse[BLOG_ID_POS].'.php');
}
else {
if ($_COOKIE['sitenya']) {
if (file_exists(ABSPATH.'wp-configs/'.$_COOKIE['sitenya'].'.php')){
include(ABSPATH.'wp-configs/'.$_COOKIE['sitenya'].'.php');
}
else
include(ABSPATH.'wp-configs/wp.php');
}
else
include(ABSPATH.'wp-configs/wp.php');
}
Jika diperhatikan secara sekilas, script ini bekerja dengan memparsing REQUEST_URI, untuk mengambil BLOG_ID. BLOG_ID inilah yang kemudian dicari di dalam folder wp_configs. Contohnya, apabila diakses : http://www.inoidage.com/aisar maka script akan mengenali “aisar” sebagai BLOG_ID dan mencari “aisar.php” di dalam folder wp_configs. Tidak lupa, kita juga harus menyediakan sebuah blog “default” (pada script di atas, BLOG_ID default-nya adalah “wp”, dengan file “wp.php”).
Yang perlu disesuaikan dari script di atas adalah konstanta BLOG_ID_POS yang menunjukkan posisi BLOG_ID pada URL. Contohnya apabila URL tadi diganti menjadi : http://www.inoidage.com/blog/aisar maka BLOG_ID_POS-nya harus diubah menjadi 2 ([1]->’blog’, [2]->’aisar’)
Oke, saatnya mencoba. Apabila langkah-langkah di atas dilakukan dengan benar, maka wordpress akan melakukan proses instalasi pada saat kita mengakses ketiga URL tadi. Setelah proses instalasi berhasil dan masuk ke dashboard, terdapat 2 langkah krusial yang harus dilakukan sebelum mengutak-atik yang lain :
- Pastikan setting Options > General > Blog Address sudah benar sesuai URL-nya, contoh : http://www.inoidage.com/aisar
- Aktifkan Options > Permalink dengan memilih opsi selain “default”
Untuk membuat sebuah blog baru, tinggal membuat file konfigurasi “table_prefix” di bawah folder “wp-configs”. Contoh, untuk membuat http://www.inoidage.com/putri, tinggal membuat file “putri.php” dan disimpan ke dalam folder “wp-configs”. Jangan lupa melakukan 2 langkah krusial, sebelum mengutak-atik yang lain.
Selamat Mencoba!
V5Iudl gfb07yvt9d6t94wbtx63bgq7d