WEB HACKING Security Thailand :::::: ::::: :::: ::: :: : : 127.0.0.1
|หน้าหลัก | บทความ | ทฤษฏี| เทคนิค | แนวปฏิบัติ | เครื่องมือ| ภาพ | วิจารณ์ | เนื้อหา | อ้างอิง| Port | กระทู่ | สนทนา | ลิงค์ | รายการCD | Serial : Password

เทคนิคการติดตั้งเว็บเซิร์ฟเวอร์

ปิยะพันธุ์ กำแพงสมบูรณ์

ดาวน์โหลดซอฟต์แวร์และคู่มือ  / ขั้นตอนการติดตั้งโปรแกรม Apache   / ขั้นตอนที่ 1 ขยายไฟล์ (บรรทัดที่ 1-6 ) / ขั้นตอนที่ 2 แตกไฟล์เป็นไดเรกทอรี (บรรทัดที่ 7 - 15)  / ขั้นตอนที่ 3 การคอมไพล์โปรแกรม Apache (บรรทัดที่ 17 - 25)   / ขั้นตอนที่ 4 ติดตั้งโปรแกรม Apache (บรรทัดที่ 26 - 30) / ขั้นตอนที่ 5 ทดสอบรันโปรแกรม Apache (บรรทัดที่ 31 -32) / ขั้นตอนที่ 6 ปรับแต่งโปรแกรม / การสร้างโฮมเพจ / ส่งท้ายบทความ

การติตตั้งเว็บเซิร์ฟเวอร์สำหรับนำข้อมูลของหน่วยงานขึ้นสูงอินเทอร์เน็ต หลายท่านอาจจะคิดว่าเป็นเรื่องที่ยาก แต่จริงๆ แล้วคนทั่วไปก็สามารถทำได้

การนำเอาเทคโนโลยีเข้ามาใช้งานจะทำให้ธุรกิจสามารถก้าวทันเทคโนโลยี จะทำให้ดำเนินธุรกิจได้อย่างรวดเร็ว สามารถตอบสนองความต้องการของลูกค้า ประหยัดงบประมาณในการบริหารงาน เทคโนโลยีที่ได้รับความนิยมในการประยุกต์ใช้กับอินเทอร์เน็ตก็คือเทคโนโลยีด้านคอมพิวเตอร์และการสื่อสาร ซึ่งก็จะหนี้ไม่พ้นเทคโนโลยีของอินเทอร์เน็ต แต่ปัญหาส่วนใหญ่ของธุรกิจต่าง ๆ ก็คือขาดบุคลากรที่มีความรู้ความสามารถทางด้านอินเทอร์เน็ต จึงต้องพึ่งพาบริษัทให้พัฒนาเทคโนโลยีให้ ซึ่งก็รวดเร็วดีแต่ก็ต้องทุมงบประมาณจำนวนมากในการติดตั้งและใช้งานระบบอินเทอร์เน็ต ตัวอย่างที่เห็นได้ชัดก็คือ การติตตั้งเว็บเซิร์ฟเวอร์สำหรับนำข้อมูลของหน่วยงานขึ้นสูงอินเทอร์เน็ต หลายท่านอาจจะคิดว่าเป็นเรื่องที่ยากและเป็นเทคโนโลยีที่ปิด มีคนบางกลุ่มเท่านั้นที่สามารถทำได้ แต่ในความเป็นจริงแล้วการติดตั้งเว็บเซิร์ฟเวอร์นั้นไม่ได้ยากอย่างที่คิด คนทั่วไปก็สามารถทำได้

ท่านผู้อ่านเคยสงสัยบ้างหรือไม่ว่าเครื่องเซิร์ฟเวอร์ที่ทำหน้าที่เก็บข้อมูลในอินเทอร์เน็ตหรือที่เรียกว่าเว็บเซิร์ฟเวอร์นั้นเขาติดตั้งกันอย่างไร ไม่ยากหรอกครับวันนี้เราจะมาทำความเข้าใจกับวิธีการติดตั้งเว็บเซิร์ฟเวอร์กัน

การที่จะทำให้เครื่องคอมพิวเตอร์กลายเป็นเว็บเซิร์ฟเวอร์นั้นก็จะเพียงแต่ติดตั้งซอฟต์แวร์ที่เรียกว่า "เว็บเซิร์ฟเวอร์" ลงในเครื่องคอมพิวเตอร์เท่านั้นเครืองคอมพิวเตอร์ก็จะกลายเป็นเว็บเซิร์ฟเวอร์แล้ว ซอฟต์แวร์ที่นิยมใช้ในการทำเว็บเซิร์ฟเวอร์นั้นก็คือ Apache ครับ เป็นโอเพนซอร์สหรือซอฟต์แวร์ที่แจกจ่ายฟรีพร้อมซอร์สโค้ด จากสถิติที่สำรวจโดย http://www.netcraft.com/survey นั้น เว็บเซิร์ฟเวอร์ต่าง ๆ จะติดตั้งโปรแกรม Apache 56.5 เปอร์เซ็นต์ และติดตั้ง IIS (Microsoft Internet Information Server) 30.75 เปอร์เซ็ตที่เหลือก็เป็นซอฟต์แวร์อื่น ๆ จะเห็นได้ว่า Apache ซึ่งเป็นโอเพนซอร์สนั้นได้รับความนิยมมากกว่าซอฟต์แวร์ที่ต้องเสียค่าลิขสิทธิ์เสียอีก

