เพื่อคนอยากทำเว็บ style php-fusion
1 database แต่ทำ php-fusion หลายเว็บ

1 database แต่ทำ php-fusion หลายเว็บ

เป็นคำถามที่เก็บมาจากกระดานข่าว โจทย์คือ ต้องการทำเว็บเอาไว้ 2 ที่เช่น abc.domain.com และ xyz.domain.com แต่ว่าข้อมูลทุกอย่างแยกกัน เว้นแต่ สมาชิกที่ join กัน คือสมัครที่นึง ก็เข้าใช้อีกที่นึงได้ด้วย php-fusion ทำง่ายนิดเดียวครับ

บทความนี้จะกล่าวถึงเว็บสองชุด ขอให้ตั้งสติอ่านให้ดีนะครับ อย่าหลุด เพราะว่าหลุดนิดนึงก็จะงงไปเลย

โดยขั้นตอนการทำอย่างที่ผมว่านั้น เค้าเรียกว่า multi site ครับ ซึ่งหลักการทั้งหมดมีดังนี้
1.ติดตั้ง php-fusion ที่ site 1 (site นี้ผมจะเอาไว้เป็น site หลัก)
2. ติดตั้ง php-fusion ที่ site 2 โดยต้องติดตั้ง ให้ prefix ต่างกัน ลงใน database เดียวกับข้อที่ 1 เท่านั้น จะทำให้เรามี php-fusion สองชุดแล้ว
3.แก้ไขไฟล์ includes/multisite_include.php ให้เป็นข้อมูลของ site 1 โดยเลือกแก้เอาเฉพาะที่ต้องการ

แค่นี้ครับกระบวนการทั้งหมด  งั้นมาเริ่มอธิบายโดยละเอียดครับ

1.ติดตั้ง php-fusion ที่ site 1 (site นี้ผมจะเอาไว้เป็น site หลัก)
สำหรับ site ตัวนี้ ผมจะถือว่าเป็นเว็บหลักนะครับ หรือส่วนหลัก ที่เราจะเอาข้อมูลเก็บเอาไว้ใช้กับ site อื่นๆ โดยขั้นตอนการติดตั้งตัวนี้ผมจะทำการติดตั้งแบบธรรมดาทั้งหมด 100 % คือหากจำได้ กระบวนการติดตั้งที่
Step 3: Database Settings
ส่วนนี้ผมตั้งค่า prefix ให้เป็น fusion_ เหมือนการติดตั้งตามปกติครับ

2.ติดตั้ง php-fusion ที่ site 2 โดยต้องติดตั้ง ให้ prefix ต่างกัน ลงใน database เดียวกับข้อที่ 1
สำหรับ site ตัวนึ้ คือเว็บลอง ที่เราอาจจะทำเนื้อหาแยกจากเว็บหลัก แต่เราต้องการให้ใช้ฐานข้อมูลสมาชิกร่วมกับเว็บหลักเท่านั้น การติดตั้ง site นี้ ในกระบวนการ
Step 3: Database Settings
ให้ตั้งค่า prefix เป็นอย่างอื่นที่ไม่ใช่ fusion_ เพราะว่าถ้าตั้งตรงกัน มันจะไปทับข้อมูลของเว็บหลักทั้งหมด อันนี้อันตรายมาก ข้อมูลเว็บหลักจะหายหมด เช่น ผมตั้งว่า fusion2_ ส่วนค่าอื่นๆนั้น ใช้เหมือนการติดตั้งข้อที่ 1 ทั้งหมด ห้ามเพี้ยนครับ เพราะว่าอย่างที่บอก เราจะใช้ database ตัวเดียวกันนั่นเอง

3.แก้ไขไฟล์ includes/multisite_include.php ให้เป็นข้อมูลของ site 1 โดยเลือกแก้เอาเฉพาะที่ต้องการ
ให้ แก้ที่ site อื่นๆที่ไม่ใช่ site 1 นะครับ คือแก้ที่site ลูกครับ ส่วนไฟล์ของ site หลักเราจะคงเดิมเอาไว้ 100% โดยแก้ที่ file  includes/multisite_include.php ที่เดียวเท่านั้น แก้ตามนี้ครับ
edit file multi site
บรรทัดที่ 61-63 คือการ comment ข้อเดิมออกนะครับ เผื่อว่าวันไหนอยากกับไปใช้แบบเดิม จะได้ แก้comment เท่านั้นเอง
ส่วนบรรทัดที่ 64-66 คือการ copy จาก 61-63 ออกมาแก้นะครับเช่น บรรทัดที่ 64 จะเห็นว่าของเดิมคือ
define("DB_USER_FIELDS", DB_PREFIX."user_fields");
ผมก็แก้ให้เป็น
define("DB_USER_FIELDS", "fusion_user_fields");

