Showing posts with label Apache. Show all posts
Showing posts with label Apache. Show all posts

Sunday, December 23, 2012

Apache คืออะไร

Apache คืออะไร

Apache คืออะไร Apache คือ Software ที่ทำหน้าที่เป็น webserver โดยให้บริการ protocol HTTP ที่ port 80 ลักษณะเด่น คือเป็น Software ที่เป็น Opensource ติดตั้งมาพร้อมกับ ระบบปฎิบัติการ Linux และมีใช้กันอย่างแพร่หลายมากที่สุดในโลก

ที่มาของชื่อ Apache มาจากกลุ่มคนที่ช่วยสร้างแพตช์ไฟล์สำหรับโครงการ NCSA httpd1.3 ซึ่งกลายมาเป็นที่มาของชื่อ A PAtCHy server และในอีกความหมายหนึ่งยังกล่าวถึงเผ่าอะแพชีหรืออาปาเช่ ซึ่งเป็นเผ่าอินเดียนแดงที่มีความสามารถในการรบสูง

ประวัติของ Apache พัฒนามาจาก HTTPD Web Server ที่มีกลุ่มผู้พัฒนาอยู่ก่อนแล้ว โดย ร็อบ แม็คคูล (Rob McCool) ที่ NCSA (National Center for Supercomputing Applications) มหาวิทยาลัยอิลลินอยสมหาวิทยาลัยอิลลินอยส์ เออร์แบนา-แชมเปญจน์ สหรัฐอเมริกา แต่หลังจากที่ แม็คคูล ออกจาก NCS และหันไปให้ความสนใจกับโครงการอื่นๆ มากกว่าทำให้ HTTPD เว็บเซิร์ฟเวอร์ ถูกปล่อยทิ้งไม่มีผู้พัฒนาต่อ แต่เนื่องจากเป็นซอร์ฟแวร์ที่อยู่ภายใต้ลิขสิทธิ์ กนู คือ ทุกคนมีสิทธิ์ที่จะนำเอาซอร์สโค้ดไปพัฒนาต่อได้ ทำให้มีผู้ใช้กลุ่มหนึ่งได้พัฒนาโปรแกรมขึ้นมาเพื่ออุดช่องโหว่ ที่มีอยู่เดิม (หรือ แพช) และยังได้รวบรวมเอาข้อมูลการพัฒนา และการแก้ไขต่างๆ แต่ข้อมูลเหล่านี้อยู่ตามที่ต่างๆ ไม่ได้รวมอยู่ในที่ที่เดียวกัน จนในที่สุด ไบอัน บีเลนดอร์ฟ (Brian Behlendorf) ได้สร้างจดหมายกลุ่ม (mailing list) ขึ้นมาเพื่อนำเอาข้อมูลเหล่านี้เข้าไว้เป็นกลุ่มเดียวกัน เพื่อให้สามารถเข้าถึงข้อมูลเหล่านี้ได้ง่ายยิ่งขึ้น และในที่สุด กลุ่มผู้พัฒนาได้เรียกตัวเองว่า กลุ่มอาปาเช่ (Apache Group) และได้ปล่อยซอฟต์แวร์ HTTPD เว็บเซิร์ฟเวอร์ ที่พัฒนาโดยการนำเอาแพชหลายๆ ตัวที่ผู้ใช้ได้พัฒนาขึ้นเพื่อปรับปรุงการทำงาน ของซอฟ์ตแวร์ตัวเดิมให้มีประสิทธิภาพมากยิ่งขึ้นตั้งแต่ ปี พ.ศ. 2539 Apache ได้รับความนิยมขึ้นเรื่อยๆ จนปัจจุบันได้รับความนิยมเป็นอันดับหนึ่ง มีผู้ใช้งาน อยู่ประมาณ 65% ของเว็บเซิร์ฟเวอร์ที่ให้บริการอยู่ทั้งหมด11111



โดยหน้าที่หลักของ webserver ทั่วไปมีดังนี้


  1. คอยจัดการ Request ก็คือ การร้องขอข้อมูล
  2. คอยจัดการ Resposne ก็คือ การส่งข้อมูลกลับไป
  3. คอยจัดการ process และจัดลำดับ ของ request และ response
  4. คอยเก็บ logs ที่มีการ access เข้ามารวมกระทั้ง error ต่างๆๆ ที่ webserver พบ เช่น ไม่เจอไฟล์ชื่อนี้
  5. สามารถ เอา module มาใช่ร่วมกับ webserver ได้ ยกตัวอย่างเช่น Apache นั้น ไม่สามารถ run ไฟล์ .php ได้ ต้อง เรียกใช้ module php อีกที หรือ การ rewrite url ก็ใช่เดียวกันต้องใช้ mod_rewrite ในการสร้าง
เมื่อรู้หน้าที่ของ Apache ไปแล้วทีนี้เรามารู้จัก Webserver ตัวอื่น บ้าง ๆๆ
  1. IIS เป็น Webserver ที่ทาง Microsoft พัฒนาขึ้น โดยจะติดตั้งมาให้กับ ตระกูล Window NT หรือว่า Windows ตระกูล Server นั้นเอง ใน IIS จะติดตั้งตัว Compile ภาษา asp หรือว่า asp.net มาให้ด้วย ซึ่งสามารถ Config ให้ Run php โดย ติดตั้งตัวแปรกภาษา php ลงไป ในบทความบทต่อไปจะได้กล่าวถึง
  2. Apache Tomcat เป็น หนึ่งในตระกูล Apache ซึ่งเป็น Opensource เช่นเดียวกับ Apache แต่จะติดตั้งตัว Compile ภาษา Jsp มาให้ด้วย โดยลักษณะการทำงาน ก็คือ Apache Tomcat จะ Compile ไฟล์ jsp เป็น Class File ที่เรียกว่า Servlert ก่อนแล้วจึงให้ ตัว Servlet Engine ทำหน้าที่ในการ Compile ต่อ ออกมาเป็น Web
  3. Apache เป็น Opensource และมีคนพัฒนา โดยใช้ Apache มากที่สุดในโลก เนื่องจาก Free และ มีบทความต่างๆ รวมถึงเป็น ระบบที่อยู่มานานแล้วจึงมีการพัฒนาจน สเถียรมาก
