Multiblog atau disebut juga komunitas blog-blog gratis yang memiliki banyak domain alias
misalnya iferianto.multiply.com pada dasarnya dapat diwujudkan dengan menggunakan "emulasi virtual domain" atau domain boongan, hal ini untuk mempermudah jika pendafaran subdomain sangat dinamis, keuntungannya kita tidak usah mengkonfigurasikan ulang name server kita untuk subdomain baru. Mekanisme ini diwujudkan dengan membolehkan wildcard akses "*" pada server domain kita (misalnya menggunakan BIND). Jadi semua request subdomain tersebut diarahkan (pointing) ke domain utama, selanjutnya nameserver (misal BIND) akan melakukan forward langsung ke webserver (misalnya APACHE) kemudian dari webserver ini request subdomain akan ditranslasikan kembali misalnya menjadi URL asli (misalnya menggunakan URL rewriter atau mod rewrite ataupun menggunakan vhost), sebagai analogi misalkan request ke:
- http://iferianto.multiply.com sebenarnya adalah http://www.multiply.com/user/iferianto
- http://iferianto.blogdetik.com bisa jadi adalah http://www.blogdetik.com/blog/iferianto
Berikut adalah langkah teknis untuk mewujudkan sebuah multiblog wordpressmu & Linux:
1. Install Apache2, bind9, mysql, php5, php5-mysql, php5-gd,apache-mod-rewrite
2. Install wordpressmu
http://mu.wordpress.org/download/3. Konfigurasikan bind untuk menerima request semua subdomain (wilcard * DNS request)
pada CNAME ataupun A records
#FILE: /etc/bind/named.conf
* 14400 IN CNAME blogs.unsoed.ac.id
4. Konfigurasikan Apache untuk menerima semua request wildcard ke 1 domain utama (contoh, misalnya)
<virtualhost >
ServerAlias www.unsoed.ac.id
ServerAdmin iferianto@yahoo.com
DocumentRoot /var/www/blogs.unsoed.ac.id/public_html
ServerName blogs.unsoed.ac.id
User blogs
Group blogs
ServerAlias *.blogs.unsoed.ac.id
</virtualhost>
5. selanjutnya ada 2 cara yang dapat dipilih:
a.Misal menggunakan Vhost,
UseCanonicalName off
VirtualDocumentRoot /var/www/%-2.0.%-1/%-3
- buat symbolik link ke path asli, subdomain ke path asli
b.Misal menggunakan mod rewrite, Konfigurasikan .htacces atau httpd.conf untuk mod rewrite, forward ke URL asli
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Show Stats
# :: added this to show AWStats stats
RewriteCond %{REQUEST_URI} ^/(stats|failed_auth\.html)/?(.*)$ [NC]
RewriteRule ^.*$ - [L]
# Rewrite www.domain.com to domain.com
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^(.*)
http://%1/$1 [R,L]
# mod_dir fix.
# :: Added from other mod_rewrite.com recipe
RewriteCond %{HTTP_HOST} ^([^\.]+)\.blogs.unsoed.ac.id$ [NC]
RewriteCond %{DOCUMENT_ROOT}/subsites/%1%{REQUEST_URI}/ -d
RewriteRule !/$ %{REQUEST_URI}/ [R=301,L]
# If directory exists for subdomain, rewrite it.
# :: Added from other mod_rewrite.com recipe
RewriteCond %{HTTP_HOST} ^([^\.]+)\.blogs.unsoed.ac.id$ [NC]
RewriteCond %{DOCUMENT_ROOT}/subsites/%1/ -d
RewriteCond %1%{REQUEST_URI} !^([^\.]+)/\1(/.*)?$
RewriteRule ^(.*)$ /subsites/%1/$1 [QSA,L]
# /subsites/subdomain/ --> subdomain.yourdomain.org
# :: Added from other mod_rewrite.com recipe
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_URI} ^/([^/]+)(/.*)?$
RewriteCond %{DOCUMENT_ROOT}/subsites/%1/ -d
RewriteRule .*
http://%1.blogs.unsoed.ac.id%2 [R=301,L]
####################################
#
# Here below start the WPMU rules that work quite fine :)
#
####################################
#uploaded files
RewriteRule ^(.*)?/?files/(.*) wp-content/blogs.php?file=$2 [L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-.*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
Edit wp-settings.php untuk menerima request URI asli tambahkan di baris paling atas
$_SERVER['REQUEST_URI']=$_SERVER['HTTP_X_ORIGINAL_URL'];
6. Restart BIND dan APACHE
7. Test request DNS dengan nslookup, seharusnya apapun subdomainya mengarah ke domain utama.