Welcome

Innovation distinguishes between a leader and a follower.

" นวัตกรรมแยกผู้นำกับผู้ตามออกจากกัน " Steve Jobs

ช่วงนี้เป็นช่วงขายไอเดียสำหรับผู้ประกอบการธุรกิจ IT ที่ต้องการสร้างสินค้าและบริการจากซอฟต์แวร์โอเพนซอร์ส ซึ่งงาน MICT สร้างคนสร้างชาติก็กำลังใกล้เข้ามาแล้วครับ เอาล่ะก่อนจะเข้าเรื่องการทำมาหากิน มาดูเรื่องของ Drupal กันก่อน Drupal มีคุณสมบัติพิเศษอย่างหนึ่งที่ CMS อื่นๆ ไม่มีคือสามารถใช้ตัวมันเองสร้างเว็บไซต์ได้อีกหลายๆ เว็บ บางคนก็เรียก sub site, minisite ก็แล้วแต่จะเรียกครับ วิธีการนี้ไม่ใช้วิธีการคัดลอกโค้ดไปยังไดเรคทอรีอื่นแล้วติดตั้งนะครับ เอาละเดี๋ยวนึกภาพกันไม่ออก ขอยกตัวอย่างง่ายๆ ดีกว่าครับ เราจะใช้ Drupal ทำเว็บไซต์ให้กับวิทยาลัยแห่งหนึ่งโดยแต่ละคณะแต่ละสาขาวิชามีเว็บไซต์เป็นของตนเอง นั่นหมายความว่าคุณต้องติดตั้ง Drupal ตามจำนวนคณะและสาขาวิชา เช่น

/var/www/college  <= เว็บวิทยาลัย
/var/www/science  <= เว็บคณะวิทยาศาสตร์
/var/www/science_physic  <= เว็บคณะวิทยาศาสตร์ สาขาวิชาฟิสิกส์
/var/www/science_math  <= เว็บคณะวิทยาศาสตร์ สาขาวิชาคณิตศาสตร์
/var/www/nurse  <= เว็บคณะพยาบาล
/var/www/engieering  <= เว็บคณะวิศวกรรม
/var/www/engieering_comp  <= เว็บคณะวิทยาศาสตร์ สาขาวิชาคอมพิวเตอร์
/var/www/techno  <= เว็บคณะเทคโน
/var/www/techno_food  <= เว็บคณะเทคโนโลยี สาขาวิชาการอาหาร 

ก็เล่นไปซะ 9 เว็บ 9 Drupal เข้าไปแล้ว หาก Drupal ของคุณมีเวอร์ชั่นไม่เท่ากันอีกก็กุมขมับเวลาอัพเกรดกันได้เลยครับ แต่หากคุณมีผู้ดูแลระบบที่สามารถดูแลเรื่องการจัดการ Drupal ในเรื่องต่างๆ ได้ เช่น อัพเกรด, อัพเดทโมดูล, อัพเดทธีม ฯลฯ จะใช้วิธี virtual host ก็ไม่ว่ากันครับ หากไม่มีละแย่เลย ต้องดูเว็บไซต์อย่างน้อยก็ 9 เว็บเข้าไปแล้ว วิธีนี้แก้ปัญหาจุกจิกนี้ แก้ได้โดยการใช้ multi site ครับ ซึ่ง เราจะติดตั้ง drupal ไว้ที่เดียวคือ /var/www/college จากนั้นทำ muti site จากจุดนี้ไป แล้วทำยังไง? Drupal ออกแบบเรื่อง multi site ไว้เรียบร้อยแล้ว เพียงสร้างไดเรคอรีเก็บ config และใส่ setting.phpให้แต่ละเว็บไซต์เท่านั้น ลองมาดูกันอีกรอบครับ

/var/www/college <= เราติดตั้ง Drupal ไว้ที่นี่สำหรับเว็บวิทยาลัย
/var/www/college/sites/default/setting.php <= ใส่ configของเว็บวิทยาลัย
/var/www/college/sites/science.mycollege.ac.th/setting.php <= ใส่ configของเว็บคณะวิทยาศาสตร์
/var/www/college/sites/physic.science.mycollege.ac.th/setting.php <= ใส่ config ของเว็บคณะวิทยาศาสตร์ สาขาวิชาฟิสิกส์ 


ไปเรื่อยๆ จนครบ สำหรับฐานข้อมูลเราสามารถสร้างฐานข้อมูลแยกออกตามคณะและสาขาวิชาได้ จะทำให้การบริการจัดการฐานข้อมูลได้ง่ายขึ้น คิดว่าน่าจะเข้าในในแนวคิดกันแล้วมาดู how-to แบบเต็มๆ ครับ ก่อนลงมือทำเรามาดูว่ามีอะไรกันบ้าง  เรามีโดเมนวิทยาลัยชื่อ mycolledge.ac.th, เรามีเว็บ 9 เว็บไซต์ที่ต้องติดตั้ง drupal แบบ multisite, ใช้ /var/www เป็นที่เก็บเว็บไซต์ เรา config DNS และ Apache Virtual Hostไว้แล้ว ใครยังงงๆ อ่านตอนเก่าๆ ได้ครับ เอาล่ะมาเริ่มกันเลย

