ปกติทำเหมือนจี้ป่าวหว่า
จี้เขียนสคริปท์ให้มันสร้างฐานข้อมูลขึ้นมา เยอะๆ
<?php
$max_dbs = 256;
$base_db_name = 'wpmu_db';
$db_name = 'wpmu';
$db_user = 'root';
$db_password = '';
$db_host = 'localhost';
$table_prefix = 'wp_';
//-Configuration-end------------------------------------------------------
$dbh = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_password);
// Create databases
for($i=0; $i<$max_dbs; $i++) {
$dbh->query('CREATE DATABASE IF NOT EXISTS '.$base_db_name.$i);
}
?>
ไม่แน่ใจว่าใช่ได้กับทุกโฮสป่าว แต่จริงๆ ไป copy มาจากเว็บไหนสักที่นี่แหละ เอามาแก้่นิดหน่อย
แล้วก็
ใช้สคริปท์ข้างล่าง เจน คำสั่ง เอาไว้ใช้ใน db_setting
<?php
$shot = 's';
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbcount = '256';
$dbname = 'wpmu_db';
for($i = 0;$i < $dbcount;$i++){
echo "add_db_server('$shot$i', 0, 'mysql', 1, 1, '$dbhost', '', '$dbname$i', '$dbuser', '$dbpass');\n";
}
?>
ส่วนอันนี้โค้ด db_setting
http://g-ji.com/wp-content/uploads/2010/03/db-settings.php_.txt
ตรงจุดที่ให้ใส่ก็บอกไว้นะ เอาโค้ดที่เจนจากสคริปท์ (อันที่ 2) มันจะออกมาแบบเนี่ย ▼ ตามจำนวนฐานข้อมูลที่ใส่ไป
add_db_server('s0', 0, 'mysql', 1, 1, 'localhost', '', 'wpmu_db0', 'root', '');
เสร็จแล้วเลื่อนลงไปอีกหน่อย ตรง add_global_server ไม่ต้องไปยุ่งอะไร ลงไปอีก
$dbsnum=256; // << จำนวนฐานข้อมูลที่สร้างไว้
$blogs_per_db=4; // << จำนวนบล็อกต่อฐานข้อมูลนั้นๆ จากสคริปท์ตั้งไว้ 4 บล็อกต่อฐานข้อมูล
for($db_id=1; $db_id<=$dbsnum; $db_id++){
$dataset = 's' . $db_id;
$max = $db_id * $blogs_per_db + 1; // include
$min = $max - $blogs_per_db + 1; // include
for($blog_id=$min; $blog_id<=$max; $blog_id++){
add_blog_tables($dataset, $blog_id);
}
บล็อกที่ 2 เป็นต้นไป มันจะสร้างลงฐานข้อมูล ตามที่เซ็ทไว้ (จากสคริปท์ ฐานละ 4 บล็อก) ไล่ไปเรื่อยๆ

จนครบ 256 ฐาน (ตามโค้ดตัวอย่าง)
จากโค้ดตัวอย่างนี่ สร้างได้ 1024 บล็อก
ทดสอบใน local host อย่างเดียว ใช้ได้ไม่มีบั๊ก
เอามาแปะ หาคนเทสในโฮสจริง ! ถ้ามันเวิร์ค หรือ ใช้ได้ เดี๋ยวหาคนช่วยพัฒนาต่อ ให้มันดูดีหน่อย มีหน้า install อินเตอร์เฟส สวยๆ ใช้ง่ายๆ แค่กรอกข้อมูล กด ok รอสคริปท์ทำงาน แล้วก็ ตู้มมม ออกมาเป็น โกโก้ครันช์
แก้ไข
ไฟล์ไม่ครบ
http://g-ji.com/wp-content/uploads/2010/03/share-db.zip

หลักจากติดตั้ง wpmu เสร็จแล้่ว ย้ายไฟล์ ตามนี้
db.php >> wp-content
create_multidb.php >> root
create_multidb_config.php >> root
db-settings.php >> root
แก้ไข wp-config.php
เพิ่ม
define('WPMU', true);
require('db-settings.php');
ไว้บนสุด (ใน <?php)
***
แก้ไขไฟล์เพิ่มนิดหน่อย
โค้ดตัวอย่างที่ให้โหลดแบบ zip เซ็ทค่าไว้หมดแล้ว สร้างฐานข้อมูลเพิ่ม ก็พอ
ลองใช้ในเครื่องตัวเองดูก่อนแล้วค่อยไปลองบนโฮสจริง

-----------------------------------------------------------------------------
สมมุติผมตั้ง Database
db_name:pora_wpmu1
db_user:pora_wpmu1
password:259756
------------------------------------------------
create_multidb.php
อันเดิม
<?php
$max_dbs = 256;
$base_db_name = '
wpmu_db';
$db_name = '
wpmu';
$db_user = '
root';
$db_password =
'';
$db_host = '
localhost';
$table_prefix = 'wp_';
//-Configuration-end------------------------------------------------------
$dbh = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_password);
// Create databases
for($i=1; $i<$max_dbs; $i++) {
$dbh->query('CREATE DATABASE IF NOT EXISTS '.$base_db_name.$i);
}
?>
-----------------------------------------
ของผม
<?php
$max_dbs = 256;
$base_db_name = '
pora_wpmu1';
$db_name = '
pora_wpmu1';
$db_user = '
pora_wpmu1';
$db_password = '
259756';
$db_host = '
localhost';
$table_prefix = 'wp_';
//-Configuration-end------------------------------------------------------
$dbh = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_password);
// Create databases
for($i=1; $i<$max_dbs; $i++) {
$dbh->query('CREATE DATABASE IF NOT EXISTS '.$base_db_name.$i);
}
?>
-----------------------------------------
create_multidb_config.php
อันเดิม
<?php
$shot = 's';
$dbhost = '
localhost';
$dbuser = '
root';
$dbpass =
'';$dbcount = '
256';
$dbname = '
wpmu_db';
for($i = 0;$i < $dbcount;$i++){
echo "add_db_server('".$shot.($i+1)."', 0, 'mysql', 1, 1, '$dbhost', '', '$dbname$i', '$dbuser', '$dbpass');\n";
}
?>
----------------------------------------------------
ของผม
<?php
$shot = 's';
$dbhost = '
localhost';
$dbuser = '
pora_wpmu1';
$dbpass = '
259756';
$dbcount = '
256';
$dbname = '
pora_wpmu1';
for($i = 0;$i < $dbcount;$i++){
echo "add_db_server('".$shot.($i+1)."', 0, 'mysql', 1, 1, '$dbhost', '', '$dbname$i', '$dbuser', '$dbpass');\n";
}
?>
---------------------------------------
db-settings.php
$server = compact('ds', 'part', 'dc', 'read', 'write',
'host', 'lhost', 'name', 'user', 'password');
และผมต้องเปลี่ยนที่บรรทัดที่ 110
// add databases
add_db_server('global', 0, 'mysql', 1, 1, 'localhost',
'', 'pora_wpmu1', 'pora_wpmu1', '259756');
add_db_server('s1', 0, 'mysql', 1, 1, 'localhost',
'', 'pora_wpmu1_db0', 'pora_wpmu1', '259756');
มันมีอยู่ช่องหนึ่งคือ 'host' ผมต้องใส่ไรครับ
---------------------------------------------------------------
ผมทำแบบนี้ถูกไหมครับ
ขอบคุณครับ