สามารถ Download Software ได้ที่

http://www.apache.org/dyn/closer.cgi

FTP Service เพื่อคู่หูของเว็บเซิร์ฟเวอร์

FTP Service เพื่อคู่หูของเว็บเซิร์ฟเวอร์
เนื่องด้วยการใช้งานเว็บเซิร์ฟเวอร์นั้นต้องการการแสดงผลเอกสารเว็บที่ เป็นไฟล์ข้อความภาษา HTML ไฟล์รูปภาพ และมัลติมีเดียต่าง ๆ ผู้ที่จะปรับปรุงเนื้อหาบนเว็บเพจทั้งหลายบนเว็บเซิร์ฟเวอร์จะต้องอาศัย บริการอีกตัวหนึ่งเพื่อจัดส่งไฟล์ต่าง ๆ อัพโหลดเข้าไปเก็บภายใน DocumentRoot ของเว็บเซิร์ฟเวอร์ ซึ่งบริการดังกล่าวก็คือ FTP ( File Transfer Protocol ) บริการ FTP นี้ไม่ได้รวมอยู่ในตัวเว็บเซิร์ฟเวอร์ ดังนั้นผู้ดูแลระบบจะต้องคอนฟิกเซิร์ฟเวอร์ที่ให้บริการ FTP นี้ขึ้นมาใช้งานคู่กับเว็บเซิร์ฟเวอร์เสมอ ซึ่งโปรแกรมที่ทำหน้าที่เป็น FTP Server นี้ Red Hat Linux 9.0 จะให้มาพร้อมกันแล้ว คือ โปรแกรม vsftpd ( Very Secure FTP Daemon ) เราจึงสามารถเปิดบริการนี้ขึ้นมาได้ด้วยคำสั่งคล้าย ๆ การเปิดบริการอาปาเช่
# chkconfig vsftpd on
# service vsftpd restart
หลังจากที่ FTP Server เริ่มทำงานแล้ว รายชื่อผู้ใช้งานในระบบทุกชื่อจะสามารถใช้บริการ FTP Server นี้ได้ทันที แต่สำหรับการเพิ่มชื่อล๊อกอินของยูสเซอร์ที่จะแก้ไขปรับปรุงเว็บไซต์จำเป็น ต้องกำหนดให้ยูสเซอร์นั้นเริ่มต้นเข้าไปรับส่งไฟล์ที่ตำแหน่งไดเร็คทอรี่ DocumentRoot ของเว็บเซิร์ฟเวอร์ ( ตามตัวอย่างข้างต้นคือ /itdestination.com ) วิธีการสร้างแอคเค้าต์ของยูสเซอร์ ( สมมุติชื่อ webmaster ) จะมีขั้นตอนดังรูปที่ 7 หลังจากนี้ยูสเซอร์ webmaster จะสามารถตกแต่งแก้ไขเว็บไซต์ได้โดยผ่านโปรแกรม FTP Client ธรรมดาทั่วไป ( เช่น WS-FTP Pro หรือ CuteFTP ) จากเครื่องไคลเอ้นต์ได้ตามต้องการ


รูปที่ 7 ขั้นตอนการสร้างยูสเซอร์ webmaster เพื่อการ FTP

DNS Server อีกแรงสนับสนุนเพื่อการใช้งานที่สมบูรณ์ ในด้านการเรียกเข้าชมเว็บไซต์จากผู้ใช้ทั่วไป ระบบของเราจำเป็นต้องอาศัยระบบ Domain Name Service หรือ DNS เพื่อช่วยให้ผู้ชมสามารถเข้าถึงเว็บเซิร์ฟเวอร์ของเราได้ด้วยการเรียกด้วย ชื่อของเว็บไซต์ แทนที่จะเรียกเข้ามาด้วยหมายเลขไอพี หากเป็นการสร้างเว็บเซิร์ฟเวอร์ขึ้นเพื่อใช้งานเป็นการภายในขององค์กรก็จำ เป็นต้องจัดตั้ง DNS Server ขึ้นเพื่อช่วยแปลงชื่อโฮสต์ ( เช่น www.intranet.com ) ให้เป็นหมายเลขไอพีของโฮสต์ที่เป็นเว็บเซิร์ฟเวอร์ของเรา ซึ่งอาจจะใช้ DNS Server ที่มีอยู่แล้วในองค์กรก็ได้ แต่ถ้ายังไม่เคยมี DNS Server มาก่อนก็สามารถคอนฟิกโปรแกรม BIND ที่มาพร้อมกับ Red Hat Linux 9.0 ให้ทำหน้าที่เป็น DNS Server ก็ได้


รูปที่ 8 การทำงานร่วมกับระหว่าง DNS กับ Apache