แปลงร่างเป็น root ก่อนครับ

sudo -s

จากนั้นย้ายตัวเองไปที่ /var/www

cd /var/www

ดาวน์โหลด Drupal 

wget http://ftp.drupal.org/files/projects/drupal-6.12.tar.gz

คลี่ไฟล์

tar zxvf drupal-6.12.tar.gz

เปลี่ยนชื่อไดเรคทอรีจาก  drupal-6.12 เป็น college เพื่อใช้เป็นเว็บหลัก อ้อ อย่าลืมแก้ไข document root ของ default virtual host นะครับ

mv  drupal-6.12  college

สร้างไดเรคทอรีสำหรับเก็บ config ของแต่ละเว็บไซต์

cd college/sites
mkdir science.mycolledge.ac.th
mkdir physic.science.mycolledge.ac.th
mkdir math.science.mycolledge.ac.th
mkdir nurse.mycolledge.ac.th
mkdir engineer.mycolledge.ac.th
mkdir comp.engineer.mycolledge.ac.th
mkdir techno.mycolledge.ac.th
mkdir food.techno.mycolledge.ac.th

สร้าง ฐานข้อมูล mysql ให้แต่ละเว็บครับ 

mysql -u root -pmy-root-password -e “create database college”
mysql -u root -pmy-root-password -e “create database science”
mysql -u root -pmy-root-password -e “create database science_physic”
mysql -u root -pmy-root-password -e “create database science_math”
mysql -u root -pmy-root-password -e “create database nurse”
mysql -u root -pmy-root-password -e “create database engineer”
mysql -u root -pmy-root-password -e “create database engineer_comp”
mysql -u root -pmy-root-password -e “create database techno”
mysql -u root -pmy-root-password -e “create database techno_food”

จากนั้น browse เว็บไปที่ mycolledge.ac.th ติดตั้ง drupal สำหรับเว็บหลักให้เรียบร้อย แล้วจึงคัดลอก setting.php ไปยังไดเรคทอรีสำหรับเก็บ config ของแต่ละเว็บไซต์ ดังนี้

cp default/setting.php science.mycolledge.ac.th
cp default/setting.php physic.science.mycolledge.ac.th
cp default/setting.php math.science.mycolledge.ac.th
cp default/setting.php nurse.mycolledge.ac.th
cp default/setting.php engineer.mycolledge.ac.th
cp default/setting.php comp.engineer.mycolledge.ac.th
cp default/setting.php techno.mycolledge.ac.th
cp default/setting.php food.techno.mycolledge.ac.th

แก้ไขชื่อฐานข้อมูลใน setting.php ของแต่ละเว็บให้ถูกต้อง 

$db_url = 'mysqli://username:password@localhost/databasename';

จากนั้นทะยอยติดตั้งทีละเว็บไซต์โดยเบราส์ไปที่ URL ดังนี้

http://science.mycolledge.ac.th/install.php
http://physic.science.mycolledge.ac.th/install.php
http://math.science.mycolledge.ac.th/install.php
http://nurse.mycolledge.ac.th/install.php
http://engineer.mycolledge.ac.th/install.php
http://comp.engineer.mycolledge.ac.th/install.php
http://techno.mycolledge.ac.th/install.php
http://food.techno.mycolledge.ac.th/install.php

เท่านี้ก็ได้ Drupal ในแบบฉบับ Multi Site แล้ว อ้อลืมไปนิดนึง หากคุณมี module หรือ theme ที่ต้องใช้ร่วมกัน ให้คุณคัดลอก module, หรือ theme ไปยัง sites/all/modules และ sites/all/themes ครับ เอาละ มาดูวิธีการประยุกต์ให้ได้ธุรกิจบริการกันบ้าง จากตัวอย่างข้างต้นคุณสามารถรับจ้างทำเว็บไซต์ได้ง่ายๆ แต่หากเป็นการประยุกต์ในธุรกิจบริการ คุณสามารถใช้ Drupal ติดตั้งแบบ Multi Site นี้ทำอะไรได้บ้าง ?

เว็บบล็อก
เว็บไซต์
เว็บอีคอมเมิร์ซ
เว็บฐานข้อมูลความรู้
ฯลฯ

บริการในรูปแบบธุรกิจบริการได้อย่างสบายๆ
 
JUNCTION X © 2013. All Rights Reserved. Powered by Blogger
Top