ทำ subdomain จาก id ของ สมาชิก
- Login to post comments
Wed, 2007-10-17 14:49
http://www.500806p.designparty.com/member/ ลองแบบนี้แล้วไม่ได้ครับ
ประมาณว่า มันไม่ชี้มาที่ host designpaty.com แต่ถ้าเป็น
http://www.designparty.com/member/500806p/ ได้
*ผมได้แนบไฟล์ index มาด้วยครับ
| Attachment | Size |
|---|---|
| index.rar | 384 bytes |

เอ่อร์ ... กระทู้นี้เป็นประโยคบอกเล่า หรือประโยคคำถามครับ ???
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
เซือในสิ่งที่เฮ็ด เฮ็ดในสิ่งที่เซือ...
คืออยากถามว่า แก้ไขยังไงคับ หรือมีวิธีอื่นไหม
เอาโค้ดไว้ในหน้า index ถูกรึป่าวคับ
หรือต้องไปตั่งค่าอะไรเพิ่มเติมรึป่าวครับ
อืมม ...
[1] เรียก http://www.designparty.com/member/500806p/ ได้ แต่
[2] เรียก http://www.500806p.designparty.com/member/ ไม่ได้
ในเบื้องต้น ผมเข้าใจว่าคุณ roodzip (ดู้ ... ชื่อของแต่ละท่านนี่ ไม่รู้ generate มาจากอะไร :-D แต่ละท่านก็จะมีความเท่ห์ของใครของมันกันไป) มีเว็บที่มี domain เป็น www.designparty.com อยู่ ทีนี้ การเรียกแบบ [1] ก็คงไม่แปลกอะไร เพราะ /member/500806p/ ก็เป็นการระบุ path ต่อเข้าไป และถ้า path เหล่านั้นมีอยู่จริง ก็ย่อมเรียกแบบ [1] ได้อยู่แล้ว
แต่การจะเรียกแบบ [2] นั้น เราจะต้องไปเพิ่ม sub-domain หรือ domain alias หรือ virtual host ก่อนถึงจะเรียกได้ ไม่ใช่ว่า พอเรามี www.designparty.com หรือ designparty.com แล้วอยู่ๆ เราจะเรียก www.500806p.designparty.com ได้เลย มันต้องบอกทั้ง name saver ให้รู้ว่า www.500806p.designparty.com นี่ให้ชี้ไปที่ server ไหน และใน server หรือ hosting ปลายทาง ก็อาจจะต้อง config ใน web server เพิ่ม alias หรือ virtual host ไว้ว่า ถ้าเรียกมาแบบนี้แล้วจะให้ไปเรียก document อยู่ที่ไหนมาแสดง เป็นต้น (ถ้าไม่ config บอกมันจะไปที่ default ของ server ปลายทาง)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
เซือในสิ่งที่เฮ็ด เฮ็ดในสิ่งที่เซือ...
อืมคับ
คือต้องทำ virtual host ใช่รึป่าวคับ
แล้วต้อง setup ยังไงคับ
เราทำได้เองเลยรึป่าว
หรือต้องแจ้งให้ผู้ดูแล server ของเรารึป่าวคับ
ใช่ครับ ในเบื้องต้น คงหนีไม่พ้นต้องทำ virtual host ส่วนต้องแจ้งผู้ดูแล server มั้ยนั้น ถ้าคุณ รูดซิบ :-D (ชอบจิงๆ ชื่อนี้) ไม่มีสิทธิ (permission) ในการเซตด้วยตัวเอง ก็คงต้องแจ้ง แต่อย่างไรก็ตาม ถ้าทำใน hosting ที่ไปเช่าเค้านี่ เรื่องการทำ sub-domain ของแต่ละสมาชิกนี่ นับว่ายากมาก ถึงขั้นทำไม่ได้เลย ด้วยข้อจำกัดหลายๆอย่าง แต่ถ้าเราเช่าแบบ dedicate มาหรือ เป็น server ของเราเอง ก็สามารถทำได้ไม่ยากนัก
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
เซือในสิ่งที่เฮ็ด เฮ็ดในสิ่งที่เซือ...
อ้อ นอกจากทำ virtual host แล้ว ในส่วนของ domain ก็ต้องเซต เพิ่ม cname record เผื่อไว้ด้วย เช่น เพิ่ม cname ให้
*.designparty.com ชี้มาที่ designparty.com
หรือ
*.designparty.com ชีมาที่ www.designparty.com
แล้วใน designparty.com ก็มาเพิ่ม virtual host เอา ซึ่งการเพิ่ม virtual host นั้นจะทำแบบอัติโนมัต หรือ แบบทำต่อครั้งด้วยมือนั้นก็สุดแล้วแต่ครับ แต่การทำแบบอัติโนมัต ก็ต้องมีวิธีการ และอาจจะต้องเขียนโปรแกรม มาคุมมันอีกหลายต่อเหมือนกัน เท่าที่รู้ตอนนี้ยังไม่มีให้เซตให้มันเพิ่มให้เอง
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
เซือในสิ่งที่เฮ็ด เฮ็ดในสิ่งที่เซือ...
อืม คับผม
ขอบคุณมากมายคับ คุณ roteee
ยินดีครับ คุณรูดซิบ :D
ผมเคยทำแบบ sub-domain สำหรับแต่ละสมาชิกเหมือนกันครั้งนึง สิ่งที่ยุ่งยากที่เจอมีอยู่ 2 จุดใหญ่ๆ ด้วยกันคือ
[1] การเพิ่ม virtual host แบบ realtime ประเด็นนี้ ต้องทำกับ server ของตัวเอง หรือ server ที่เราคุมได้ ถ้าทำกับ hosting ที่ไปเช่าเค้านี่ยากมาก เพราะถึงบางที่จะยอมให้เพิ่ม sub-domain ได้ แต่ก็ต้องทำผ่าน control panel เช่น Plesk ซึ่งเราจะคุมเรื่อง document root ไม่ได้ ทำให้ ผิดคอนเซ็ปของเรา ที่จะให้ muti sub-domain แล้วชี้มาที่ document root อันเดียวกัน แล้วค่อยเขียน app คุมอีกที
[2] การจัดการ session, cookie สำหรับ multiple sub domain ประเด็นนี้ โดย default แล้ว php จะไม่ได้มอง session และ cookie เป็น multiple sub-domain จะมองแยกๆ กันไป แต่ php ก็เปิดทางเลือกไว้ให้ทำได้ โดยการระบุ domain เข้าไปตอนเซต session หรือ cookie ได้ แต่ผมเลือกที่จะจัดการ session ด้วย DB เอง ก็สะดวกดีเหมือนกัน
Step ที่ผมทำสำหรับเรื่อง multi sub-domain สำหรับแต่ละสมาชิก
[1] หลังจากที่สมาชิกสมัครเรียบร้อยแล้ว ก็สร้างไฟล์ conf สำหรับเพิ่ม virtual host โดยเก็บไฟล์ conf เหล่านี้ไว้ใน dir ที่แน่นอนที่ใดที่หนึ่ง โปรเซสนี้ ทำในฐานนะ web user ทั่วๆไป
[2] เขียน script และตั้ง crontab ไว้ให้คอยเข้ามาอ่านที่ dir ในข้อ [1] ว่ามีไฟล์ conf อยู่หรือเปล่า ถ้ามีก็ย้ายมันไปไว้ที่ๆ เหมาะสม หรือย้ายไปไว้ที่ include path ของ web server ที่ web server จะเข้ามาอ่านไฟล์ conf จาก path นี้ (อันนี้ให้คนที่เขาเชี่ยวชาญการ config server จัดการให้จะดีกว่า หรือถ้าเราเชี่ยวเอง ก็สอยเองได้เลย) หลังจากนั้น ก็ restart web server แบบที่ restart เฉพาะ process ที่ไม่ได้ทำงานอยู่ เช่น apache2 ใช้คำสั่ง
# apache2ctl graceful
โดยถ้ามี http process ไหนรันอยู่มันก็จะไม่ไปยุ่ง ก็ให้รันต่อไปได้ คนที่กำลังเปิดเว็บอยู่ก็จะเปิดได้จนจบหน้า
การทำงานในข้อ [2] นี้ ต้องรันในฐานะของ super user หรือ root หรือ user ที่มีสิทธิ์รัน start/stop/restart apache เท่านั้น ประเด็นนี้แหล่ะครับ ถ้าเราไปเช่า hosting นี่จบเลย เขาไม่ยอมแน่นอน
อันนี้เป็นวิธีคร่าวๆ น้ะครับ ถ้าจะทำจริงๆ ก็ลองคิดเพิ่มเยอะๆ และระวังทั้งเรื่องของ security และเรื่องของ performance โดยรวมของ server ด้วย เพราะคงไม่ดีแน่ ถ้าเราจะ restart web server บ่อยๆ
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
เซือในสิ่งที่เฮ็ด เฮ็ดในสิ่งที่เซือ...
คุ้นๆ ว่าที่ ThaiSEOBoard.com มีวิธีง่ายกว่านี้ แต่ผมยังไม่เจอเคสที่ต้องอิมพลีเมนต์ เลยไม่ขอแนะนำ
รู้คร่าว ๆ ว่าต้องเป็นเรื่อง Wildgard DNS ครับ
เข้าไปค้นหา 'Wildgard DNS' ใน ThaiSEOBoard.com แล้วไม่เจอแฮ่ะ แต่จากคำแนะนำของคุณ amaudy ว่าเป็นเรื่องของ 'Wildgard DNS' ทำให้นึกขึ้นได้ว่า ในการทำอย่างนี้ เราอาจไม่ต้องไปสร้าง virtual host ทุกครั้งที่จะสร้าง sub-domain ให้สมาชิกใหม่ แต่ point *.sub-domain.com ไปที่ document root สักที่ แล้วเขียน script เพื่อจัดการตาม sub-domain ที่เรียกเข้ามาอีกที
อืมม ก็น่าจะง่ายดีน้ะครับ ไม่รู้ว่า 'Wildgard DNS' เขาทำกันยังงี้หรือเปล่า
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
เซือในสิ่งที่เฮ็ด เฮ็ดในสิ่งที่เซือ...
อันนี้ โจ้ (eThaiZone) เขียนไว้
http://www.thaiseoboard.com/index.php/topic,16485.0.html
http://www.thaiseoboard.com/index.php/topic,16531.0/wap2.html
http://www.thaiseoboard.com/index.php?topic=14253.0;wap2
แต่ผมชอบแบบของคุณโรตีนะครับ
เอ่อร์ ... อ่านบทความของคุณโจ้ ที่คุณ amaudy แนะนำมา ผมว่าวิธีของผมมันยากไปเปล่าว่ะ ห่ะห่ะ ดูเขาทำกันง่ายดีจัง ห้า ห้า ห้า
(งี้แหล่ะ ชอบทำไรง่ายๆ ให้เป็นเรื่องยาก อิอิ)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
เซือในสิ่งที่เฮ็ด เฮ็ดในสิ่งที่เซือ...
สรุป สามารถทำ multi sub-domain ได้ง่ายๆ จาก Wildgard DNS และ Wildgard Alias ไว้เช่น
ในส่วนของ DNS ให้ใส่ A record ไว้ประมาณว่า
*.example.com ให้ชี้ไปที่ your.ip.address
แล้วใน Web Server ก็ไปใส่ Wildgard Alias รอไว้ เช่น
ServerName example.com
ServerAlias www.example.com
ServerAlias *.example.com
DocumentRoot /var/www/example/httpdocs
แล้วพอเรียก
http://www.example.com หรือ http://xxx.example.com ก็จะวิ่งมาที่ Document Root อันเดียวกัน แล้วก็เขียน app เพื่อจับเอา sub-domain มา map กับ member data ต่อไป
แต่ก่อนผมไม่แน่ใจว่าทำ ServerAlias *.example.com ได้หรือเปล่า (ด้วยความอ่อนกับเรื่อง web server configuration) เลยไปใช้วิธีพิศดาร ยุ่งยาก (ปล่อยไก่อยู่ตั้งนาน) แต่เปลี่ยนมาใช้แบบ Wildgard DNS นี้แล้ว ง่ายขึ้นเยอะ :)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
เซือในสิ่งที่เฮ็ด เฮ็ดในสิ่งที่เซือ...