รูปที่ 1 เว็บเพจสถิติการใช้งานซอฟต์แวร์เว็บเซิร์ฟเวอร์ http://netscaft.com/servey

พอบอกว่าเป็นโอเพนซอร์สซึ่งสามารถดาวน์โหลดไปติดตั้งและใช้งานได้ฟรี หลาย ๆ ท่านก็อาจจะไม่มั่นใจไม่แน่ใจว่าของฟรีนั้นจะทำงานได้ดีหรือไม่ ก็ต้องบอกว่าของฟรีที่ดีก็มีครับ โอเพนซอร์สนั้นจะมีกลุ่มคนที่ช่วยกันพัฒนาทั่วโลก กลุ่มคนเหล่านี้แม้จะไม่ได้รับค่าตอบแทนจากการสร้างโอเพนซอร์สแต่ก็จะได้รับการยกย่องโดยการระบุชื่อไว้ว่าเป็นคนพัฒนาซอฟต์แวร์ซึ่งก็คุ้มค่าครับ เรียกว่าได้กล่องแต่ยังไม่ได้เงิน แต่กล่องหรือชื่อเสียงที่ได้จากการพัฒนาโอเพนซอร์สนี่แหละครับจะทำให้กลุ่มบุคคลเหล่านี้ได้รับสิ่งอื่นตอบแทนตามมา

Apache เป็นซอฟต์แวร์โอเพนซอร์สที่ใช้ทำเว็บเซิร์ฟเวอร์ที่มีประสิทธิ์ภาพมากสามารติดตั้งได้ทั้งบนระบบปฏิบัติการ วินโดวส์ ยูนิกส์ และ ลีนุกซ์ โดยขั้นตอนในการติดตั้งนั้นจะมีดังนี้

1. ดาวน์โหลดซอฟต์แวร์และคู่มือ

2. ติดตั้งซอฟต์แวร์

3. นำโฮมเพจขึ้นไปไว้ในบนเว็บเซิร์ฟเวอร์

เรามาลองติดตามดูขั้นตอนการติดตังเว็บเซิร์ฟเวอร์นะครับ ซึ่งผู้เขียนจะแสดงถึงขั้นตอนและวิธีการโดยละเอียดของการติดตั้งโปรแกรม Apache บนระบบปฏิบัติการลีนุกซ์ที่แจกจ่ายโดยบริษัทRedHat

กลับด้านบน

ดาวน์โหลดซอฟต์แวร์และคู่มือ

รูปที่ 2 เว็บไซต์ http://www.apache.org

ซอฟต์แวร์ Apache นั้นเราไม่ต้องไปซื้อหาที่ไหนหรอกครับ สามารถดาวน์โหลดซอฟต์แวร์ Apache ได้โดยตรงที่เว็บไซต์ของซอฟต์แวร์ Apache เอง(www.Apache.com) โดยให้เรียกโฮมเพจไปที่ http://www.apache.org/dist/httpd แต่ถ้าจะให้สะดวกให้ดาวน์โหลดจากไซต์อื่น ๆ (mirror sites) ได้ซึ่งเว็บไซต์ที่ให้บริการดาวน์โหลด Apache อยู่ทั่วโลก เราสามารถดูรายชื่อเว็บไซต์เหล่านี้ได้จาก http://www.apache.org/dyn/closer.cgi หลาย ๆ ท่านเวลาเข้าไปถึงเว็บไซต์ที่ให้ดาวน์โหลดซอฟต์แวร์แล้วจะงง ๆ เพราะว่าซอฟต์แวร์ตัวเดียวมีไฟล์ให้ดาวน์โหลดตั้งหลายไฟล์หลายรุ่น ตามปรกติแล้วซอฟต์แวร์ที่ให้ดาวน์โหลดในระบบอินเทอร์เน็ตนั้นจะแยกเป็นรุ่น ๆ ดังนี้

  • รุ่นให้ทดลองใช้ (Beta), เป็นซอฟต์แวร์รุ่นใหม่ที่ผ่านการทดสอบจากผู้พัฒนาแล้วแต่ยังไม่มั่นใจในการในการใช้งานจะอนุญาตให้ผู้ใช้ทั่ว ๆ สามารถดาวน์โหลดไปลองใช้งานดูได้ แต่มีข้อแม้อยู่เล็กน้อยในการดาวน์โหลดรุ่นนี้ไปใช้งานก็คือไม่รับประกันการใช้งาน แต่ถ้ามีข้อผิดพลาดเกิดขึ้นก็สามารถแจ้งกลับไปให้แก้ไขได้ ยังไม่แนะนำให้ดาวน์โหลดรุ่นนี้ไปใช้งาน

  • รุ่นประกาศให้ใช้งานจริง (Releases), เป็นซอฟต์แวร์รุ่นที่ผ่านการทดสอบจากทั้งผู้พัฒนาและผู้ใช้งานแล้วจนมั่นใจว่ามีประสิทธิดีเพียงพอแล้วจึงประกาศให้ใช้งาน ในฐานะผู้ใช้งานแล้วเราจะดาวน์โหลดรุ่นที่ประกาศให้ใช้งานจริงนี้มาใช้งาน

  • รุ่นเก่า (old), เป็นรุ่นที่เคยประกาศให้งานไปแล้วละมีรุ่นให้ที่ประกาศให้ใช้งานจริงทดแทนก็จะเก็บรุ่นเก่าไว้ให้ผู้ใช้งานสามารถดาวน์โหลดไปใช้งานด้วย เนื่องจากอาจจะมีบ้างโปรแกรมที่ต้องอ้างอิงหรือสามารถติดตั้งได้เฉพาะบางรุ่นเท่านั้น

