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