Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 107,219

HOME > บทความจากสมาชิก > PHP Create สร้าง Sub Domain แบบ Dynamic บน Direct Admin และ Cpanel





 
Clound SSD Virtual Server

PHP Create สร้าง Sub Domain แบบ Dynamic บน Direct Admin และ Cpanel

PHP Create สร้าง Sub Domain แบบ Dynamic บน Direct Admin และ Cpanel บทความเก่านำมาเล่าใหม่ พร้อมอธิบายการสร้าง Sub Domain บน PHP แบบ Step by Step โดยจะยกตัวอย่างการทำ Sub Domain บน Control Panel ของ Direct Admin และ Cpanel ส่วนหนึ่งก็เป็นเพราะยังมีสมาชิกถามอยู่เรื่อย ๆ และยังไม่เข้าใจกับ กระทู้ที่ได้ตอบไว้ก่อนหน้านี้

PHP Sub Domain

PHP Create Sub Domain


Go to : PHP สามารถเขียนคำสั่งให้สร้าง Create Dynamic SubDomain ด้วย PHP ได้รึป่าวครับ??

ก่อนอื่นจะอธิบายให้เข้าใจก่อนว่า PHP นั้นไม่สามารถที่จะสร้าง Sub Domain ได้ด้วยตัวของมันเอง แต่เราจะต้องอาศัยความสามารถของระบบ Control Panel บน Web Hosting ซึ่งจะในตัวอย่างนี้ผมได้ยกตัวอย่างการทำในระบบ Web Hosting ของ Linux Server ส่วนในระบบ Windows Server อันนี้ผมไม่มีข้อมูล และไม่แน่ใจว่าวิธ๊นี้จะสามารถใช้ได้เหมือนกันหรือไม่

หลักการทำ Sub Domain ด้วย PHP
หลักการก็เปลี่ยนกับการสร้าง Sub Domain ทั่ว ๆ ไป เช่น เราจะสร้าง Sub ที่ชื่อว่า mysub.thaicreate.com และจัดเก็บไฟล์ไว้ที่ public_html/mysub เราก็จะสร้างได้เป็น

Sub Domain : mysub.thaicreate.com
Directory Path : public_html/mysub


แต่ในตัวอย่างดังกล่าวเราจะได้ Sub แค่ชื่อว่า mysub.thaicreate.com เท่านั้น ซึ่งตรงนี้เองในกรณีที่เราต้องการให้ User สามารถเรียก Sub Domain อะไรก็ได้ เราก็เพียงเปลี่ยนจาก mysub เป็น * (ดอกจันทร์ หรือ star)

Sub Domain : *.thaicreate.com
Directory Path : public_html/mysub


จากตัวอย่าง เราสามารถที่จะเรียก Sub Domain อะไรก็ได้ โดยจะมีการทำงานเรียก Path เหมือนกันหมดที่ public_html/mysub เช่น

win1.thaicreate.com
win3.thaicreate.com
win2.thaicreate.com
etc.thaicreate.com


จะสังเกตุว่า Sub Domain เหล่านี้เรียก Path ตัวเดียวกัน ทั้งหมด ซึ่งใน Directory Path เราสามารถที่จะเขียนตรวจสอบว่าปัจจุบันมีการเรียกใช้งานที่ Sub อะไร และนำไปเป็นเงื่อนไขในการ ตรวจสอบในระบบ Database ว่ามี Sub Domain นั้น ๆ อยู่หรือไม่ ลองมาดูตัวอย่างการทำและใช้งานจริง ๆ (ในตัวอย่างนี้จะยกตัวอย่างของ Cpanel และ Direct Admin ส่วน Control Panel อื่น ๆ ก็คงจะไม่ต่างกันเท่าไหร่)








การทำ Sub Domain ด้วย PHP บน Cpanel

PHP Create Sub Domain

ให้ Login เข้าระบบ Cpanel ในโหมดของ User ทั่ว ๆ ไป จากนั้นให้เลือกที่ Subdomain

PHP Create Sub Domain

ให้กรอกชื่อ Sub Domain เป็น * ในตัวอย่างจะใช้ *.thaicreate.com และโฟเดอร์จัดเก็บที่ public_html/mysub

PHP Create Sub Domain

ได้ Sub Domain เรียบร้อย

PHP Create Sub Domain

ลอง FTP เข้าไปดูก็จะพบกับโฟเดอร์ของ Sub Domain ที่เราได้สร้างขึ้น