ขณะที่เขียนบทความนี้(กุมภาพันธ์ 2545) Apache อยู่รุ่นที่ประกาศให้ใช้งานจริงคือรุ่น 1.3.23 ซึ่งเราจะดาวน์โหลดรุ่นมาติดตั้งกัน

ดาวน์โหลดคู่มือ

รูปที่ 3 เว็บไซต์สำหรับดาวโหลดคู่มือ

งานแรกที่ต้องทำในการติดตั้งก็คือต้องหาคู่มือก่อน ซึ่งก็ไม่ต้องไปซื้อไปหาที่ไหนหรอกครับ ดาวน์โหลดได้จากอินเทอร์เน็ตที่ http://www.apache.org/dist/httpd/apache-1.3.23-docs.pdf.zip เป็นไฟล์ที่ในรูปแบบ pdf ครับขนาดประมาณ 4 เมกกะไบต์ ขอแนะนำให้อ่านจากเครื่องคอมพิวเตอร์จะดีกว่า ผู้เขียนเคยพิมพ์ออกมาแล้วมีเนื้อถึง 529 หน้า เรียกว่าอ่านกันตาแฉะไปเลย แต่ไม่ต้องกังวลครับผู้เขียนจะสรุปมาให้จบในบทความนี้ครับ

ดาวน์โหลดโปรแกรม Apache

ตัวอย่างการติดตั้งในบทความนี้จะเป็นการติดตั้งบนลีนุกซ์ซึ่งเป็นโอเพนซอร์ส ให้ดาวน์โหลดไฟล์ที่ชื่อ apache-1.3.23.tar.gz ซึ่งเป็นซอร์สโค้ดของโปรแกรม Apache รุ่น 1.2.23 ที่อยู่ในรูปแบบของการรวมไดเรกทอรีเป็นไฟล์เดียวแล้วและบีบอัดข้อมูลไว้

สำหรับท่านผู้ใช้งานที่จะดาวน์โหลดไปใช้งานกับระบบปฏิบัติการโซลาสิสให้ดาวน์โหลดแพท(patch)ไปติดตั้งเพิ่มเติมด้วยโดยดาวโหลดที่http://www.apache.org/dist/httpd/patches/apply_to_1.3.23/solaris-apache-1.3.23.patch

เมื่อได้ซอฟต์แวร์และคู่มือเรียบร้อยแล้วก็ลุยกันเลยครับ

Solaris Specific Patch for Apache 1.3.23 Available
There is a bug in the current Apache 1.3.23 code that affects Solaris systems using the default accept() mutex method (pthreads). If you are a Solaris user, there are two options available to you. You can either use the AcceptMutex directive to use the sysvsem or fcntl method, or download the following patch and rebuild Apache to force it to link in the required pthread calls. This will be fixed in Apache 1.3.24.

กลับด้านบน

ขั้นตอนการติดตั้งโปรแกรม Apache 

ขั้นตอนการติดตั้งโปรแกรม Apache โดยสรุปจะมีดังนี้

1. ขยายไฟล์

2. แตกไฟล์เป็นไดเรกทอรี

3. คอมไพล์โปรแกรม Apache

4. ติดตั้งโปรแกรม Apache

5. ทดสอบรันโปรแกรม Apache

6. ปรับแต่งโปรแกรม Apache

ลองดูรายละเอียดหน้าจอการคอมไพล์และการติดตั้งของแต่ละขั้นตอนในรูปที่ 4 นะครับ

รูปที่ 4 แสดงขั้นตอนการคอมไพล์และติดตั้งโปรแกรม Apache

ในรูปที่ 4 หมายเลขข้างหน้าคือ หมายเลขบรรทัดที่แสดงผลที่หน้าจอ ส่วนลูกศรที่ชี้ก็คือคำสั่งที่ป้อนลงไป ถ้าท่านผู้อ่านไม่สนใจรายละเอียดอะไรก็พิมพ์ตามทุกบรรทัดที่มีลูกศรชี้ไปเรื่อย ๆ ก็ติดตั้งและใช้งานเว็บเซิร์ฟเวอร์ได้แล้วครับ แต่ถ้าจะให้ดีผู้เขียนว่าเรามาศึกษาถึงรายละเอียดในแต่ละขั้นตอนกันดีกว่า

กลับด้านบน

ขั้นตอนที่ 1 ขยายไฟล์ (บรรทัดที่ 1-6 )