แต่ถ้าเป็นการจัดตั้งเว็บเซิร์ฟเวอร์นี้ขึ้นเพื่อให้บริการแก่บุคคล ทั่วไปในระบบเครือข่ายอินเตอร์เน็ตก็จะต้องเชื่อมต่อเว็บเซิร์ฟเวอร์นี้เข้า สู่ระบบอินเตอร์เน็ตโดยจะต้องมีหมายเลขไอพีจริงในระบบอินเตอร์เน็ต ( Real IP Address ) คอนฟิกของระบบเครือข่ายนี้มีทางเลือกหลายทาง โดยอาจจะเชื่อมต่อเข้าสู่เครือข่ายอินเตอร์เน็ตโดยผ่านสายสื่อสารที่จัด เตรียมไว้ เช่น สายลีสไลน์และเราต์เตอร์ หรืออาจจะใช้บริการจากผู้ให้บริการอินเตอร์เน็ต ( Internet Data Center ) โดยการนำเว็บเซิร์ฟเวอร์ของเราไปฝากไว้ที่เรียกว่า Co-Location ซึ่งเป็นอีกวิธีหนึ่งที่ประหยัดกว่าก็ได้ ต่อจากนั้นจะต้องจดทะเบียนชื่อโดเมน ( Domain Name Registration ) เพื่อให้ได้ชื่อโดเมนและเว็บไซต์ที่คนทั่วโลกจะเข้าถึงได้ โดยเป็นหน้าที่ของหน่วยงานที่เป็นตัวแทนจดทะเบียนชื่อโดเมนให้เราจะต้องลง ทะเบียนในระบบ DNS ให้ชื่อเว็บไซต์นี้ชี้มาที่หมายเลขไอพีที่ได้เชื่อมต่อกับเว็บเซิร์ฟเวอร์ ไว้ ภายหลังจากลงทะเบียนชื่อโดเมนประมาณ 2-3 วัน คนทั่วโลกก็จะเข้าถึงเว็บไซต์ของเราได้แล้ว Apache ไม่ใช่เพียงแค่เว็บเซิร์ฟเวอร์ ในความเป็นจริงแล้ว สถานะของอาปาเช่ในปัจจุบันถูกแบ่งออกในเชิงการประยุกต์ใช้งานได้ 2 ทาง คือ การใช้งานทางตรง หรือการใช้งานโดยเน้นหนักไปในฐานะของ HTTP Server ซึ่งถูกนำไปใช้งานเป็นเว็บเซิร์ฟเวอร์โดยตรง ในส่วนนี้ยังสามารถแยกลักษณะการใช้งานออกไปได้อีกหลายทิศทางขึ้นอยู่กับ ลักษณะของงานและคุณลักษณะพิเศษต่าง ๆ ที่เสริมเข้าไปอีกด้วย ได้แก่
  • การใช้งานเป็น Mirror Site ด้วยความสามารถจากโมดูลในกลุ่ม mod_proxy.c ทำให้เราสามารถประยุกต์ใช้อาปาเช่เป็นเว็บไซต์ Mirror ได้ โดยสามารถสำเนาเนื้อหาจากเว็บไซต์ที่ได้รับการอนุญาติแล้วมาให้บริการใน เซิร์ฟเวอร์ของเราได้
  • ทำหน้าที่เป็น Web Redirector หรือทำหน้าที่เป็นตัวช่วยเปลี่ยนทิศทางของผู้ชมที่มาจากแหล่งต้นทางที่แตก ต่างกันให้ไปสู่ URL หรือเซิร์ฟเวอร์ที่กำหนดขึ้นใหม่ได้ ซึ่งมาจากความสามารถของโมดูล mod_rewrite.c
  • การสร้างเว็บไซต์ส่วนบุคคล หรือ Personal Home Page การใช้งานแบบนี้เป็นที่นิยมมากในสถานศึกษา มหาวิทยาลัย โดยอาศัยการทำงานของโมดูล mod_userdir.c จะช่วยให้ยูสเซอร์ทุกคนในเว็บเซิร์ฟเวอร์มีเว็บไซต์ส่วนตัวได้โดยอัตโนมัติ โดยมี URL เป็นชื่อเว็บไซต์นั้นตามด้วยเครื่องหมาย ~ และชื่อของยูสเซอร์นั้น ๆ เช่น ยูสเซอร์ gump ในเซิร์ฟเวอร์ www.tepleela.ac.th ก็จะมี URL เป็น http://www.tepleela.ac.th/~gump/ เป็นต้น ซึ่งทำให้สมาชิก นักเรียน นักศึกษา มีเว็บไซต์เป็นของตนเองที่จะใช้ฝึกหัดสร้างเว็บไซต์ และเผยแพร่ข้อมูลสู่สาธารณะได้ตามต้องการ
  • การเป็น Virtual Host ลักษณะนี้เป็นที่นิยมกันมากทีเดียว คือ การสร้างเว็บไซต์มากกว่า 1 เว็บไซต์โดยใช้เครื่องเซิร์ฟเวอร์เพียงเครื่องเดียว และใช้หมายเลขไอพีแอดเดรสเพียงหมายเลขเดียวในการอ้างถึงเว็บไซต์หลายชื่อ หรือที่เรียกว่า Name Based Virtual Host ซึ่งช่วยให้ลดค่าใช้จ่ายไปได้มาก สำหรับ Red Hat Linux 9.0 แล้วในทางเทคนิคสามารถคอนฟิกได้ทันทีในส่วนของอาปาเช่ แต่ยังขาดในส่วนของ FTP Server ซึ่งไม่สนับสนุนการทำ Virtual Host ในแบบ Name Based ดังนั้นจึงจำเป็นต้องนำโปรแกรม FTP Server ที่ดีกว่า vsFTPd และมีคุณสมบัติด้าน Virtual Host มาใช้แทน เช่น ProFTPd หรือ PureFTPd เป็นต้น ( vsFTPd สนับสนุน Virtual Host เฉพาะแบบ IP Based และ Port Based เท่านั้น )
  • การเป็นเว็บเซิรฟเวอร์ที่สนับสนุนเทคโนโลยีเว็บอื่น ๆ Apache 1.3 และ 2.0 เป็นเพียงหนึ่งในโปรเจคของ The Apache Software Foundation เท่านั้น ยังมีโปรเจคอื่น ๆ ที่เป็นโปรเจคต่อเนื่องจากอาปาเช่อีกมากมาย เช่น Jakarta เป็นโปรเจคเสริมเพื่อทำให้อาปาเช่สนับสนุน Java Platform โดยหนึ่งในจำนวนโปรแกรมที่เป็นที่รู้จักกันเป็นอย่างดีก็คือ Tomcat 5 ซึ่งเสริมการสนับสนุน Java Servlet 2.4 และ Java Server Pages 2.0
  • ในทางอ้อม การประยุกต์ใช้อาปาเช่เว็บเซิร์ฟเวอร์ยังถูกนำมาใช้เพื่อเป็นส่วนประกอบใน งานด้านอื่น ๆ อีก โดยอยู่ในฐานะช่องทางติดต่อระหว่างผู้ใช้กับแอปพลิเคชั่นต่าง ๆ ในลักษณะของ Web based User Interface ซึ่งผู้ใช้อินเตอร์เน็ตทั่วไปมีความคุ้นเคยดีอยู่แล้ว อีกทั้งยังลดการบำรุงรักษาและคอนฟิกในฝั่งเครื่องไคลเอ้นไปได้มากอีกด้วย การใช้งานในทางอ้อมที่ว่านี้ ได้แก่

  • เป็นยูสเซอร์อินเทอร์เฟสเข้าสู่ยูทิลิตี้ อาปาเช่ถูกนำไปพัฒนาร่วมกับซอฟต์แวร์ต่าง ๆ มากมายทั้งซอฟต์แวร์เชิงพานิชย์ และฟรีซอฟต์แวร์ เพื่อใช้เป็นอินเทอร์เฟสที่สะดวกต่อการใช้งานยิ่งขึ้น เช่น ซอฟต์แวร์บริหารจัดการโปรแกรมตรวจสอบและกำจัดไวรัส ( ได้แก่ Trend Micro ) ซอฟต์แวร์ช่วยการคอนฟิกและใช้งานลีนุกซ์เซิร์ฟเวอร์ ( ได้แก่ Webmin ,Usermin )
  • เป็นช่องทางแสดงผลข้อมูลระบบและเครือข่าย เนื่องจากอาปาเช่ถูกผนวกเอาไว้กับลีนุกซ์เซิร์ฟเวอร์ทุกดิสทริบิวชั่น หรือ ถ้าเป็นโอเอสอื่น ( Windows ,Mac OS X ) ก็สามารถติดตั้งใช้งานได้ฟรี และสามารถแสดงผลได้ทั้งตัวอักษร รูปภาพ รูปกราฟ ได้โดยตรง จึงมีการนำอาปาเช่มาใช้งานด้านการแสดงผลข้อมูลระบบ และกราฟสถิติต่าง ๆ มากมาย เช่น MRTG ใช้แสดงข้อมูลกราฟที่ได้ข้อมูลจาก Router หรือ SNMP Server โปรแกรม SARG ใช้แสดงตารางสถิติการเข้าชมเว็บไซต์ของผู้ใช้งาน Squid Proxy Server โปรแกรมประเภท Log Analyzer เป็นต้น
  • ใช้เป็น Web Mail ข้อดีของการใช้งานอีเมล์ผ่านทางเว็บบราวเซอร์เป็นสิ่งที่เราต่างทราบกันเป็น อย่างดี อาปาเช่ในฐานะที่เป็น Front-End ของระบบอีเมล์จึงเป็นงานอีกลักษณะหนึ่งที่เรานิยมนำมาใช้งานร่วมกับระบบ Mail Server
  • เป็นอินเทอร์เฟสของแอปพลิเคชั่นเฉพาะทาง มีซอฟต์แวร์เป็นจำนวนมากที่พัฒนาโดยทำงานภายใต้สภาพแวดล้อมที่เรียกว่า Web based Applications ทั้งที่เป็นการพัฒนาขึ้นเพื่อใช้งานในองค์กรโดยเฉพาะ และทั้งที่เป็นซอฟต์แวร์สำเร็จรูป เช่น โปรแกรมประเภท Groupware หรือ Web based collaboration ต่าง ๆ ระบบสนับสนุนสารสนเทศภายในองค์กร เป็นต้น
  • มาใช้ Apache กันเถอะ เป็นอย่างไรบ้างครับ จะเห็นว่าการนำเอาโปรแกรมที่ยอดเยี่ยมอย่าง Apache มาใช้งานเป็นเรื่องที่ทำได้ไม่ยากเลย นอกจากนั้นยังสามารถนำมาใช้ประโยชน์ในองค์กรของคุณได้มากมายเรียกได้ว่า อเนกประสงค์เลยทีเดียว ถ้าคุณคิดจะเริ่มต้นวางระบบเว็บเซิร์ฟเวอร์ในองค์กรของคุณแล้วล่ะก็ขอแนะนำ ให้เริ่มต้นกับลีนุกซ์ และอาปาเช่ แล้วคุณจะเห็นว่าการหยิบเอาโอเพ่นซอฟร์ส / ฟรีซอฟต์แวร์มาใช้งานเป็นโซลูชั่นที่สนองความต้องการขององค์กรได้อย่าง ยั่งยืนกว่า คุ้มค่ากับเวลา และการลงทุนลงแรงของคุณ หากมีข้อแนะนำ สอบถามข้อสงสัยเกี่ยวกับการประยุกต์ใช้งานลีนุกซ์เซิร์ฟเวอร์ของเชิญที่ เว็บบอร์ดของผู้เขียน http://www.itdestination.com/webboard เอกสารอ้างอิง
    - The Apache Software Foundation : http://www.apache.org
    - Web Server Servey : http://news.netcraft.com/archives/web_server_servey.html
    - RHCE Red Hat Certified Engineer Linux Study Guide,Second Edition : Osborne/McGraw-Hill

    ลักษณะทางกายภาพของอาปาเช่

    ลักษณะทางกายภาพของอาปาเช่
    อาปาเช่ถูกสร้างขึ้นจากการนำเอาโปรแกรมขนาดเล็กที่ทำหน้าที่แตกต่าง กันหลายโมดูลมาทำงานร่วมกันเป็นเว็บเซิร์ฟเวอร์ จึงทำให้มีส่วนประกอบเป็นโมดูล ( ที่พัฒนาด้วยภาษาซี ) ส่วนหนึ่งจะเป็นส่วนแกนกลางที่ทำหน้าที่บริหารจัดการทั้งหมด เรียกว่า Core.c โมดูลต่อมาคือ โมดูลที่ทำหน้าที่บริหารหน่วยความจำ ( Memory Management ) และบริหารโปรเซสงานย่อย ( Child Process ) ที่รองรับการให้บริการที่เรียกเข้ามาพร้อม ๆ กันจำนวนมากจากภายนอก ( Multi-Processing Models หรือ MPM ) ซึ่งอาปาเช่มีโมเดลการทำงานด้านนี้รองรับไว้ 3 โมเดลด้วยกัน คือ Workers สำหรับรองรับงานจำนวนมากๆ ในขณะที่ต้องการหน่วยความจำไมามากนัก Prefork สำหรับงานที่ต้องการประสิทธิภาพและความเร็วแต่จะต้องใช้ทรัพยากรระบบมากกว่า และ Per Child ออกแบบมาเพื่อรองรับงานได้แตกต่างกันโดยแยกตามยูสเซอร์ที่ร้องขอบริการเข้า มา ( ขณะนี้อยู่ระหว่างการพัฒนา ) โมดูล http_core.c จะทำหน้าที่รองรับการประมวลผลด้วยโปรโตคอล HTTP ( Hyper Text Transfer Protocol ) ซึ่งจะจัดการกับส่วนเฮดเดอร์ตามมาตรฐาน NCSA และโมดูล mod_so.c จะทำหน้าที่ติดต่อประสานการทำงานโมดูลภายในเข้ากับกับ Shared Modules อื่น ๆ ที่อยู่ภายนอก ซึ่งโมดูลภายนอกเหล่านี้เราเรียกว่า Dynamic Shared Object หรือ DSO จะมีจำนวนมากน้อยก็ขึ้นอยู่กับความต้องการใช้งานของผู้ใช้ โดยจะกำหนดได้ในขณะที่คอมไพล์โปรแกรมอาปาเช่ สำหรับกรณีของ Red Hat 9.0 จะมีการคอมไพล์มาให้เรียบร้อยแล้ว และมีโมดูล DSO ที่มีคุณสมบัติด้านต่าง ๆ เพียงพอต่อการใช้งานทั่วไป เช่น การสนับสนุนภาษาสคริปต์ การทำ Authentication แบบต่าง ๆ การสนับสนุน Server Side Include เป็นต้น โดยในส่วนของแกนกลางหรือ MPM จะเป็นโมเดลแบบ prefork เราสามารถตรวจสอบดูส่วนประกอบของอาปาเช่ได้ด้วยคำสั่งตามรูปที่ 4


    รูปที่ 4 รายชื่อโมดูลที่เป็นส่วนประกอบของอาปาเช่ใน Red Hat 9.0

    โครงสร้างไดเร็คทอรี่ที่สำคัญ ในฐานะผู้ดูแลระบบที่จะต้องคอนฟิก Red Hat Linux ให้ทำหน้าที่เป็นเว็บเซิร์ฟเวอร์ สิ่งที่จำเป็นต้องทราบในเบื้องต้นก็คือ เรื่องไดเร็คทอรี่ของอาปาเช่ ซึ่งแบ่งออกได้ 3 ส่วนใหญ่ ๆ คือ ServerRoot ,DocumentRoot และ ScriptAlias ServerRoot หมายถึง ไดเร็คทอรี่ที่เป็นจุดเริ่มต้นของส่วนประกอบด้านคอนฟิกทั้งหมดของอาปาเช่ สำหรับ Red Hat Linux 9.0 คือที่ /etc/httpd ซึ่งจะแยกออกเป็น build สำหรับการเพิ่มโมดูลเข้าสู่เว็บเซิร์ฟเวอร์ conf เป็นที่เก็บคอนฟิกไฟล์หลักคือ httpd.conf นั่นเอง conf.d เป็นไดเร็คทอรี่ที่ใช้เพิ่มเติมไฟล์คอนฟิกย่อยให้แก่เว็บเซิร์ฟเวอร์เพื่อ ความสะดวกในการปรับแก้คอนฟิกได้สะดวกกว่าการแก้ไขที่ httpd.conf เพียงจุดเดียว logs เป็นไดเร็คทอรี่ที่ใช้เก็บล๊อกไฟล์ที่บันทึกเหตุการณ์ต่าง ๆ ที่เกิดขึ้นกับเว็บเซิร์ฟเวอร์ modules เป็นไดเร็คทอรี่ที่เก็บไฟล์โมดูล DSO ทั้งหมดไว้ และ run เป็นไดเร็คทอรี่ที่เก็บบันทึกหมายเลขโปรเซสของอาปาเช่ไว้เพื่อการควบคุมโป รเซสทั้งจากภายในและภายนอกเซิร์ฟเวอร์เอง โครงสร้างของ ServerRoot
    แสดงดังรูปที่ 5


    รูปที่ 5 โครงสร้างของ ServerRoot

    DocumentRoot เป็นไดเร็คทอรี่ที่ผู้ใช้งานมักจะให้ความสำคัญที่สุด เพราะ document หรือเอกสารภาษา HTML ที่เราต้องการเผยแพร่ผ่านทางเว็บเซิร์ฟเวอร์จะเริ่มต้นแสดงผลเป็นหน้าแรกจาก ไดเร็คทอรี่นี้นั่นเอง หรือจะมองว่าเป็น Home Page เลยก็ได้ สำหรับ Red Hat Linux 9.0 จะกำหนดให้ไดเร็คทอรี่ /var/www/html เป็น DocumentRoot ของอาปาเช่ ซึ่งผู้ดูแลระบบอาจจะไปเปลี่ยนแปลงให้ใช้ไดเร็คทอรี่อื่นทำหน้าที่นี้แทนได้ ตามต้องการ โดยที่สามารถทำได้หลายวิธีซึ่งผู้เขียนจะสาธิตให้เป็นตัวอย่างดังรูปที่ 6 เป็นการกำหนด DocumentRoot ใหม่ไปที่ไดเร็คทอรี่ /itdestination.com โดยสร้างรอไว้ก่อน จากนั้นเปลี่ยนชื่อ /var/www/html ของเดิมที่มากับ Red Hat Linux ไปเป็นชื่อ /var/www/html.original และสุดท้ายจึงใช้ Symbolic Link สร้างจุดเชื่อมโยงชื่อ html ขึ้นแทนที่เพื่อนำเข้าสู่ /itdestination.com เป็นอันเสร็จสิ้นการย้ายตำแหน่งไดเร็คทอรี่ DocumentRoot โดยไม่ต้องแก้ไขคอนฟิกของอาปาเช่เลยแม้แต่บรรทัดเดียว


    รูปที่ 6 สาธิตวิธีการย้ายตำแหน่ง DocumentRoot อย่างรวดเร็ว

    ScriptAlias ไดเร็คทอรี่นี่จะถูกกำหนดให้เป็นที่รันโปรแกรม CGI ( Common Gateway Interface ) โดยเฉพาะซึ่งมีลักษณะเป็นโปรแกรมสคริปต์หรือไบนารี่ก็ได้ที่รันในฝั่ง เว็บเซิร์ฟเวอร์ แล้วจึงส่งผลลัพธ์ของโปรแกรมกลับไปยังหน้าเว็บเพจที่ผู้ชมเว็บเพจอีกครั้ง ( เช่น โปรแกรมนับจำนวนผู้เข้าชมเว็บ ) สำหรับ Red Hat Linux 9.0 จะถูกกำหนดค่าไว้ที่ /var/www/cgi-bin ซึ่งผู้ดูแลระบบจะโยกย้ายไปใช้พื้นที่อื่นได้เช่นเดียวกับ DocumentRoot อย่างไรก็ตามในปัจจุบันโปรแกรมประเภท CGI มีการใช้งานที่ลดน้อยลงไปอย่างเห็นได้ชัด ซึ่งกำลังถูกแทนที่โดยภาษาสคริปต์ประเภท HTML Embedded นั่นเอง

    Apache เว็บเซิร์ฟเวอร์ที่นิยมใช้มากที่สุดในโลก

    อาปาเช่ เป็นเว็บเซิร์ฟเวอร์เพียงหนึ่งเดียวที่อยู่คู่กับระบบปฏิบัติการลีนุกซ์ทุก ดิสทริบิวชั่นมาเป็นเวลาหลายปีแล้ว เช่นเดียวกับลีนุกซ์เรดแฮทที่ได้รวมเอาโปรแกรมอาปาเช่ไว้ในชุดติดตั้งพร้อม ให้เราใช้งานได้ทันที ไม่ต่างอะไรกับบะหมี่สำเร็จรูป แค่เทน้ำร้อนลงไปก็รับประทานได้ทันที จึงไม่ใช่เรื่องยากเลยที่เราจะตั้งเครื่องพีซีซักตัวหนึ่งขึ้นเป็น เว็บเซิร์ฟเวอร์ ให้บริการเว็บได้ทั้ง ระบบอินทราเน็ตภายในองค์กร ไปจนถึงจัดตั้งเว็บไซต์เผยแพร่ข้อมูลไปทั่วโลก และนี่คืออีกหนึ่งการนำเอาลีนุกซ์มาใช้งานที่คุ้มค่าที่สุด สำหรับวันนี้ เว็บเซิร์ฟเวอร์ที่นิยมใช้มากที่สุดในโลก ข้อมูลการสำรวจจากเว็บไซต์ทั่วโลกโดย Netcraft เป็นสิ่งที่ยืนยันถึงจำนวนของอาปาเช่เว็บเซิร์ฟเวอร์ที่มีสัดส่วนการใช้งาน สูงกว่าเว็บเซิร์ฟเวอร์อื่น ๆ อย่างเห็นได้ชัด และยังมีแนวโน้มที่จะเพิ่มสูงมากยิ่งขึ้นอีกด้วย จากจุดเริ่มต้นที่อาศัยโค๊ดจากเว็บเซิร์ฟเวอร์มาตรฐาน NCSA ( องค์กรกลางผู้กำหนดมาตรฐานโปรโตคอล HTTP ,มาตรฐานภาษา HTML และมาตรฐานอื่น ๆ ที่เกี่ยวข้องกับงานบริการบนเว็บทั้งหมด ) พัฒนาอย่างต่อเนื่องด้วยกำลังของชุมชนนักพัฒนาจากทุกมุมโลกผ่านโมเดลการ พัฒนาแบบฟรีซอฟต์แวร์ ภายใต้การกำกับดูแลของ Apache Foundation ( http://www.apache.org ) ทำให้เกิดซอฟต์แวร์เว็บเซิร์ฟเวอร์ที่มีเสถียรภาพการทำงานที่เชื่อถือได้ มีประสิทธิภาพสูง และแข็งแกร่ง จากซอฟต์แวร์ที่เริ่มต้นจากส่วนประกอบเล็ก ๆ หรือ "patches" จำนวนมากมาย จนทำให้ถูกเรียกขานว่า " a patchy " ผ่านช่วงระยะเวลาของการพัฒนามาถึงสิบปี จนกลายมาเป็นเว็บเซิร์ฟเวอร์ที่ได้มาตรฐาน และได้รับความนิยมสูงสุดในวันนี้ อาปาเช่ยังคงความเป็นฟรีซอฟต์แวร์ไว้อย่างมั่นคง กล่าวได้ว่าถึงวันนี้อาปาเช่เป็นแม่แบบของฟรีซอฟต์แวร์ที่ประสบความสำเร็จ แล้วในโลกของความเป็นจริง และเป็นอีกหนึ่งโปรเจคที่ก้าวข้ามพ้นอุปสรรคของโมเดลการพัฒนาแบบฟรี ซอฟต์แวร์ได้สำเร็จแล้ว


    รูปที่ 1 รายงานผลสำรวจเว็บเซิร์ฟเวอร์จาก NetCraft

    สารพัดประโยชน์จากเว็บเซิร์ฟเวอร์ ไม่ว่าจะเป็นเว็บเซิร์ฟเวอร์ชนิดใดก็ตาม คุณประโยชน์ที่จะได้รับย่อมเป็นสิ่งแรกที่เราต้องคำนึงถึง ความหมายสั้น ๆ ของบริการบนเว็บก็คือ มันเป็นวิธีที่ง่ายที่สุดที่จะเผยแพร่เอกสารข้อมูลไปในเครือข่ายคอมพิวเตอร์ เพราะเพียงแค่ผู้ใช้บริการเปิดโปรแกรมเว็บบราวเซอร์ ( ซึ่งมีติดตั้งอยู่ในคอมพิวเตอร์หรือเครื่องมือสื่อสารสมัยใหม่อยู่แล้ว ) ก็จะสามารถเข้าถึงเอกสารเว็บได้โดยอ้างชื่อของเว็บไซต์ ต่อจากนั้นก็จะพบกับเอกสารข้อความ สื่อมัลติมีเดีย บริการดาวน์โหลด และกิจกรรมที่เป็นอินเตอร์แอคทีฟสารพัดได้อย่างง่ายดาย เว็บเซิร์ฟเวอร์จะเป็นศูนย์กลาง หรือจุดเริ่มต้นของการประยุกต์ใช้งานเครือข่ายคอมพิวเตอร์ของคุณได้อย่าง หลากหลาย เริ่มต้นจากการเป็นแหล่งเผยแพร่ข่าวสารในองค์กร เปิดให้บริการอีเมล์ผ่านเว็บ ( Web based Mail Services ) รวมไปถึงการใช้งานแอปพลิเคชั่นผ่านเว็บหรือ Web based Application ที่พัฒนาขึ้นโดยเฉพาะ ซึ่งมีองค์กรเป็นจำนวนมากที่เริ่มหันมาสนใจพัฒนาแอปพลิเคชั่นเฉพาะขององค์กร ในลักษณะเช่นนี้ ทั้งนี้เหตุผลหลักก็คือความต้องการที่จะพัฒนาแอปพลิเคชั่นขึ้นโดยตั้งอยู่บน ระบบโครงสร้างที่เป็นมาตรฐาน ซึ่งจะช่วยลดปัญหาที่จะต้องเผชิญกับการเปลี่ยนแปลงของเทคโนโลยีที่ถูกกำหนด ขึ้นโดยผู้ผลิตซอฟต์แวร์หรือฮาร์ดแวร์รายใหญ่นั่นเอง สำหรับองค์กรที่มีขนาดเล็ก และยังขาดความพร้อมในเรื่องที่จะพัฒนาซอฟต์แวร์ขึ้นใช้งานเอง ก็ยังมีทางเลือกออกอีกมากที่จะนำแอปพลิเคชั่นสำเร็จรูปมาใช้งานร่วมกับ เว็บเซิร์ฟเวอร์ได้เช่นกัน ซึ่งมีโปรเจคในแบบฟรีซอฟต์แวร์ให้เลือกใช้ได้เช่นกัน และส่วนใหญ่จะสามารถใช้ได้เป็นอย่างดีกับอาปาเช่ เนื่องจากความแพร่หลายของอาปาเช่ในหมู่นักพัฒนาซอฟต์แวร์นั่นเอง ติดตั้งคอนฟิกแบบเร่งด่วน ดังที่ได้กล่าวไปแล้วว่าในเรดแฮตลีนุกซ์จะมีโปรแกรมอาปาเช่ เว็บเซิร์ฟเวอร์ เวอร์ชั่น 2.0 ให้มาด้วยแล้ว คุณทราบหรือไม่ว่าขั้นตอนการปลุกให้อาปาเช่ตื่นขึ้นมาทำงานมันเป็นเรื่อง ง่ายยิ่งกว่าการโทรไปสั่งพิซซ่าเสียอีก ถ้าคุณติดตั้งเรดแฮตลีนุกซ์ในแบบเลือกครบทุกแพคเกจ หรือ EveryThing ก็จะมีโปรแกรมนี้พร้อมอยู่แล้วในเครื่องอย่างแน่นอน ซึ่งแพคเกจของโปรแกรมนี้จะชื่อว่า httpd ดังนั้นเราจะลองค้นหาแพคเกจที่ติดตั้งอยู่ในเครื่องได้ด้วยคำสั่ง rpm ดังนี้
    # rpm -qa | grep http
    ถ้ามีแพคเกจนี้เรียบร้อยแล้ว และได้เซ็ตค่าคอนฟิกเกี่ยวกับระบบเครือข่าย TCP/IP แล้ว การสั่งให้อาปาเช่ทำงานจะใช้คำสั่งดังนี้
    # service httpd restart
    # chkconfig --level 35 httpd on
    จะเป็นการสั่งให้บริการของ อาปาเช่ เริ่มทำงานใหม่ ( กรณีที่ไม่เคยเปิดให้บริการมาก่อนจะแจ้ง Fail ขณะ Shutdown จึงถือว่าเป็นเรื่องปรกติ ) ส่วนอีกคำสั่งเป็นการกำหนดให้ อาปาเช่ เริ่มต้นทำงานเองเมื่อเริ่มเปิดเครื่องใหม่โดยอัตโนมัติ ซึ่งตัวบริการของอาปาเช่จะคอยให้บริการที่ TCP port หมายเลข 80 และ 443 ( เป็นโปรโตคอล HTTP และ HTTPS ตามลำดับ ) คำสั่ง netstat จะแสดงให้เห็นการทำงานดังกล่าว


    รูปที่ 2 ตรวจดูพอร์ตของ Apache

    เมื่อเห็นพอร์ต 80 ปรากฏขึ้น แสดงว่าอาปาเช่เริ่มให้บริการแล้ว เมื่อลองเปิดโปรแกรมเว็บบราวเซอร์เข้ามาที่โฮสต์ที่เป็นเว็บเซิร์ฟเวอร์นี้ เช่น ถ้าคุณติดตั้งโปรแกรม Mozilla ไว้ในเครื่องแล้วก็เรียกไปที่ http://localhost ก็จะเห็นหน้า Test Page ที่เรดแฮตสร้างไว้ให้ดังรูปที่ 2 เห็นมั๊ยครับแค่พิมพ์คำสั่งไม่กี่ครั้งก็ทำให้เว็บเซิร์ฟเวอร์เริ่มทำงาน แล้ว


    ที่ 3 หน้า Test Page ของอาปาเช่

    Apache คืออะไร

    Apache คืออะไร


               Apache เป็นแม่ข่ายเว็บ (web server) ที่ให้ใช้ฟรี โดยการใช้ภายใต้การอนุญาตแบบ "open source" ในเวอร์ชัน 1.3 สามารถใช้กับระบบปฏิบัติแบบ UNIX ได้เกือบทั้งหมด ( เช่น Linux, Solaris, Digital UNIX และ AIX) ระบบ UNIX/POSIX (เช่น Rhapsody, BeOS และ BS2000/OSD) ระบบ AmigaOS และบนระบบ Windows NT/95/98 ตามการสำรวจของ Netcraft (www. Netcraft.com) ในเดือนกันยายน 1995 พบว่าแม่ข่ายเว็บมากกว่า 50 % ในเครื่องแม่ข่ายอินเตอร์เน็ตใช้ Apache แต่แม่ข่ายเว็บระบบ windows จาก Microsoft, Netscape และบริษัทฯ อื่น ๆ มีจำนวนผู้ใช้มากกว่า โดย Apache ได้รับความนิยมในกลุ่มเครื่องแม่ข่ายที่ใช้ระบบ UNIX

               Apache คอมไพล์ ด้วยระดับใหม่ที่สุด ของ Hypertext Transfer Protocol, HTTP 1.1

    Apache คืออะไร อาปาเช่ คือ เว็บเซฟเวอร์

    Apache คืออะไร

          Apache คือ Web server พัฒนามาจาก  HTTPD Web Server โดยเจ้า Apache นี้จะทำหน้าที่ในการจัดเก็บ Homepage และส่ง Homepage ไปยัง Browser ที่มีการเรียกเข้า ยัง Web server ที่เก็บ HomePage นั้นอยู่ ซึ่งปัจจุบันจัดได้ว่าเป็น web server ที่มี ความน่าเชื่อถือมาก เนื่องจากเป็นที่นิยมใช้กันทั่วโลก อีกทั้งอาปาเช่ยังเป็นซอฟต์แวร์ แบบ โอเพ่นซอร์ส ที่เปิดให้บุคคลทั่วไปสามารถเข้ามาร่วมพัฒนาส่วนต่างๆ ของอาปาเช่ได้ ซึ่งทำให้เกิดเป็น โมดูล ที่เกิดประโยชน์มากมาย เช่น mod_perl,mod_python หรือ mod_php และทำงานร่วมกับภาษาอื่นได้ แทนที่จะเป็นเพียงเซิร์ฟเวอร์ที่ให้บริการเพียงแค่ HTML อย่างเดียว โดยสามารถหา Download ได้จาก website www.apache.org

          นอกจากนี้อาปาเช่เองยังมีความสามารถอื่นๆ ด้วย เช่น การยืนยันตัวบุคคล

    (mod_auth,mod_access, mod_digest) หรือเพิ่มความปลอดภัยในการสื่อสารผ่าน โปรโตคอล https (mod_ssl) และยังมีโมดูลอื่นๆ ที่ได้รับความนิยมใช้ เช่น mod_vhost ทำให้สามารถสร้างโฮสท์เสมือน ภายในเครื่องเดียวกันได้ หรือ mod_rewrite ซึ่งเป็นเครื่องมือที่จะช่วยให้ url ของเว็บนั้นอ่านง่ายขึ้น ยกตัวอย่างเช่น จากเดิมต้องอ้างถึงเว็บไซต์แห่งหนึ่งด้วยการพิมพ์ http://mydomain.com/board/quiestion.php?qid=2xDffw&action=show&ttl=1187400 แต่หลังจากใช้ mod_rewrite จะทำให้สั้นลงกลายเป็น http://mydomain.com/board/question/how_to_edit_wikipedia_content.html  ซึ่งที่อยู่เหล่านี้จะขึ้นอยู่กับว่าผู้ดูแลเว็บไซต์ ว่าต้องการให้อยู่ในลักษณะใด


    ข้อมูลอ้างอิง
    http://e-learning.yru.ac.th

    Twitter Delicious Facebook Digg Stumbleupon Favorites More