PHP Create Sub Domain

เข้ามาในโฟเดอร์ public_html/mysub ตอนนี้ยังไม่มีไฟล์อะไรทั้งสิ้น

PHP Create Sub Domain

ให้เราสร้างไฟล์ index.php แบบง่าย ๆ ด้วยคำสั่ง echo "Welcome to My Sub";

index.php
<?php
   echo "Welcome to My Sub";
?>


จากนั้นให้ทดสอบเรียก Sub Domain อะไรก็ได้ โดยผมจะทดสอบเรียกเป็น

win1.thaicreate.com
win2.thaicreate.com
win3.thaicreate.com


ในกรณีที่ไม่สามารถเรียกใช้งานได้ อาจจะต้องรอประมาณ 10-20 นาที

PHP Create Sub Domain

win1.thaicreate.com

PHP Create Sub Domain

win2.thaicreate.com

PHP Create Sub Domain

win3.thaicreate.com

นี่คือผลลัพธ์ที่ได้ คือ Sub Domain อะไรก็ตามจะได้ผลลัพธ์เหมือนกันหมด เพราะมีการเรียกใช้งานโฟเดอร์ ตัวเดียวกัน








แล้วเราจะรู้ได้ยังไงว่าตอนนี้มันถูกเรียกด้วย Sub Domain ชื่ออะไร ???

ง่ายมาก ๆ เราสามารถใช้คำสั่ง $_SERVER['SERVER_NAME']

index.php
<?php
   echo "Welcome to My Sub = ".$_SERVER['SERVER_NAME'];
?>


ทดสอบเรียกอีกครั้ง

PHP Create Sub Domain

win1.thaicreate.com เราจะเห้นว่าตอนนี้ Sub Domain ทำงานภายใต้ Sub ที่เราเรียกขึ้นมา

จากตัวอย่างเราจะเห็นว่าเราสามารถที่จะเรียก Sub Domain และอ่านค่า Sub Domain ได้แล้ว และเราสามารถที่จะนำค่านี้เพื่อที่จะไปตรวจสอบกับ Database ต่าง ๆ ว่า Sub Domain นี้มีอยู่หรือยัง ในกรณีที่จะทำเป็นระบบ สมัครสมาชิกและ สร้าง Sub Domain อัตโนมัติ หรือจะตรวจสอบว่า Sub Domain นี้สามารถใช้งานได้จริง ๆ หรือไม่ก็สามารถนำค่าไปตรวจสอบกับ Database ได้เช่นเดียวกัน

วิธีการรวจสอบ Sub Domain

index.php
<?php
   if($_SERVER['SERVER_NAME'] == "win1.thaicreate.com")
   {
	echo "Welcome to Win1";
   }
   elseif($_SERVER['SERVER_NAME'] == "win2.thaicreate.com")
   {
	echo "Welcome to Win2";
   }
   elseif($_SERVER['SERVER_NAME'] == "win3.thaicreate.com")
   {
	echo "Welcome to Win3";
   }
   else
   {
	echo "NOT FOUND SUB DOMAIN";
   }
?>


จากตัวอย่างจะสร้างเงื่อนไขว่ามี Sub Domain ชื่อว่า win1 , win2 และ win3 อยู่เท่านั้น

PHP Create Sub Domain

win1.thaicreate.com แสดง Welcome to Win1

PHP Create Sub Domain

win4.thaicreate.com ซึ่งไม่มีอยู่ในเงื่อนไขจะแสดง NOT FOUND SUB DOMAIN (ซึงทั้งหมดนี้เราสามารถนำไปประยุกต์ใช้กับ MySQL Database ได้)

หรือจะใช้ด้วย .htaccess ก็ได้ครับ

.htaccess
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^(^.*)\.thaicreate.com RewriteRule (.*) chkuser.php?user=%1 </IfModule>

จากนั้นสร้างไฟล์ chkuser.php ง่าย ๆ เพื่ออ่านค่า user

PHP Create Sub Domain

chkuser.php
<?php
echo "User = ".$_GET["user"];
?>



Screenshot

PHP Create Sub Domain

สำหรับขั้นตอนการทำ Sub Domain ก็มีเพียงง่าย ๆ เท่านี้แหละครับ ที่เหลือคือจินตนาการที่จะ ออกแบบแนะนำไปประยกุต์กับการใช้งานในรูปแบบต่าง ๆ




