wut@sun blog

« Ruby on Rails (Thai... | Main
วันจันทร์ ก.พ. 04, 2008

LAMP - Thai Edition

LAMP (Software Bundle)

บทนำ

            ช่วงที่ผ่านมาเราคงได้เห็นคำว่า LAMP ในข่าวของ IT บ่อยๆ แล้วที่น่าจะเห็นได้ชัดมากๆ ก็มีช่วงที่ Sun Microsystems Inc ได้เข้าซื้อควบรวมกิจการของ MySQL AB ซึ่งเป็นบริษัทที่ผลิตดาต้าเบส MySQL ที่เป็นฟรีดาต้าเบสซึ่งได้รับความนิยมสูงสุด และในตัว M ใน LAMP นั้นได้แทนความหมายของ MySQL นั่งเอง และในความหมายทั้งหมดของ LAMP นั้นจะประกอบไปด้วย

 

L นั้นได้อ้างอิงถึง Linux ซึ่งเป็นระบบปฏิบัติการ

A นั้นได้อ้างอิงถึง Apache ที่เป็น Web Server

M นั้นได้อ้างอิงถึง MySQL ที่เป็นดาต้าเบส

P นั้นได้อ้างอิงถึง PHP หรือบางครั้งอาจจะแทน Perl หรือ Python และสามารถที่จะอ้างอิงไปถึง Programming Language ได้ ที่ได้ทำหน้าที่เป็น Application Server เป็นหลัก

 

การรวมกันของชุดของเทคโนโลยีเหล่านี้ โดยปกติแล้วนิยมใช้เพื่อเป็นระบบพื้นฐาน (Infrastructure systems) รองรับการสร้างระบบ Web ที่ใช้งานกัน ต่อมาเพื่อความสะดวกจึงมีการนำเอาแต่ละตัวของ LAMP มารวมกันเป็นชุดของซอฟต์แวร์ เพื่อให้ง่ายต่อการติดตั้งและใช้งาน เพราะหากนำมาติดตั้งเอง อาจจะต้องใช้ความสามารถการทำให้แต่ละส่วนนั้นทำงานด้วยกันได้อีก เนื่องด้วยแต่ละส่วนนั้น เป็นชุดโปรแกรม Open Source ที่มีความนิยมมากๆ ในแต่ละหน้าที่ของแต่ละส่วนดังนั้นการออกแบบในเบื้องต้นนั้น ไม่ได้ออกแบบมาเพื่อการทำงานร่วมกันแบบเฉพาะ แต่เมื่อมีการกำหนดชุดของ LAMP ขึ้นมาก็ทำให้ผู้ที่นำเอาไปใช้งานมีความสะดวกมากขึ้น

 

ประวัติความเป็นมา

            LAMP เป็นสิ่งที่เริ่มต้นมาตั้งแต่ต้นปี 1990 ด้วยความสามารถของ Common Gateway Interface (CGI) ด้วยเทคโนโลยีนี้จะทำให้ผู้ใช้เว็ปแอพปริเคชั่นสามารถเรียกใช้งานไปที่เว็บเซิฟเวอร์โดยการใช้ Web browser ได้ ซึ่งปกติผลที่แสดงผ่าน Web browser นั้นจะอยู่ในรูปของข้อมูลแบบ Static ซึ่งเป็นผลจากการประมวลข้อมูลที่มีการเปลี่ยนแปลงด้วยตัวของแอพปริเคชั่นที่สร้างขึ้นมา ด้วยลักษณะงานข้างต้นนั้นก็ได้มีเทคโนโลยีมากมายที่สร้างขึ้นมาเพื่อรองรับความต้องการ ภาษา Script ก็เป็นตัวเลือกแรกๆ ของโปรแกรมเมอร์ที่ไว้สร้างการแสดงผลโดยจัดการกับรูปแบบของข้อมูลที่ประมวลผลแล้วจากเว็บเซิฟเวอร์ ซึ่งทำให้การออกแบบระบบที่แพร่หลายในปัจจุบันก็นิยมที่จะใช้ภาษา Script เป็นตัวช่วยจัดการสร้างการแสดงผล

            ในปี 1998 Michael Kunze ได้ใช้ตัวย่อ LAMP ขึ้นในบทความของ German Computing Magazine ที่ซึ่งบทความนี้ได้เขียนถึงชุดของฟรีซอฟต์แวร์ที่สามารถทำงานด้านเว็บแอพปริเคชั่นได้เช่นเดียวกับชุดที่ขายในท้องตลาด ซึ่งทาง Kunze ได้ใช้วิธีการใช้ตัวย่อ LAMP เพื่อให้เป็นที่น่าสนใจในวงการ IT ที่วิธีการใช้ตัวย่อจะแพร่หลายได้ง่าย ทำให้มีการเปิดช่องทางการขยายตัวของชุดของฟรีซอฟต์แวร์นี้ได้ขยายไปรวดเร็วมากขึ้น ต่อมาทาง O’Reilly และ MySQL AB ก็พยายามที่จะโปรโมทให้มีความแพร่หลายมากๆ ขึ้นผ่านตัวย่อ LAMP อีก ซึ่งทำให้ MySQL AB ได้ผลประโยชน์ในการขยายฐานผู้ใช้งานมากขึ้นนั่งเอง

 

ชุดของ Software

Linux (L)

            เป็น Operating system ที่มีลักษณะคล้ายกับ Unix Operating system ซึ่งเป็น Opensource Operating system ในปัจจุบันนี้ก็มีหลายๆ ผู้ผลิต ที่ได้รับความนิยมก็มีดังต่อไปนี้

            Redhat ที่เป็นมีผลิตภัณท์ Fedora, Redhat Enterprise Linux

            http://www.redhat.com

            http://fedoraproject.org

            Ubuntu Linux ที่มีผลิตภัณท์ Ubuntu Linux

                        http://www.ubuntu.com

            Novell ที่มีผลิตภัณท์ SUSE Linux Enterprise

                        http://www.novell.com/linux

            และอีกมากมายหลายจากหลายๆ ผู้ผลิต ดังต่อไปนี้

                        http://en.wikipedia.org/wiki/List_of_Linux_distributions

 

* ผ��ิตภัณท์บางผู้ผลิตไม่ได้เป็นฟรีซอฟท์แวร์แล้ว โปรดดูรายละเอียดจากเว็บไซค์ของผู้ผลิตนั้นๆ

 

Apache HTTP Server (A)

            เป็นฟรีซอฟท์แวร์ที่ทำหน้าที่เป็นเว็บเซิฟเวอร์หรืออีกนัยหนึ่งคือ Opensource HTTP server ที่เป็นผลผลิตจากกลุ่มของ Opensource ที่ใหญ่และแพร่หลายมาก กลุ่มนี้คือ Apache Foundation ที่มีผลิตภัณท์ Opensource มากมายเพื่อรองรับการทำงานบนเว็บซึ่งรองรับระบบปฏิบัติการหลากหลายไม่ว่าจะเป็น Solaris, Unix, Linux หรือ Microsoft Windows รายละเอียดของ Apache HTTP Server สามารถดูได้เพิ่มเติมที่

            HTTP Server - http://httpd.apache.org

            Apache Foundation - http://www.apache.org

 

MySQL (M)

            ทำหน้าที่หลักเป็นดาต้าเบสหรือ Database Management System (DBMS) ซึ่งมีคุณสมบัติพร้อมในการรองรับการใช้งานแบบหลายๆ ผู้ใช้งาน (Multi Users) ด้วยความสามารถในการแบ่งการทำงานเป็นหลายๆ Thread  (Multithreaded)

ด้วยที่ MySQL ทำมาเพื่อรองรับกลุ่มผู้ใช้แบบ Open Community ดังนั้นระบบปฏิบัติการที่รองรับการมีได้หลากหลายเช่นกัน ไม่ว่าจะเป็น Solaris, Unix, Linux, MacOSX หรือบน Microsoft Windows สามารถศึกษารายละเอียดเพิ่มเติมได้ที่

            MySQL Database Server - http://dev.mysql.com

            MySQL ABhttp://www.mysql.com

 

PHP (P)

            PHP ได้ความหมายเต็มมาจาก Hypertext Preprocessor ซึ่งเป็นแอพปริเคชั่นที่ทำหน้าที่เป็น Server Side Application โดยการออกแบบการสร้าง PHP นั้นคือการทำหน้าที่ดึงเอาข้อมูล Dynamic ในส่วนของด้าน Server มาสร้างเป็น Web pages ที่แสดงข้อมูลในรูปแบบ Static แล้วส่งไปแสดงผลที่ฝั่งของ Web browser แต่นอกเหนือจากการออกแบบการทำงานในข้างต้นแล้ว PHP ก็ยังมีความสามารถในการทำงานผ่าน command line และในแบบรูปแบบ Standalone Graphical Application อีกด้วย ดูข้อมูลอื่นๆ เพิ่มเติมของ PHP ได้ที่

            PHP - http://www.php.net

 

ความหมายอีกหลายๆ แบบของ LAMP

            บางครั้งก็มีการนำคำย่อของ LAMP ไปใช้กับแอพปริเคชั่นอื่นๆ ที่นอกเหนือจากที่กล่าวไว้ข้างต้น ตัวอย่างเช่น การนำคำย่อ P ไปแทนด้วย Perl หรือ Python ที่ทำหน้าที่ Server-Side Application เช่นกัน และในบางครั้งก็ขยายขอบเขตรวมไปถึง Ruby ด้วยเมื่อมองในแง่ของโครงสร้างการทำงาน

และบางกลุ่มก็ได้มีการสลับการอ้างอิงของต่อย่อเพื่อให้เข้าได้กับความหมายของซอฟต์แวร์ที่กลุ่มตนเลือกใช้ ตัวอย่างเช่น จะให้ M แทนส่วนที่เป็น mod* perl หรือ mod python และให้ P แทนด้วย PostgreSQL ที่ทำหน้าที่เป็นดาต้าเบสซึ่งเป็นฟรี DBMS เช่นกัน

            บางกลุ่มก็มีการเปลี่ยนคำย่อ LAMP ไปเป็นอย่างอื่น แต่มีรูปแบบของโครงสร้างแบบเดียวกัน อย่างเช่นได้เปลี่ยนไปเป็น LAMR ซึ่ง R นั้นได้แทน Ruby on Rails ที่เป็นซอฟต์แวร์ทำหน้าที่ Server-Side Application เช่นกันกับ PHP

            นอกจากนั้นก็มีการเรียกขานในรูปแบบต่างๆ เพื่อให้สอดคล้องกับระบบที่กลุ่มนั้นๆ ได้ใช้งานเช่นในกลุ่มที่ใช้ Mac OSX เป็น Operating systems นั้นก็กำหนดคำว่า AMP ซึ่งได้ตัวเอา L ที่มีความหมายเป็น Linux ออกไป

 

* mod เป็นส่วนเพิ่มในซอฟต์แวร์ (Plugins) เพื่อจะขยายขีดความสามารถของซอฟต์แวร์นั้นๆ ออกไปได้อีกเช่น mod perl ก็จะเป็นส่วนขยายเพื่อให้ Apache Web Server รองรับการทำงานกับ Perl ได้

Comments:

Post a Comment:
  • HTML Syntax: NOT allowed