คือ แก้ให้เป็นข้อมูลของเว็บหลักครับ ยังจำได้หรือเปล่า ว่าขั้นตอนที่ 1 ผมติดตั้งเว็บหลักด้วย prefix fusion_ ดังนั้นผมก็เลยมาแก้ตรงนี้ให้เป็น fusion_ ด้วยครับ แล้วส่วนหลังนั้นคือชื่อ table เหมือนเดิมไม่ได้แก้อะไร
ส่วน ที่ทำทั้งสามอันเลย ก็เพราะว่าเป็นส่วนที่เกี่ยวข้อกับ user ทั้งหมดครับ ก็เลยแก้ทั้งสามอันเลย จริงๆแค่แก้ users อันเดียวก็ได้แล้วครับ

เมื่อเสร็จขั้นนี้ก็ upload ไฟล์ที่แก้นี้ไปทับของเดิมก็เสร็จแล้วครับ

ลอง login ดู แล้วจะพบว่าทั้งสองเว็บใช้ข้อมูล login อันเดียวกันเลยครับ นอกจากนี้ การสมัครสมาชิกจากที่หนึ่ง ก็จะเข้าใช้อีกที่หนึ่งได้ด้วยเหมือนกัน

#

นี่เป็นแค่ส่วนสมาชิก นอกจากนี้ ยังทำส่วนอื่นๆเช่น ข่าวสาร บทความ ก็ยังสามารถทำได้ทั้งหมดครับ

แต่ ข้อควรระวังก็คือ ส่วนที่ join กัน เช่นส่วนสมาชิก เมื่อมีการแก้ไขจากที่ใด อีกที่นึงก็จะมีผลด้วย เช่นว่า siteรอง มีการลบสมาชิกออก  site หลัก สมาชิกนั้นก็จะถูกลบไปด้วย เพราะว่าใช้ข้อมูลตัวเดียวกัน



หากมีข้อสงสัย หรือติดปัญหา สามารถพูดคุยเพื่อสอบถามได้ที่กระดานข่าวของเราครับ หรือฝากข้อความไว้ที่ข้างล่างก็ได้เช่นกัน
บทความนี้แสดงอยู่ในหมวด PHP-Fusion Core คลิกเพื่ออ่านบทความอื่นๆในหมวดเดียวกัน
- โพสโดย BWebMass เมื่อ May 12 2009 20:06:45· 3 คอมเมนท์ · 2123 ครั้ง · พิมพ์
เช่า host จดโดเมน
เช่า host จดโดเมน กับบริการที่ทำให้ด้วยใจ
บทความที่ใกล้เคียง - บทความที่ใกล้เคียง
ร่วมพูดคุย - ร่วมพูดคุย
#1 | โดย มาตรการ เมื่อ July 21 2009 19:38:02
โอ้ ยอดเลยครับ เทพมาก อิอิ เอาไปปรับแต่งเพิ่มเติม ขอบคุณนะครับ
#2 | addza เมื่อ August 13 2009 20:06:12
ถ้าใช้ Database ตัวเดียวกัน แต่ไม่ต้องการให้มีการเชื่อม กันสักอย่างต้องทำอย่างไรค่ะ
#3 | รบกวนหน่อยค่ะ เมื่อ September 16 2009 15:43:49
อยากใช้ดาต้าเบสเดียวกัน ใน 2 เว็บค่ะ เวลาตัดสต็อกเว็บใดเว็บนึง จะตัดทั้งสองเว็บเลยอ่ะค่ะ คือทำเว็บขายของออนไลน์นะค่ะ ทำไงค่ะ ช่วยที
แสดงความเห็น - แสดงความเห็น
ข้อความ:

รหัสยืนยัน:


กรอกรหัสยืนยัน:

คะแนน - คะแนน
สามารถให้คะแนนได้เฉพาะสมาชิกเท่านั้น.

โปรดเข้าสู่ระบบก่อนการให้คะแนน.

ยังไม่มีการให้คะแนน.
เมนู
กำลังออนไลน์
- บุคคลทั่วไปออนไลน์: 5

- สมาชิกออนไลน์: 0

- สมาชิกทั้งหมด: 3,088
- สมาชิกใหม่: blackanglekik
เข้าสู่ระบบ
User name

รหัสผ่าน



ไม่ได้เป็นสมาชิก?
คลิกที่นี่ เพื่อลงทะเบียน.

ลืมรหัสผ่าน?
ขอรหัสผ่านใหม่.
php-fusion version ล่าสุด
ฝากข้อความ
ชื่อ:

ข้อความ:

รหัสยืนยัน:


กรอกรหัสยืนยัน:



ข้อความเก่า