การทำ Sub Domain ด้วย PHP บน Direct Admin สำหรับ Direct Admin ผมไม่แน่ใจว่าใน Version ใหม่ ๆ จะรองรับ Domain ที่ชื่อว่า * แล้วหรือยัง ถ้ารองรับแล้ว ก็สามารถทำตามขั้นตอนเดียวกับ Cpanel ได้ในทันที แต่ในกรณีที่ยังไม่รองรับสามารถทำตามขั้นตอนตามตัวอย่างนี้

PHP Create Sub Domain

เข้าเมนู Subdomain Management บน Direct Admin

PHP Create Sub Domain

ทดสอบเพิ่ม Sub Domain ชื่อว่า *

PHP Create Sub Domain

จะเห็นว่า Direct Admin นั้นไม่สามารถใช้ชื่อ * ได้ วิธีแก้ไขคือให้สร้าง Sub Domain ชื่ออะไรก็ได้ขึ้นมา 1 ตัว

PHP Create Sub Domain

เช่น mysub.thaicreate.com

PHP Create Sub Domain

ได้ Sub Domain ขึ้นมาเรียบร้อย จากนั้นให้เข้าไปแก้ไขในไฟล์ Config ของ Apache (ซึ่งการแก้ไขคุณจะต้องเป็นเจ้าของ Host หรือเจ้าของเครื่อง ทั้งนี้สามารถแจ้งไปยังเจ้าของ Host แก้ไขให้ได้ ถ้าเจ้าของไม่แก้ไขให้ แสดงว่าขี้เกียจไม่อยากทำให้ ห่วย!!)

ปกติแล้วไฟล์ httpd.conf ใน Direct Admin จะมีการแยกแต่ล่ะ User เช่น

/usr/local/directadmin/data/users/thaiwin/httpd.conf


PHP Create Sub Domain

ตัวอย่ากงารแก้ไขหา ชื่อ ตรง Alias ของ Sub Domain ในส่วนของ Port : 80 แก้ไขจาก mysub

PHP Create Sub Domain

มาเป็น * แทน หลังจากนั้นก็ให้ Restart Apache ซะ 1 ครั้ง ก็คือว่าเป็นอันใช้ได้

เพิ่มเติม
- การเพิ่ม Sub Domain ชื่อว่า * จะไม่มีผลกระทบต่อ Sub Domain อื่น ๆ ที่มีอยู่


   
Share
Bookmark.   

  By : TC Admin
  Article : บทความเป็นการเขียนโดยสมาชิก หากมีปัญหาเรื่องลิขสิทธิ์ กรุณาแจ้งให้ทาง webmaster ทราบด้วยครับ
  Score Rating :
  Create Date : 2013-04-26
  Download : No files