ก่อนอื่นให้เราก็อปปี้โปรแกรมที่ดาวน์โหลดมารวบรวมไว้ที่เดียวกันเพื่อความเป็นระเบียบเรียบร้อย ผู้เขียนจะสร้างไดเรกทอรี /usr/local/src ไว้สำหรับเก็บซอร์สโค้ดของโปรแกรมต่าง ๆ ที่ดาวน์โหลดมาติดตั้ง

บรรทัดที่ 1 ย้ายไดเรกทอรีมายังไดเรกทอรีที่เก็บซอร์สโค้ดของ Apache ซึ่งในที่นี้ก็คือ /usr/local/src
บรรทัดที่ 2 ใช้คำสั่ง ls เพื่อเรียกดูรายชื่อไฟล์
บรรทัดที่ 3 แสดงรายชื่อไฟล์ apache-1.3.23.tar.gz ซึ่งเป็นไฟล์ที่ถูกบีบอัดข้อมูลไว้
บรรทัดที่ 4 ใช้คำสั่ง gunzip เพื่อขยายไฟล์ที่ถูกบีบอัดไว้ออกมาใช้งาน
บรรทัดที่ 5 ใช้คำสั่ง ls เพื่อเรียกดูรายชื่อไฟล์
บรรทัดที่ 6 แสดงรายชื่อไฟล์ apache-1.3.23.tar จะสังเกตุว่านามสกุล .gz นั้นหายไปแล้ว กลายเป็นไฟล์ธรรมดาที่ไม่ได้ถูกบีบอัดข้อมูล

ในระบบปฏิบัติการยูนิกส์จะมีการบีบอัดข้อมูลหลายประเภทแต่ที่นิยมกันมากที่สุดก็คือบีบอัดในอยู่ในรูป .gz โดยการใช้โปรแกรม gzip สำหรับบีบอัดไฟล์ ก็คล้าย ๆ กับโปรแกรม WinZip ของวินโดวส์ ถ้าเรามีไฟล์ ชื่อ data.txt เราก็จะใช้คำสั่ง "gzip data.txt" ไฟล์ data.txt ก็จะถูกบีบอัดข้อมูลและเปลี่ยนชื่อใหม่เป็น data.txt.gz คือชื่อไฟล์เหมือนเดิมแต่ต่อท้ายด้วย .gz จะสังเกตได้ว่าชื่อไฟล์ในระบบปฏิบัติการยูนิกส์นั้นมีจุดได้หลายจุด เราจะถือว่าจุดท้ายสุดคือนามสกุลของไฟล์นั้น ๆ ตัวอย่างเช่นในที่นี้ไฟล์ชื่อ data.txt.gz ก็จะถือว่าเป็นไฟล์ที่มีนามสกุลเป็น .gz

กลับด้านบน

ขั้นตอนที่ 2 แตกไฟล์เป็นไดเรกทอรี (บรรทัดที่ 7 - 15)

หลังจากที่ขยายไฟล์ออกมาจนได้ไฟล์ apache-1.3.23.tar แล้ว เราก็จะแตกไฟล์ที่มีนามสกุลเป็น .tar นี้ให้เป็นไดเรกทอรี โดยใช้คำสั่ง tar ซึ่งมีรายละเอียดในขั้นตอนนี้ดังนี้

บรรทัดที่ 7 ใช้คำสั่ง "tar xvf apache-1.3.23.tar" เพื่อแตกไฟล์ให้เป็นไดเรกทอรรี
บรรทัดที่ 8 - 13 เป็นหน้าจอบางส่วนของการทำงานของคำสั่ง tar
บรรทัดที่ 14 ใช้คำสั่ง ls เพื่อตรวจดูรายชื่อไฟล์/ไดเรกทอรี
บรรทัดที่ 15 แสดงรายชื่อไฟล์/ไดเรกทอรีสองชื่อคือ apache-1.3.23 และ ไฟล์ apache-1.3.23.tar ซึ่งชื่อ apache-1.3.23 ก็คือไดเรกทอรีที่แตกออกมาจากไฟล์ apache-1.3.23.tar

ไฟล์ที่มีนามสกุลเป็น .tar คือไฟล์ที่เกิดจากการรวมไฟล์หรือไดเรกทอรีที่มีไฟล์ มีไดเรกทอรีย่อย ๆ อยู่ภายใน ให้รวมเป็นไฟล์เดียว เพื่อสะดวกต่อการจัดเก็บ แต่การรวมไดเรกทอรให้เป็น ไฟล์เดียวนี้จะไม่มีการบีบอัดข้อมูล จะรวมไดเรกทอรีเป็นไฟล์เฉย ๆ จากนั้นจึงจะใช้โปรแกรม gzip บีบอัดข้อมูลอีกครั้ง

