Trik Pasang Banyak Blog WordPress di Satu Server

Misalkan kita memiliki sebuah server dengan domain science.com. Server ini ingin ditambahkan beberapa blog WordPress dengan alamat :

  • math.science.com
  • physics.science.com
  • chem.science.com

Langkah-langkah yang harus dikerjakan, antara lain :

  • setting subdomain pada DNS
  • membuat virtual host
  • memasang wordpress di masing-masing virtual host

Asumsi setting subdomain pada DNS telah dilakukan. Langkah selanjutnya, umumnya admin akan meng-copy folder wordpress sebanyak tiga kali, untuk masing-masing blog yang ingin dibuat. Contohnya :

  • wordpress-math/
  • wordpress-physics/
  • wordpress-chem/

Kemudian admin membuat 3 database yang berbeda, dan menyesuaikan konfigurasi database di file wp-config.php pada tiap folder wordpress. Terakhir, setting virtual host dari tiap subdomain akan memiliki document root sesuai dengan folder masing-masing :

  • math.science.com -> wordpress-math/
  • physics.science.com -> wordpress-physics/
  • chem.science.com -> wordpress-chem/

Cara ini memang simpel dan mudah dilakukan, namun memiliki beberapa kekurangan. Contohnya, ketika admin ingin menambahkan theme atau plugin baru ke semua blog, ia harus mengcopy-nya sebanyak 3 kali ke masing-masing folder di atas. Bayangkan jika server kita harus meng-host ratusan bahkan ribuan blog, tentu merupakan pekerjaan yang melelahkan.

Aku punya trik mudah untuk menjawab permasalahan di atas. Aku hanya memakai sebuah folder wordpress sebagai document root untuk semua blog dari virtual host yang ada. Jadi, jika dikaitkan dengan contoh di atas, subdomain math, physics, dan chem memiliki setting document root yang sama, sebut saja : wp-master/. Sehingga, apabila aku menambahkan sebuah theme atau plugin baru di folder wp-master/, semua blog akan dapat langsung menggunakannya.

Untuk membedakan blog math, physics, dan chem, cukup membuat file konfigurasi database khusus untuk masing-masing blog. Trik ini bekerja dengan memodifikasi file wp-config.php pada folder wp-master/ dengan script ini :

$curSite = $_SERVER[‘SERVER_NAME’];
$defaultSite = ‘default.science.com’;
$pathToConfig = ‘/home/web/wp-config/’;
if (file_exists($pathToConfig . $curSite . ‘.php’))
    include($pathToConfig . $curSite . ‘.php’);
else
    include($pathToConfig . $defaultSite . ‘.php’)
$table_prefix  = ‘wp_’;
define (‘WPLANG’, ”);
define(‘ABSPATH’, dirname(__FILE__).’/’);
require_once(ABSPATH.’wp-settings.php’);

Pada contoh ini, kita akan memakai satu database untuk satu blog, sehingga dibutuhkan 3 buah database. File wp-config.php yang sudah dimodifikasi ini tidak berisi definisi database (seperti DBNAME, DBUSER, dst), karena definisi inilah yang akan kita “mainkan” untuk setiap blog / virtual host.

Script di atas akan me-load file php yang disimpan pada folder wp-config/ sesuai dengan variabel SERVER_NAME yang disediakan oleh php. Folder wp-config/ berisi file definisi database khusus untuk tiap blog. Contohnya adalah :

  • math.science.com.php
  • physics.science.com.php
  • chem.science.com.php

Contoh Isi file math.science.com.php adalah sebagai berikut :

<?php
define(‘DB_NAME’, ‘wpdb_math’);
define(‘DB_USER’, ‘wpdb_math_user’);
define(‘DB_PASSWORD’, ‘wpdb_math_pass’);
define(‘DB_HOST’, ‘localhost’);
define(‘DB_CHARSET’, ‘utf8’);
define(‘DB_COLLATE’, ”);
?>

Jangan lupa menambahkan file default.science.com.php (dapat berisi fungsi die dan menginformasikan bahwa situs yang diminta tidak ditemukan).

Apabila user me-request situs http://math.science.com, maka wordpress akan me-load konfigurasi database dari math.science.com.php. Begitu juga dengan kasus user mengakses http://physics.science.com atau http://chem.science.com, file konfigurasi database yang di-load adalah physics.science.com.php atau chem.science.com.php.

Dengan trik yang sama, kita dapat menggunakan hanya sebuah database untuk ketiga blog tersebut. Kali ini, yang di-“mainkan” bukan konfigurasi database-nya, melainkan variabel “$table_prefix”. Selamat Mencoba!

17 Responses to Trik Pasang Banyak Blog WordPress di Satu Server

  1. restya says:

    wah… berguna
    mw nyobain, ah

  2. reditya says:

    ini baru opreker😀

  3. wahyuPur says:

    bisa nggak ya diterapin di intranet? trims

  4. aisar says:

    @restya : harus bisa.. :p

    @mas reza : wah, mas reza lebih ngeri ngoprek WP-nya😀

    @wahyuPur : klo intranetnya ga punya subdomain, berarti mainin Alias di apache. ntar bagian

    $curSite = $_SERVER[’SERVER_NAME’];

    diubah biar “ngeparsing” alias-nya dari request_uri, bukan server_name.

    agak ribet emang.. blom pernah nyoba juga.. met mencoba🙂

  5. Pingback: Tricks on Hosting Multiple Wordpress Sites « Aisar - La Vida, La Lucha

  6. 5kr!bble says:

    wah top markotop sar… mantap..

    trik ini biasa dipake juga di website multiLang yg belum pake modul languages terpisah…

  7. Pingback: Cara Seru Install Banyak Wordpress di Satu Domain « Aisar - La Vida, La Lucha

  8. Bagus juga artikelnya. BElajar dimana nih🙂 keep work

  9. aisar says:

    ada artikel yang lebih baru, yang pasang blog wordpress di satu domain doang (tanpa subdomain).. selamat mencoba🙂

  10. dalem banget pembahasannya. bermanfaat

  11. komang jay says:

    Aku mau suruh kakak coba,he..Tips Posting dengan Mobile WordPress – Tips Trik Blog Optimization. Klik namaku (baliblogier.wordpress.com)

  12. hascarya says:

    Wuih ngeri bgt ni tips. Tp ak g yakin bs nyoba..Terus bwt yg ginian ya..

  13. dvd says:

    kalau pakai sharing web hosting macamana ?

  14. Himawans says:

    wah,,kren infonya,,,makasi,,,
    salam kenal

  15. berita21 says:

    Thanks infonya
    Sukses Selalu Dari Berita21.com = Media Online Indonesia

  16. Pingback: Trik Pasang Banyak Blog WordPress di Satu Server « Best WordPress Theme

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: