ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingระบบหลายโดเมน หลายฐานข้อมูล แต่ใช้ php จากที่เดียว
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ระบบหลายโดเมน หลายฐานข้อมูล แต่ใช้ php จากที่เดียว  (อ่าน 2076 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
powerpc
Verified Seller
สมุนแก๊งเสียว
*

พลังน้ำใจ: 538
ออฟไลน์ ออฟไลน์

กระทู้: 821



ดูรายละเอียด
« เมื่อ: 16 มิถุนายน 2012, 15:37:34 »

อยากได้ระบบแบบนี้ คือ หลายโดเมน (หรือซับโดมน ซับไดเร็กทอรี่) หลายฐานข้อมูล แต่มีการใช้ file php ที่เดียว (ใน server เดียวกัน) เวลาเข้าแต่ละเว็บ ก็จะเป็น URL ของใครของมัน โดยไปเรียกใช้ไฟล์ php จากที่เดียว แต่ออกมาเป็นคนละเว็บ

คิดได้ตอนนี้ คือ ใช้ .htacces ในแต่ละเว็บ เป็นตัวจัดการ แต่จะเขียนยังงัยยังไม่ออก ช่วยทีครับ ^^!

บันทึกการเข้า

AbuseMan
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 104
ออฟไลน์ ออฟไลน์

กระทู้: 1,103



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 16 มิถุนายน 2012, 15:43:05 »

CI, Yii พวกนี้ทำได้นี่ครับ
บันทึกการเข้า

ฟังเพลงออนไลน์ : เว็บเพลงออนไลน์ที่คุณขอฟังเพลงได้ด้วยตัวคุณเอง
ห้องแชท : บริการฟรีห้องแชทสำหรับติดเว็บ
เพลงใหม่ : เพลงใหม่ เพลงฮิต
บ้านคุ้มค่า : ลงประกาศขายบ้าน ที่ดิน พร้อมอัพเดทโครงการบ้านและคอนโดใหม่ที่น่าสนใจ
solutioncom
Verified Seller
สมุนแก๊งเสียว
*

พลังน้ำใจ: 35
ออฟไลน์ ออฟไลน์

กระทู้: 543



ดูรายละเอียด
« ตอบ #2 เมื่อ: 16 มิถุนายน 2012, 15:50:57 »

Joomla ยังได้เลยครับ แต่เราต้องปรับโค้ดบางส่วนให้เป็นมัลติ ผมเรียกระบบนี้ว่า saas
บันทึกการเข้า
powerpc
Verified Seller
สมุนแก๊งเสียว
*

พลังน้ำใจ: 538
ออฟไลน์ ออฟไลน์

กระทู้: 821



ดูรายละเอียด
« ตอบ #3 เมื่อ: 16 มิถุนายน 2012, 15:54:10 »

ระบบใช้ php ล้วน ๆ เลยครับ ไม่ใช้ framework อื่น ก็เลยต้องเขียนเองหมด
บันทึกการเข้า

powerpc
Verified Seller
สมุนแก๊งเสียว
*

พลังน้ำใจ: 538
ออฟไลน์ ออฟไลน์

กระทู้: 821



ดูรายละเอียด
« ตอบ #4 เมื่อ: 16 มิถุนายน 2012, 16:24:02 »

คือคิดว่าจะใช้ htaccess รับ url มาแล้ว ส่งต่อ เหมือนทำ mod_rewrite แต่หลังจากนั้น ตัว php จะแยกอีกทีว่าจะไปดึงข้อมูลจาก db ไหนไปแสดง โดยอ้างจาก referer ของแต่ละเว็บ
บันทึกการเข้า

mixture
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 73
ออฟไลน์ ออฟไลน์

กระทู้: 1,844



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 16 มิถุนายน 2012, 16:26:40 »

ดึง url มาก่อน แล้วตัดเอาเหลือแต่ subdomain หลังจากนั้นก็เขียน function เช็คเอา

switch ($subdomain) {
    case 'art2':
        $db = 'db2'
        break;
    case 'www':
        $db = 'db1'
        break;
    default:
        $db = 'db1'
}

เอาตัวแปรไปแทนที่ตอน connect db ต้องเขียนดักก่อนมีการ connect db ในโค๊ด
บันทึกการเข้า

mixture
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 73
ออฟไลน์ ออฟไลน์

กระทู้: 1,844



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 16 มิถุนายน 2012, 16:38:33 »

อันบนไม่ได้ใช้ htaccess นะครับ แค่ดึง sub มาแยก db แยก template ถ้าเข้าใจผิดก็ขออภัยด้วยครับ  Tongue
บันทึกการเข้า

solutioncom
Verified Seller
สมุนแก๊งเสียว
*

พลังน้ำใจ: 35
ออฟไลน์ ออฟไลน์

กระทู้: 543



ดูรายละเอียด
« ตอบ #7 เมื่อ: 17 มิถุนายน 2012, 04:32:33 »

php หน้าแรก ทำการเอา subdomain ไปเช็คใน db หลักที่เก็บค่า config connent db ต่างๆของ domain นั้นๆ
เมื่อได้ค่าต่างๆมาก็ทำการ connect db ใหม่เพื่อนำมาใช้งาน พวกฟลอเดอร์อัพโหลดต่างๆ ควรจะสร้างเป็นชื่อตาม domian เช่น images_tester หรือ file_tester
ส่วนพวก php ไฟล์ต่างๆ เราใช้ตัว config อยู่แล้ว แค่นี้ก็เป็น หลายโดเมน หลายดาตาเบส แต่ใช้ php ชุดเดียวกันครับ

บันทึกการเข้า
kobkung
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 103
ออฟไลน์ ออฟไลน์

กระทู้: 1,312



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 17 มิถุนายน 2012, 14:08:02 »

set wildcard ใน .htaccess แค่นั้นเอง
ถ้าจะแยกเบส ก็ใช้ $_SERVER พวกเนี้ย แยกเอาชื่อ sub ออกมา
ส่งค่าไป connect ตาม user แค่นั้นเอง
ลักษณะพวกทำ mlm หรือ forward web อะ

ถ้าทำทั้ง server ผมจะ connect base ด้วยระดับ root เพื่ออ่านค่า table mysql มาใช้ connect สำหรับแยกเว็บ
บันทึกการเข้า

เราเป็นบริษัท รับทำเว็บไซต์ แก้เว็บเดิม เขียน Php+Mysql+jQuery+css+bootstrap  งานตามสั่ง ประสบการณ์ จะ 19 ปี ละจ้า
Smilephp.com รับทำเว็บไซต์บริษัท e-commerce + ระบบชำระเงิน paypal,ธนาคาร  เว็บบริษัท เว็บขายของ ระบบจอง เช่า เขียน PHP ได้ทุกแนว  ช่วงนี้เน้นรับงาน ERP ระบบเอกสารบริษัท ,บัญชี ,  Barcode, Stock , Warehouse , Logistic ติดต่อ 086-364-5262

งดตอบคนทำเว็บนอกลู่นอกทาง ไม่ทำเว็บ WP ปั่นแชร์ เว็บประมูล สคริปปั่นใดๆ ไม่ทำเว็บบอลและพ
powerpc
Verified Seller
สมุนแก๊งเสียว
*

พลังน้ำใจ: 538
ออฟไลน์ ออฟไลน์

กระทู้: 821



ดูรายละเอียด
« ตอบ #9 เมื่อ: 18 มิถุนายน 2012, 11:51:55 »

ได้แล้วครับ ตอนนี้ใช้เป็น sub directory

ไฟล์ .htacess ในแต่ละ  sub directory

โค๊ด:
<IfModule mod_rewrite.c>
Options +FollowSymLinks

RewriteEngine On
#RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*) /mainfile/$1 [L]
RewriteRule . /mainfile/index.php

</IfModule>

แล้วใน config ก็ใช้ $_SERVER['QUERY_STRING'] แยกเอา sub มาเพื่อเรียก db แต่ละก้อน
บันทึกการเข้า

kobkung
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 103
ออฟไลน์ ออฟไลน์

กระทู้: 1,312



ดูรายละเอียด เว็บไซต์
« ตอบ #10 เมื่อ: 18 มิถุนายน 2012, 12:00:05 »

แยก htaccess ไว้ตาม sub คุณจะเหนื่อยเวลาแก้ไข ยกไว้ที่ root ไฟล์เดียวดีกว่าถ้าทำได้
บันทึกการเข้า

เราเป็นบริษัท รับทำเว็บไซต์ แก้เว็บเดิม เขียน Php+Mysql+jQuery+css+bootstrap  งานตามสั่ง ประสบการณ์ จะ 19 ปี ละจ้า
Smilephp.com รับทำเว็บไซต์บริษัท e-commerce + ระบบชำระเงิน paypal,ธนาคาร  เว็บบริษัท เว็บขายของ ระบบจอง เช่า เขียน PHP ได้ทุกแนว  ช่วงนี้เน้นรับงาน ERP ระบบเอกสารบริษัท ,บัญชี ,  Barcode, Stock , Warehouse , Logistic ติดต่อ 086-364-5262

งดตอบคนทำเว็บนอกลู่นอกทาง ไม่ทำเว็บ WP ปั่นแชร์ เว็บประมูล สคริปปั่นใดๆ ไม่ทำเว็บบอลและพ
xvlnw.com
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 493
ออฟไลน์ ออฟไลน์

กระทู้: 5,905



ดูรายละเอียด เว็บไซต์
« ตอบ #11 เมื่อ: 18 มิถุนายน 2012, 12:09:27 »

จากภาพผมแนะนำแบบนี้ครับ

1. ทำ Wildcard DNS
2. ไฟล์ index.php แพทหลัก ให้ดึงค่า URL มาเชคว่าเป็น Sub Domain หรือเป็น Homepage หลัก ถ้าเป็นซับจะทำอะไรต่อก็บรา ๆ ๆ

โค๊ดเชค Sub Domain
โค๊ด:
<?php

// SERVER_HOST
define(&#39;_HOST&#39;,$_SERVER["HTTP_HOST"]); // domain.com, not http://

// Sub Domain Value
$sub preg_replace("/(\.)?(".str_replace(&#39;http://www.&#39;,&#39;&#39;,_BASE).")$/",&#39;&#39;,_HOST);

?>


เอาไปใช้งาน
โค๊ด:
<?php

if($sub == "www"){
# ------------------------------------------ [url=http://www.domain.com]www.domain.com[/url] ------------------------------------------#
include "home.php"// Main Panel
}else if($sub == ""){
        
# ------------------------------------------ Redirect To [url=http://www.domain.com]www.domain.com[/url] ------------------------------------------#
header (&#39;HTTP/1.1 301 Moved Permanently&#39;);
        
header (&#39;Location: &#39; . _BASE); // URL Home Page (Main Panel)
}else{
   
// Sub Domain Processing Area
  /* --------------------------------------

  Statement

  ------------------------------------------- */
}
?>


บันทึกการเข้า

zidit
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 314
ออฟไลน์ ออฟไลน์

กระทู้: 7,543



ดูรายละเอียด
« ตอบ #12 เมื่อ: 18 มิถุนายน 2012, 13:58:20 »

wpmu + multidb มันก็ใช้หลักกการเดียวกับที่ท่าน powerpc จะทำเลยปะครับ
บันทึกการเข้า
war1ock
ก๊วนเสียว
*

พลังน้ำใจ: 4
ออฟไลน์ ออฟไลน์

กระทู้: 283



ดูรายละเอียด เว็บไซต์
« ตอบ #13 เมื่อ: 20 มิถุนายน 2012, 11:17:38 »

CI, Yii พวกนี้ทำได้นี่ครับ

ไม่ทราบว่าต้องทำยังไงเหรอครับ รบกวนอธิบายหรือ guide ให้หน่อยได้มั้ยครับพอดีเพิ่งหัดเขียนพวก Framework เลยไม่ค่อยเข้าใจเท่าไหร่
บันทึกการเข้า

zalapaonet
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 87
ออฟไลน์ ออฟไลน์

กระทู้: 1,229



ดูรายละเอียด เว็บไซต์
« ตอบ #14 เมื่อ: 20 มิถุนายน 2012, 11:25:44 »

จากภาพผมแนะนำแบบนี้ครับ

1. ทำ Wildcard DNS
2. ไฟล์ index.php แพทหลัก ให้ดึงค่า URL มาเชคว่าเป็น Sub Domain หรือเป็น Homepage หลัก ถ้าเป็นซับจะทำอะไรต่อก็บรา ๆ ๆ

โค๊ดเชค Sub Domain
โค๊ด:
<?php

// SERVER_HOST
define(&#39;_HOST&#39;,$_SERVER["HTTP_HOST"]); // domain.com, not http://

// Sub Domain Value
$sub preg_replace("/(\.)?(".str_replace(&#39;http://www.&#39;,&#39;&#39;,_BASE).")$/",&#39;&#39;,_HOST);

?>


เอาไปใช้งาน
โค๊ด:
<?php

if($sub == "www"){
# ------------------------------------------ [url=http://www.domain.com]www.domain.com[/url] ------------------------------------------#
include "home.php"// Main Panel
}else if($sub == ""){
        
# ------------------------------------------ Redirect To [url=http://www.domain.com]www.domain.com[/url] ------------------------------------------#
header (&#39;HTTP/1.1 301 Moved Permanently&#39;);
        
header (&#39;Location: &#39; . _BASE); // URL Home Page (Main Panel)
}else{
   
// Sub Domain Processing Area
  /* --------------------------------------

  Statement

  ------------------------------------------- */
}
?>




ถ้า hosting ให้จัดการ Wildcard DNS ได้ก้ใช้ตามนี้ครับ

ถ้าไม่ได้ก็คงต้องอาศัยการทำ symbolic link บน server ให้วิ่งไปใช้ ไฟล์เดียวกัน แล้วมาใช้ โค้ดเช็คโดเมนเนม ตามด้านบนนี้ครับ
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์