ตัวอย่างเช่น ไดเรกทอรี data มีไฟล์ย่อยอยู่สามไฟล์คือ data1.txt, data2.txt, data3.txt เมื่อเรารวมไดเรกทอรีให้เป็นไฟล์ด้วยคำสั่ง "tar cvf data.tar data" จะหมายถึงการรวมไฟล์ย่อยทั้งหมดที่อยู่ในได้เรกทอรี data ให้เป็นไฟล์เดียวชื่อ data.tar ซึ่งไฟล์นี้จะเก็บไฟล์ data1.txt, data2.txt และ data3.txt ไว้ภายในด้วย ซึงไฟล์ apache-1.3.23.tar ก็เช่นเดียวกันจะมีไฟล์ที่รวมไดเรกทอรีและไฟล์ไว้ จึงต้องแตกออกมาก่อน

กลับด้านบน

ขั้นตอนที่ 3 การคอมไพล์โปรแกรม Apache (บรรทัดที่ 17 - 25)   

โปรแกรที่เราแตกออกมาเป็นไดเรกทอรีแล้วนั้นยังเป็นโปรแกรมที่ไม่สามรถใช้งานได้ เนื่องจากเป็นซอร์สโค้ดเราจะต้องนำซอร์สโค้ดมาคอมไพล์ให้เป็นโปรแกรมสำหรับใช้งานก่อน สาเหตุที่เป็นดังนี้ก็เพราะว่า ผู้พัฒนาต้องการให้เกิดความยืดหยุ่นในการแจกจ่ายซอฟต์แวร์ คือเขียนครั้งเดียวให้สามารถใช้งานได้กับระบบปฏิบัติการหลาย ๆ ระบบ โดยโปรแกรมประเภทโอเพนซอร์สนี้จะพัฒนาด้วยภาษาที่เป็นกลางเช่นภาษาซี แล้วแจกซอร์สโค้ดให้ผู้ใช้งานนำไปคอมไพล์บนเครื่องของตนเองด้วยตัวแปลภาษาของเครื่องนั้น ๆ ด้วยเหตุนี้โปรแกรมที่แจกจ่ายซอร์สโค้ดจึงสามารถทำงานได้บนทุกระบบปฏิบัติการที่มีตัวแปรภาษาแบบเดียวกับภาษาที่ใช้พัฒนา สำหรับโปรแกรม Apache นั้นสามารถคอมไพล์ได้บนระบบปฏิบัติการดังต่อไปนี้

ระบบปฏิบัติการที่สามารถคอมไพล์โปรแกรม Apache ได้

Linux

FreeBSD

OpenBSD

NetBSD

Digital Unix

SounOS

Solaris

IRIX

HPUX

DGUX

UnixWare

AIX

SCO

ReliantUNIX

Darwin/Mac OS

OpenStep/Mach

DYNIX/ptx

BSDI

เป็นอย่างไรครับเรียกว่า สามารถคอมไพล์ได้เกือบทุกระบบปฏิบัติการ (บางระบบปฏิบัติการผู้เขียนเองก็ยังพึ่งเคยได้ยินเหมือนกัน :> ) นอกจากระบบปฏิบัติการที่สามารถคอมไพล์โปรแกรม Apache ได้แล้วก็จะมีไบนารีไฟล์ของระบบปฏิบัติการต่าง ๆ ที่คอมไพล์ไว้ให้แล้วอีกด้วยสามารถนำไปติดตั้งได้ทันทีโดยไม่ต้องคอมไพล์อีกอย่างเช่นระบบปฏิบัติการวินโดวส์ เป็นต้น

ขั้นตอนในการคอมไพล์หรือแปรภาษาของโปรแกรม Apache

บรรทัดที่ 17 คำสั่ง Configure เป็นคำสั่งที่ใช้ตรวจสอบสภาวะแวดล้อมของระบบปฏิบัติการและกำหนดเงื่อนไขในการคอมไพล์โปรแกรม
บรรทัดที่ 18-21 เป็นบางส่วนหน้าจอของคำสั่ง Configure ขณะที่ทำงาน ข้อความที่ปรากฏบนหน้าจอจะต้องไม่แสดงข้อผิดพลาด
บรรทัดที่ 22 ป้อนคำสั่ง make ซึ่งเป็นคำสั่งทีใช้ในการคอมไพล์โปรแกรม
บรรทัดที่ 23 - 25 เป็นบางส่วยของหน้าจอคำสั่ง make ต้องระวังไม่ให้มีข้อผิดพลาดเกิดขึ้น

ชนิดของข้อผิดพลาด

เรามาทำความเข้าใจเกี่ยวกับชนิดของข้อผิดพลาดระหว่างการคอมไพล์โปรแกรมกันหน่อยครับ ระหว่างการคอมไพล์โปรแกรมนั้นจะมีข้อผิดพลาดเกิดขึ้งสองอย่างคือ Warning และ Error

Warning เป็นข้อผิดพลาดเล็กน้อยของโปรแกรมเช่นมีการใช้พารามิเตอร์ในการคอมไพล์ที่ไม่จำเป็น หรือมีการประกาศตัวแปรไว้ซ้ำกัน หรือมีการประกาศตัวแปรบางชนิดไว้แล้วไม่มีการใช้งาน ฯลฯ ข้อผิดพลาดในลักษณะนี้สามารถมองข้ามได้ ซึ่งโปรแกรมจะแสดงข้อผิดพลาดเหล่าเป็นการเตือนเฉย ๆ และทำการคอมไพล์ต่อไปจนจบกระบวนการ ข้อความเตือนนี้จะเกิดขึ้นเป็นประจำสำหรับการคอมไพล์ซอฟต์แวร์โอเพนซอร์สเนื่องจากตัวแปรภาษาบนแต่ละระบบปฏิบัติการไม่เหมือนกันทีเดียวร้อยเปอร์เซ็นต์ จึงมีข้อผิดพลาดบ้างแต่ไม่กระทบกับการทำงาน

