Aisar - La Vida, La Lucha

dedikasi dari Aisar Labibi Romas

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!

December 21, 2007 - Posted by aisar | Oprekanku, Tekno Informasi | | 13 Comments

13 Comments »

  1. wah… berguna
    mw nyobain, ah

    Comment by restya | December 22, 2007

  2. ini baru opreker :D

    Comment by reditya | December 25, 2007

  3. bisa nggak ya diterapin di intranet? trims

    Comment by wahyuPur | January 7, 2008

  4. @restya : harus bisa.. :p

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

    @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 :)

    Comment by aisar | January 15, 2008

  5. [...] Tricks on Hosting Multiple WordPress Sites (versi indonesia ada di sini) [...]

    Pingback by Tricks on Hosting Multiple Wordpress Sites « Aisar - La Vida, La Lucha | January 20, 2008

  6. wah top markotop sar… mantap..

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

    Comment by 5kr!bble | January 20, 2008

  7. [...] Seru Install Banyak WordPress di Satu Domain Kalau di artikel sebelumnya kita bisa memiliki banyak blog WordPress dengan subdomain yang berbeda, sekarang akan dijelaskan [...]

    Pingback by Cara Seru Install Banyak Wordpress di Satu Domain « Aisar - La Vida, La Lucha | February 17, 2008

  8. Bagus juga artikelnya. BElajar dimana nih :) keep work

    Comment by kerja mandiri | February 21, 2008

  9. wah…boleh nich coba..

    Comment by ncomputing - penganti pc | March 5, 2008

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

    Comment by aisar | March 6, 2008

  11. dalem banget pembahasannya. bermanfaat

    Comment by kerja mandiri | March 15, 2008

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

    Comment by komang jay | June 14, 2008

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

    Comment by hascarya | July 30, 2008

Leave a comment