Sponsored Links
แก้ปัญหา Facebook Like หายเมื่อเปลี่ยนจาก HTTP เป็น HTTPS
แก้ปัญหา Facebook Like หายเมื่อเปลี่ยนจาก HTTP เป็น HTTPS
ในช่วงนี้หลายๆ เว็บกำลังเปลี่ยน เว็บจาก HTTP เป็น HTTPS และถ้ามีการใช้ Plugin Facebook Like / Shared คงจะเจอปัยหา Line หายกัน
Rating : Update : 2018-09-18 15:14:43
[Code] โปรแกรม คำนวนส่วนลดของราคาสินค้า แบบมือใหม่ (VB.Net)
[Code] โปรแกรม คำนวนส่วนลดของราคาสินค้า แบบมือใหม่ (VB.Net)
กำลังหัดลองเขียนพวก VB ค่ะ เลยเอาโค้ดที่หัดทำมาโพสเเปะๆไว้ ให้คนอื่นที่สนใจด้านนี้มาศึกษา
Rating : Update : 2017-07-06 06:30:49
วิธีการ Redirect จาก HTTP ไปเป็น HTTPS แบบง่ายๆ ด้วย .htaccess
วิธีการ Redirect จาก HTTP ไปเป็น HTTPS แบบง่ายๆ ด้วย .htaccess
หลังจากที่เราได้ติดตั้ง SSL และกำตั้งค่าเว็บจาก HTTP เป็น HTTPS แล้ว ขั้นตอนถัดไปคือการตั้งให้ Redirect ไปยัง URL ที่เป็น HTTPS อัตโนมัติ
Rating : Update : 2018-09-14 17:29:25
แก้ปัญหาการส่งอีเมลหลังจากอัพเกรดจาก PHP Version 5.4 ไปเป็น 5.6 โดยใช้ New PHPMailer
แก้ปัญหาการส่งอีเมลหลังจากอัพเกรดจาก PHP Version 5.4 ไปเป็น 5.6 โดยใช้ New PHPMailer
สืบเนื่องมาจากก่อนหน้านี้นั้นได้มีการอัพเกรด PHP Version จาก 5.4 มาเป็น 5.6 ซึ่งทำให้มีผลกระทบกับการส่งอีเมลของระบบดังนั้น วันนี้จึงได้มีข้อมูลดีๆมาแบ่งปันกัน ซึ่งดูตามรายละเอียด
Rating : Update : 2018-05-26 15:54:09
C# Extension Methods แบบ บ้านๆ
C# Extension Methods แบบ บ้านๆ
ทุกคนทีเขียนโปรแกรม ก็มักจะเจอว่าเวลาเราเรียกใช้ตัวแปร ต่างๆ แล้วพิมพ์ จุดแล้วมักจะเจอว่ามี method หรือ function ขึ้นมาให้เลือกแบบนี้
Rating : Update : 2019-04-29 15:01:47
7 เหตุผล ที่ไม่ควรใช้ SELECT * เพื่อ Query ข้อมูล
7 เหตุผล ที่ไม่ควรใช้ SELECT * เพื่อ Query ข้อมูล
เชื่อว่า Programmer ทุกคน คงเคยใช้คำสั่ง SQL กันมาบ้างแล้ว และคำสั่งพื้นฐานที่ทุกคนถนัดและมักจะใช้กันบ่อยก็คือ SELECT * แต่วันนี้เรามาดูกันว่า คำสั่งที่เรามักใช้งานกันบ่อยๆ นี้ อาจจะไม่ค่อยเหมาะที่จะใช้เท่าไรนัก แต่จะมีเหตุผลอะไรบ้าง เราไปดูกันเลยครับ
Rating : Update : 2019-03-18 13:57:30
#share บันทึกบันทึก: คำสั่งที่ใช้จัดการ package ใน alpine linux
#share บันทึกบันทึก: คำสั่งที่ใช้จัดการ package ใน alpine linux
#share บันทึกบันทึก: คำสั่งที่ใช้จัดการ package ใน alpine linux
Rating : Update : 2018-01-16 09:21:40
ThaiCreate.Com Forum


Comunity Forum Free Web Script
Jobs Freelance Free Uploads
Free Web Hosting Free Tools

สอน PHP ผ่าน Youtube ฟรี
สอน Android การเขียนโปรแกรม Android
สอน Windows Phone การเขียนโปรแกรม Windows Phone 7 และ 8
สอน iOS การเขียนโปรแกรม iPhone, iPad
สอน Java การเขียนโปรแกรม ภาษา Java
สอน Java GUI การเขียนโปรแกรม ภาษา Java GUI
สอน JSP การเขียนโปรแกรม ภาษา Java
สอน jQuery การเขียนโปรแกรม ภาษา jQuery
สอน .Net การเขียนโปรแกรม ภาษา .Net
Free Tutorial
สอน Google Maps Api
สอน Windows Service
สอน Entity Framework
สอน Android
สอน Java เขียน Java
Java GUI Swing
สอน JSP (Web App)
iOS (iPhone,iPad)
Windows Phone
Windows Azure
Windows Store
Laravel Framework
Yii PHP Framework
สอน jQuery
สอน jQuery กับ Ajax
สอน PHP OOP (Vdo)
Ajax Tutorials
SQL Tutorials
สอน SQL (Part 2)
JavaScript Tutorial
Javascript Tips
VBScript Tutorial
VBScript Validation
Microsoft Access
MySQL Tutorials
-- Stored Procedure
MariaDB Database
SQL Server Tutorial
SQL Server 2005
SQL Server 2008
SQL Server 2012
-- Stored Procedure
Oracle Database
-- Stored Procedure
SVN (Subversion)
แนวทางการทำ SEO
ปรับแต่งเว็บให้โหลดเร็ว


สุดยอด Source Code V2.0
 

แจ้งชำระเงิน/โอนเงิน
 

Hit Link
   


Acc : thaicreate@hotmail.com






Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2019 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
for Contact Us : [Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 08-9968-0655 อัตราราคา คลิกที่นี่