Error เป็นข้อผิดพลาดขั้นรุนแรงที่ไม่สามารถคอมไพล์โปรแกรมได้ เมื่อเกิดข้อผิดพลาดในลักษณะนี้เครื่องจะหยุดการคอมไพล์ทันที เหตุการณ์ Error เหล่านี้ได้แก่ มีการเรียกใช้ฟังก์ชันที่ไม่มีอยู่ในคอมไพล์เลอร์, ไม่สามารถคอมไพล์ตามพารามิเตอร์ที่ป้อนได้, ตัวแปรภาษาไม่รู้จักคำสั่งที่กำหนด ฯลฯ ความผิดพลาดเหล่านี้ระบบปฏิบัติการจะไม่สามารถทำงานต่อไปได้ โดยส่วนใหญ่แล้วมักจะเกิดเมื่อเรานำซอร์สโค้ดไปคอมไพล์บนระบบปฏิบัติการอื่นหรือคอมไพล์ด้วยตัวแปลภาษาที่ผิดจากที่ผู้สร้างโปรแกรมได้แนะนำไว้

ความต้องการพื้นฐานเพื่อคอมไพล์โปรแกรม

เนื้อที่ของฮาร์ดดิสก์

โปรแกรม Apache จะใช้เนื้อที่ในการคอมไพล์ประมาณ 12 เมกกะไบต์สำหรับการทำงานและหลังจากคอมไพล์เรียบร้อยแล้วจะใช้เนื้อที่ของฮาร์ดดิสก์ ประมาณ 3 เมกกะไบต์เท่านั้น ซึ่งเนื้อที่บนฮาร์ดดิสก์นี้จะขึ้นอยู่กับออปชันของการคอมไพล์ด้วยว่าจะเลือกออปชันหรือโหลดโมดูลมากน้อยเพียงไหน จะเห็นได้ว่าใช้เนื้อที่บนฮาร์ดดิสก์น้อยกว่าซอฟต์แวร์ลิขสิทธิ์หลาย ๆ ตัวมาก

คอมไพล์เลอร์ภาษา C

ในการคอมไพล์โปรแกรม Apache นี้จะใช้คอมไพล์เลอร์ที่รองรับมาตราฐาน ANSI-C เช่น GNU C compiler (GCC) ของ Free Software Foundation รุ่น 2.7.2 ขึ้นไป ซึ่งสามารถดาวโหลดได้จาก http://www.gun.org แต่ถ้าใช้คอมไพล์เลอร์ตัวอื่นที่ไม่ใช่ GCC เช่น CC ก็จะต้องรองรับมาตราฐาน ANSI-C ด้วย

คอมไพล์เลอร์ภาษา Perl

โปรแกรม Apache สามารถทำงานกับโปรแกรมอื่น ๆ ได้ซึ่งหลยโปรแกรมมักจะต้องคอมไพล์เลอร์ภาษา Perl ด้วย แนะนำให้ติดตั้ง คอมไพล์เลอร์ภาษา Perl รุ่น 5.003 ขึ้นไป

การกำหนดพารามิเตอร์ในการคอมไพล์แบบพิเศษ

Apache สามารถคอมไพล์ได้หลากหลายรูปแบบมาก ซึ่งสามารถปรับแต่งการคอมไพล์ให้เหมาะสมกับสภาพการทำงานของเราได้โดยการกำหนดออปชันในการคอมไพล์ แต่ถ้าเราป้อนคำสั่ง ./configure โดยไม่กำหนดออปชันหรือพารามิเตอร์ใด ๆ เพิ่มเติม โปรแกรม configure จะกำหนดค่าพารามิเตอร์เหล่านี้ให้เองโดยอัตโมมัติ เช่นไดเรกทอรีเริ่มต้นของการติดตั้งโปรแกรมจะกำหนดให้เป็น /user/local/apache แต่ถ้าเราต้องการติดตั้งโปรแกรม apache ที่ได้เรกทอรีอื่นก็สามารถกำหนดออปชันเพิ่มเติมให้คำสั่ง ./configure ได้ดังนี้

#./configure - -prefix=PREFIX

โดยที่ PREFIX คือไดเรกทอรีเริ่มต้นสำหรับการติดตั้งโปรแกรม Apache ตัวอย่างเช่นถ้าเราต้องการติดตั้งโปรแกรม Apache ในลงในไดเรกทอรี /Apache แทนที่จะเป็น /usr/local/apache ก็ให้ใช้คำสั่งในการคอมไพล์ดังนี้

#./configure - -prefix=/Apache

ในกรณีที่ต้องการเพิ่มโมดูลต่าง ๆ เข้าไปใน Apache ก็ให้เพิ่มตอนใช้คำสั่ง ./configure เช่น

