ใครลง WPMU แล้ว tables เยอะจัด ลองทำ Multiple databases ดูซิ

เริ่มโดย untilate, 27 ธันวาคม 2009, 20:40:37

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

untilate

นั้นแหละครับ

แบบที่คุน g ทำเลย


ขอบคุณมากๆ ครับ

auzaa


<?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);
}

?>


สมมุติว่าของผมเป็นอย่างนี้
database_name = thaiseo_abc
database_user = thaiseo_abc
password = 123456

ผมต้องเปลี่ยนเป็นอย่างนี้หรือปล่าว

<?php
$max_dbs 
256;
$base_db_name 'thaiseo_abc';

$db_name     'thaiseo';
$db_user     'thaiseo_abc';
$db_password '123456';
$db_host     'localhost';

$table_prefix  'thaiseo_';
//-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);
}

?>





[direct=http://www.promoteban.com]เวปขายบ้าน[/direct]..[direct=http://www.http://www.samsunggalaxyclub.com]Samsung Galaxy Club[/direct]

kkusd

ขุดมาถามหน่อยครับ

ใครพอจะแปลไทยให้ได้บ้างครับ อ่านแล้วยังงง

database ที่สร้างต้องรันที่ไฟล์ db.php เหรอครับ ???

จะได้เป็นไฟล์ออกมาใช่รึเปล่าครับ

เด็กฝึกงาน

รอสักพัก อีกไม่นานเวอร์ชั่น 3 ก็ออกแล้วครับ
คราวนี้ จะเป็น WordPress ที่รวมร่างกับ WPMU เรียบร้อยแล้ว

ใครอยากลองทดสอบ ก็โหลดตัว Beta มาเล่นก่อนได้
http://wordpress.org/wordpress-3.0-beta1.zip

artitpoo

อ้างถึงจาก: g-ji ใน 21 มีนาคม 2010, 12:35:12
ปกติทำเหมือนจี้ป่าวหว่า

จี้เขียนสคริปท์ให้มันสร้างฐานข้อมูลขึ้นมา เยอะๆ


<?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 บล็อก) ไล่ไปเรื่อยๆ  :P จนครบ 256 ฐาน (ตามโค้ดตัวอย่าง)

จากโค้ดตัวอย่างนี่ สร้างได้ 1024 บล็อก  :o

ทดสอบใน local host อย่างเดียว ใช้ได้ไม่มีบั๊ก  :-[

เอามาแปะ หาคนเทสในโฮสจริง ! ถ้ามันเวิร์ค หรือ ใช้ได้ เดี๋ยวหาคนช่วยพัฒนาต่อ ให้มันดูดีหน่อย มีหน้า install อินเตอร์เฟส สวยๆ ใช้ง่ายๆ แค่กรอกข้อมูล กด ok รอสคริปท์ทำงาน แล้วก็ ตู้มมม ออกมาเป็น โกโก้ครันช์

แก้ไข

ไฟล์ไม่ครบ

http://g-ji.com/wp-content/uploads/2010/03/share-db.zip

:P
หลักจากติดตั้ง 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 เซ็ทค่าไว้หมดแล้ว สร้างฐานข้อมูลเพิ่ม ก็พอ

ลองใช้ในเครื่องตัวเองดูก่อนแล้วค่อยไปลองบนโฮสจริง  :wanwan009:
-----------------------------------------------------------------------------
สมมุติผมตั้ง 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' ผมต้องใส่ไรครับ
---------------------------------------------------------------
ผมทำแบบนี้ถูกไหมครับ   
ขอบคุณครับ
ARO : พยายามเพื่อวันข้างหน้า
[direct=http://www.taradelectric.com/]โฆษณาฟรี ลงประกาศฟรี[/direct]
โฆษณาฟรี ลงประกาศฟรี ตลาดซื้อ-ขายสินค้าออนไลน์แห่งใหม่ : TaradElectric.com
[direct=http://www.tarad2easy.com/]ลงประกาศโฆษณาสินค้าฟรี:Tarad2Easy.com[/direct]
สนใจแลกลิ้ง PM ส่ง banner 88x31 และ url มา : Tarad2Easy.com

frang


~อุอุ~

มาดันครับ ใช้ได้กับ wpmu version ล่าสุดไหมครับ

redblood

ใช้ directadmin มันสร้าง database ไม่ได้อ่ะครับ
API ใช้ยังไงเหรอครับ



untilate

อ้างถึงจาก: redblood ใน 16 พฤษภาคม 2010, 21:38:39
ใช้ directadmin มันสร้าง database ไม่ได้อ่ะครับ
API ใช้ยังไงเหรอครับ

แล้ว script นี้เอาไปใส่ตรงไหนอ่ะครับ แบบว่าลองแล้วไม่ได้อ่ะ มือใหม่อ่ะครับ
$ch =curl_init('http://thaibaccaratclub.com:2222/CMD_DB');
curl_setopt($ch, CURLOPT_USERPWD, '++');
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER  ,1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, "domain=thaibaccaratclub.com&action=create&name=test&user=test&passwd=123456&passwd2=123456");
$res = curl_exec ($ch);
print_r($res);


อะไรเนี่ย  curl_setopt($ch, CURLOPT_USERPWD, '++'); ระวังนะ

คนเดินทางไกล

ปล่อยให้อยากแล้วก็จากไป อย่างเงียบ ๆ  :(