เรื่อง Multiple Site
September 27, 2007
จากที่ผู้ถามใน Codenone เรื่องการทำ multiple site
แต่ผมยังไม่เข้าใจถ่องแท้เท่าไร แต่ทว่าผมข้อตั้งคำถามใหม่ดีกว่านะครับ
ถ้าผมต้องการทำ multi site โดยที่มี source ที่เดียว แต่มี database หลายๆก้อน เก็บตามแต่ละ site (ประมาณว่ามี drupal หลายๆ อันแต่มี folder drupal ใน www อันเดียวน่ะครับ) ถ้าเปรียบเทียบก้อคือ
1องค์กร มีหลายแผนก และให้แต่ละแผนกคือแต่บะ site ขององค์กร โดยที่แต่ละแผนกก้อจะเก็บข้อมูลของแผนกๆตนเอาไว้ทั้งพนักงานก็จะเข้าได้เพียงแผนกของตนเท่านั้น อะไรประมาณนี้น่ะครับ
ต้องใช้วิธีไหนอย่างไรหรือครับ
ปล. ขออภัยหากถามแล้วไม่ชัดเจน ครับ

ชี้ DocumentRoot
สร้างไดเรกทอรี่ตามชื่อโฮสใน
sites/เช่นsites/www.abc.comsites/www.def.comsites/www.ghi.comสร้างฐานข้อมูลสำหรับแต่ละเว็บรอไว้
ติดตั้งตามปกติโดยเข้าไปยังชื่อโฮส
http://www.abc.com/install.phphttp://www.def.com/install.phphttp://www.ghi.com/install.phpตอนตอบก็บอกชื่อฐานข้อมูลให้ตรงกับที่สร้างไว้
ชี้ DocumentRoot
ชี้ DocumentRoot ไปที่เดียวกัน
หมายถึงถ้าเป็น appserv ซึ่งลงไว้ที่ C:\AppServ\www ก็แปลว่าต้องลง drupal ไว้ที่ www เลยใช่ไหมครับ
ซึ่งแต่ละ sites ก็จะมีโฟลเดอร์บางอย่างเป็นของตนเอง
การชี้มีห
การชี้มีหลายวิธี อาจจะใช้
Aliasหรือจะตั้งDocumentRootก็ได้ ในกรณีนี้เป็น Alias จะเหมาะกว่า ส่วนเรื่องไดเรกทอรี่ ที่มักจะแยกกันก็มีแค่ files กับไฟล์ .htaccess เท่านั้น นอกนั้นอยู่รวมกันได้ อะไรที่แยกกันก็จะอยู่ในsitesยังอยูที่
ยังอยูที่เดิมเลยนะครับผม เหอะๆ
ความสงสัยก้อคือ ชื่อโฮสนี่ครับ ...
ถ้าของผมเป็น www.drupal.in.th
แต่ผมต้องการสร้างใหม่โดยอยุ่ภายใต้ drupal.in.th เป็นแบบนี้ใช่มั้ยครับ
sites/www.drupal.in.th/drupalforkid
sites/www.drupal.in.th/drupalforteen
sites/www.drupal.in.th/drupalforadult
หรือต้องเป็น
site/drupalforkid.drupal.in.th
site/drupalforteen.drupal.in.th
site/drupalforadult.drupal.in.th
ขอบคุณมากครับ
sites/www.drupal.in.th.drupal
sites/www.drupal.in.th.drupalforkid
sites/www.drupal.in.th.drupalforteen
sites/www.drupal.in.th.drupalforadult
ขอบคุณมาก
ขอบคุณมากครับ เดี๋ยวไปลองทำดู ติดขัดประการใด
ขอรบกวนใหม่นะครับ ^^
ลืมบอกไปว
ลืมบอกไปว่าผม พัฒนาบน localhost อ่ะครับ
แรกเลย
ใน site/ จะมี all กับ default ใช่มั้ยครับ
คราวนี้ผมต้องการสร้าง site ใหม่ผมก้อสร้าง folder เลย
site1
site2
site3
โดยแต่ละ site ผมก้อ copy setting.php
และ แก้ไข
$db_url = 'mysql://userName:password@localhost/databaseName'; (ไม่แน่ใจว่าถูก syntax หรือเปล่า)
$base_url = 'http://localhost/dupal5.1/site1';
และผมก้อสร้าง DB มารองรับแต่ละ site
พอไป http://localhost/site1/install.php
มันบอกว่า
Not Found
The requested URL /site1/install.php was not found on this server.
เกิดความผิดพลาดประการใดครับ
แบบนี้เริ
แบบนี้เริ่มยุ่งยาก โดยเฉพาะอย่างยิ่งบนวินโดส์ ผมไม่แน่ใจกับการใช้ localhost เท่าไหร่ แต่น่าจะใช้ได้
สร้างรอไว้
sites/localhost.site1/sites/localhost.site2/sites/localhost.site3/จัดการที่ httpd อาจจะใช้
AliasAlias /site1 /var/www/drupal-5.2Alias /site2 /var/www/drupal-5.2Alias /site3 /var/www/drupal-5.2วิธีนี้จะใช้ clean url ไม่ได้ ถ้าอยากจะใช้ต้องเปิด rewrite เองแยกแต่ละเว็บ เพราะ .htaccess ใช้ร่วมกันอยู่ หรือไม่ก็ใช้ symlink ให้หมด ยกเว้น
filesกับ.htaccessถ้าผมใช้
ถ้าผมใช้ wamp แล้วเลือกที่ Alias directories > add an alias
ใช่ไหมครับ หรือไปที่ไหนแล้ว add อย่างไรเหรอครับ ...
น่าจะใช่
น่าจะใช่ แหม ตอบลำบากจัง ผมไม่เคยลองซะด้วย
ถ้าผมลง
ป.ล. คือพอเป็น windows แล้วชักปวดหัวนะครับ T^T ยุ่งจังเลย ฮาๆ
หรือลง linux สักตัวไปเลย ฮาๆ แต่ สำคัญว่าไม่เคยลองใช้อีกนะสิครับ T^T
บนวินโดส์
บนวินโดส์ไม่มี symlink ถ้าอยากใช้แบบโค้ดเดียวใช้วิธีเขียน rewrite ใน Location ซึ่งก็ได้ผลไม่ต่างกัน
จริงๆ แล้วลงแบบปกติไม่ต้องใช้ multisite ก็ไม่ได้เป็นอะไรมาก แค่ตอนอัพเกรดต้องทำหลายรอบนิดนึง เท่านั้นจริงๆ
อย่างนั้น
โค้ดแยก
โค้ดแยก แต่ใช้ db ร่วมกัน
แล้วใช้
แล้วใช้ prefix แยกกันหรือ ร่วมกันไปเลยครับ โดยไม่ต้องใช้ prefix ครับ
บางตารางร
บางตารางร่วมกัน บางตารางแยก
- -a ลงๆ
- -a ลงๆ ไปแล้วมันไปแยกเองหรือป่าวครับ หรือว่าต้องใช้กำลังภายในกันอีก
สงสัยต้องไล่เอาตามนี้เลยสินะครับ Multi-Site, Single Codebase, Shared Database, Shared Sign-on 5.x
เหอะๆ มัน.....
แก้ใน settings.php
แก้ใน settings.php ครับ
ขอบคุณครั
ขอบคุณครับ..
เป็นที่น่าอายยิ่งนัก.. คือตั้งแต่มันลงให้เองแบบง่ายๆ ก็ไม่เคยสนใจเปิด settings.php อีกเลยครับ ก่อนหน้านี้ตอน 4.7 ตอนนั้นก็หัดลง ก้ไม่เคยสนใจอ่าน ฮาๆ
ปัญหาต่อม
ปัญหาต่อมาครับ
ข้อ 1. ต้อง แชร์อันไหนบ้าง
แค่นี้ใช่ไหมครับ?? แล้วถ้าในอนาคตผมลง module อะไรที่เกี่ยวกับ Profile เพิ่มจะเป็นอะไรไหมครับ
ข้อ 2. ถ้าผมสร้างไซต์แรกไปแล้ว จะทำสองเพิ่ม นอกจากแก้ settings.php ทั้งของทั้ง 2 ไซต์แล้ว ผมมานั้งแก้ prefix เอาใน PhpMyAdmin เอาได้ใช่ไหมครับ
ป.ล. ไม่เติมคำว่า ข้อ แล้ว markdown แปลงเป็น order ให้ T^T แต่เป็น 1. กับ 1.
แค่นี้ก็น
เวลาอยู่ใน list แล้วอยากจะใส่โด้ดจะต้อง indent เข้าไปอีก 4 ตัวครับ หลังจากจบโค้ดก็กลับมาใช้ indent 4 แล้วจะอยู่กับ list เดิม หรือจะมาเป็นข้อถัดไปเลยก็ได้ ลองเล่นๆ
ต้องแชร์อันไหนบ้าง
แค่นี้ใช่ไหมครับ
ถ้าผมสร้างไซต์แรกไปแล้ว
อยากได้แบบเป็นบทความหรือรวบรว
อยากได้แบบเป็นบทความหรือรวบรวมไว้เป็นกรณีเรยไ้ด้ไหมครับ เเบบเป็นขั้นตอนเลยครับ มือใหม่ทำไม่ถูกครับ รบกวนด้วยครับ อยากทำเหมืิอนกัน