./configure - -prefix=/usr/local/apache \
- -enable-module=rewrite - -enable-shared=rewrite \
- -enable-module=proxy - -enable-shared=proxy

การโหลดโมดูลก็คือการกำหนดให้ Apache รองรับการฟังก์ชันการทำงานพิเศษแบบต่าง ๆ แต่ถ้าต้องการโหลดฟังก์ชันการทำงานทุกอย่างก็ให้ใช้พารามิเตอร์สำหรับคำสั่ง ./configure เป็น

./configure - -enable-module=all --enable-shared=max

การกำหนดออปชันอย่างนี้ไม่ค่อยดีเท่าไรเพราะขนาดของโปรแกรมที่คอมไพล์แล้วจะใหญ่มาก จะใช้เวลาโหลดนาน (แต่ผู้เขียนเองก็ใช้บ่อยเวลาทดสอบโปรแกรม Apache แล้วไม่ทราบว่าต้องโหลดอะไรบ้างก็โหลดมาทั้งหมด) เราควรโหลดโมดูลต่าง ๆ เท่าที่จำเป็นในการใช้งาน

โมดูลของ Apache มีอยู่เป็นจำนวนมาก มีทั้งโมดูลที่พัฒนาโดยทีมงานของ Apaceh เองและโมดูลที่พัฒนาโดยคนอื่น เราสามารถตรวจสอบรายชื่อโมดูลต่าง ๆ ได้ที่ http://www.apache.org/dist/httpd/contrib/modules/ การโหลดโมดูลนี้จะช่วยให้เราสามารถทำงานได้สะดวกขึ้น คงจะต้องไว้กล่าวถึงในโอกาสต่อ ๆ ไป

กลับด้านบน

ขั้นตอนที่ 4 ติดตั้งโปรแกรม Apache (บรรทัดที่ 26 - 30)

โปรแกรม Apache จะทำการติดตั้งโปรแกรมที่คอมไพล์แล้ว สร้างไฟล์และไดเรกทอรีที่เกี่ยวข้องให้เรียบร้อยด้วยคำสั่ง make install

กลับด้านบน

ขั้นตอนที่ 5 ทดสอบรันโปรแกรม Apache (บรรทัดที่ 31 -32)

 Apache จะมีโปรแกรมย่อยหลายตัวที่ช่วยในการทำงานด้วย ดังต่อไปนี้

httpd

Apache hypertext transfer protocol server, เป็นโปรแกรมสำหรับทำหน้าที่เป็นเว็บเซิร์ฟเวอร์

apachectl

Apache HTTP server control interface, เป็นโปรแกรมสำหรับควบคุมการทำงานของเว็บเซิร์ฟเวอร์เช่นเริ่มต้นการทำงาน หยุดการทำงาน ทดสอบคอนฟิคกูเรชันไฟล์ ฯลฯ

ab

Apache HTTP server benchmarking tool, เป็นโปรแกรมสำหรับวัดประสิทธิภาพของเว็บเซิร์ฟเวอร์

apxs

APache eXtenSion tool, เป็นโปรแกรมเสริมเพิ่มสำหรับ Apache

dbmmanage

Create and update user authentication files in DBM format for basic authentication, เป็นโปรแรกมสำหรับจัดการเกี่ยวกับสิทธิ์ ของผู้ใช้งานในรูปแบบ DBM

htdigest

Create and update user authentication files for digest authentication, เป็นโปรแกรมสำหรับการจัดการสิทธิ์สำหรับ digest authentication

htpasswd

Create and update user authentication files for basic authentication, เป็นโปรแกรมสำหรับการจัดการสิทธิ์ของผู้ใช้งานขั้นพื้นฐานในรูปแบบรหัสผ่านของยูนิกส์

logresolve

Resolve hostnames for IP-addresses in Apache logfiles, โปรแกรมสำหรับการจัดการระบบโดเมนเนมในล็อกไฟล์ของโปรแกรม Apache

rotatelogs

Rotate Apache logs without having to kill the server, โปรแกรมสำหรับจัดการล็อกไฟล์ไม่ให้รบกวนการทำงานของเซิร์ฟเวอร์

การทำงานหลักของโปรแกรม Apache จะทำงานด้วยโปรแกรม httpd ซึ่งทำหน้าที่เป็นเว็บเซิร์ฟเวอร์ สำหรับการรันโปรแกรม Apache เพื่อทดสอบให้ใช้คำสั่ง

#/usr/local/apache/bin/apachectl start

โปรแกรม apachectl นี้จะเป็นสคริปต์สำหรับการเรียกใช้งานโปรแกรม httpd อีกทีหนึ่ง

ขั้นตอนที่ 6 ปรับแต่งโปรแกรม

เมื่อติดตั้งโปรแกรม Apache เรียบร้อยแล้ว Apache จะพร้อมสำหรับการใช้งานในระดับหนึ่งเท่านั้น ซึ่งเราสามรถปรับแต่เพิ่มเติมภายหลังการคอมไพล์ได้โดยการแก้ไขไฟล์ที่เกี่ยวข้อง 3 ไฟล์คือ

  • /usr/local/apache/conf/httpd.conf

  • /usr/local/apache/conf/srm.conf

  • /usr/local/apache/conf/access.conf

ไฟล์ httpd.conf จะเป็นการปรับแต่งเซิร์ฟเวอร์ทั่วไปเช่น หมายเลขพอร์ตที่ใช้งาน ชื่อผู้ใช้งานที่จะรันโปรแกรมนี้ และไฟล์ srm.conf จะเป็นการปรับแต่งเกี่ยวกับไดเรกทอรีและฟังก์ชันพิเศษ ส่วนไฟล์ access.conf จะเป็นการจัดการเกี่ยวกับสิทธิ์ในการเรียกดูข้อมูล รายละเอียดในแต่ละไฟล์คงต้องยกไว้ในตอนต่อ ๆ ไปแล้วละครับ
การสตาร์ทโปรแกรม Apache

โปรแกรมเว็บเซิร์ฟเวอร์จะทำงานเป็นแบ็คกราวโพเซสหรือทำงานอยู่เบื้องหลังอยู่ตลอดเวลา โดยโปรแกรมหลักที่ชื่อ httpd จะถูกรันไว้เพื่อคอยควบคุมการติดต่อรับส่งข้อมูลที่ พอร์ท 80 (เราสามารถเปลี่ยนแปลงได้โดยการแก้ไขที่ไฟล์ httpd.conf) การสตาร์ทโปรแกรมนั้นสามารถทำได้สองวิธีคือ เรียกโปรแกรม Apache โดยตรงด้วยคำสั่ง

#/usr/local/apache/bin/httpd -f /usr/local/apache/conf/httpd.conf

ฟังก์ชัน -f มีไว้ระบุไฟล์คอนฟิกกูเรชันของโปรแกรม Apache ซึ่งสามารถกำหนดเป็นไฟล์อื่นได้ ส่วนวิธีที่สองคือการเรียกผ่านโปรแกรม apchectl ดังนี้

#/usr/local/apache/bin/apachectl start

ถ้าหากการทำงานไม่มีปัญหาอะไรการเรียกคำสั่งนี้จะกินเวลาไม่กี่วินาทีแล้วก็จะคืนพร็อมมาให้ และเมื่อมีคนเรียกโฮมเพจก็จะแสดงไฟล์ที่อยู่ในไดเรกทอรี /usr/local/apache/htdocs ซึ่งเป็นไดเรกทอรีสำหรับเก็บโฮมเพจ

ปัญหาในการสตาร์ทโปรแกรม Apache

ถ้ามีข้อผิดพลาดในการสตาร์ทโปรแกรม Apache เกิดขึ้นเราสามารถดูรายละเอียดความผิดพลาดในการสตาร์ทโปรแกรมได้ที่ไฟล์ ErrorLog สำหรับข้อผิดพลาดที่พบบ่อยก็คือ

  • สตาร์ทด้วยยูสเซอร์ที่ไม่มีสิทธิ์ในการรันโปรแกรม

  • สตาร์ทโปรแกรม Apache ซ้ำหรือ มีโปรแกรมอื่นใช้งานพอร์ทชนกัน

การสตาร์ทโปรแกรม Apache อัตโนมัติเมื่อเปิดเครื่อง

ถ้าเราต้องการให้โปรแกรม Apache สตาร์ทอัตโนมัติเวลาเปิดเครื่องใหม่ ก็ให้เราป้อนคำสั่งในการสตาร์ทโปรแกรม Apache ไว้ที่ไฟล์ rc.local ในไดเรกทอรี /etc โดยเพิ่มบรรทัดนี้เข้าไปที่ท้ายไฟล์

/usr/local/apache/bin/apachectl start

การหยุดและรีสตาร์ทโปรแกรม Apache

เราสามาถหยุดและรีสตาร์ทโปรแกรมได้โดยการจัดการกับโพเซสของโปรแกรม Apache คือยกเลิกโพเซส httpd และรีสตาร์ท httpd ใหม่ แต่วิธีที่สะดวกที่สุดก็คือหยุดและรีสตาร์ทผ่านโปรแกรม apachectl โดยมีคำสั่งดังนี้

  • หยุดโปรแกรม Apache

/usr/local/apache/bin/apachectl stop

  • รีสตาร์ทโปรแกรม Apache

/usr/local/apache/bin/apacheclt restart

กลับด้านบน

การสร้างโฮมเพจ

 เมื่อทำการติดตั้งและทดสอบการใช้งานโปรแกรม Apache เรียบร้อยแล้ว ให้สร้างเว็บเพจแล้วก็อปปี้มาไว้ในไดเรกทอรี /usr/local/apache/htdocs ก็เป็นอันเรียบร้อยครับ

กลับด้านบน

ส่งท้ายบทความ

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

SE-ED/hacking

กลับด้านบน

URL:http://se-ed.net/hacking Email: hacking@se-ed.net IE.5.x  800x600 16bit
หน้าหลัก | บทความ | ทฤษฏี| เทคนิค | แนวปฏิบัติ | เครื่องมือ| วิจารณ์ | เนื้อหา | อ้างอิง| Port | กระทู่ | สนทนา | ลิงค์ | รายการCD