เก่ง Apache ให้ครบสูตร

ผู้เขียน: บรรพต ดลวิทยากุล
ISBN: 974-94179-9-2
จำนวนหน้า: 336 หน้า
ขนาด: 21 x 29.7 ซม.
รูปแบบหนังสือ: หนังสือขาวดำ
แถม CD

ราคาปก: 325 บาท
ราคาสั่งซื้อ: 280 บาท
ส่งหน้านี้ให้เพื่อน  


    ครบทั้งสูตร LAMP และสูตร WAMP
    อ่านได้ทั้งผู้ดูแล Apache ในระบบ Unix/Linux และ Apache ในระบบ Windows

    รวบรวมรายละเอียดเกี่ยวกับวิธีการบริหารเว็บเซิร์ฟเวอร์อย่างสมบูรณ์ ทั้ง Apache 2.0.x และ Apache 1.3.x อาทิ...
  • วิธีตั้งค่าคอนฟิกที่สำคัญ และใช้งานบ่อยๆ ตลอดจนการเพิ่มลูกเล่นด้วยโมดูลต่างๆ ที่น่าสนใจ
  • วิธีจัดการ Log File ทั้ง Access Log ซึ่งเก็บข้อมูลการทำงาน และ Error Log ซึ่งเก็บข้อมูลความผิดพลาด
  • วิธีรักษาความปลอดภัยของข้อมูลด้วยเทคนิค Access Control, Authentication ไปจนถึงเทคโนโลยี SSL
  • วิธีการแก้ไขสารพัดปัญหาจากการทำงานของ Apache ไปจนถึงเทคนิคการดูแลและปรับแต่ง Apache ให้ทำงานอย่างมีประสิทธิภาพสูงสุด
  • เติมเต็ม LAMP และ WAMP ด้วยการติดตั้งภาษาสคริปต์ทั้ง PHP และ Perl ไปจนถึงระบบฐานข้อมูล MySQL
  • แถมด้วยวิธีการใช้งานโปรแกรม FTP Server ตัวเก่ง ทั้ง vsftpd สำหรับ Apache ใน Unix/Linux และ GuildFTPd สำหรับ Apache ใน Windows

หนังสือเล่มนี้เหมาะสำหรับใครบ้าง

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

จะอ่านหนังสือเล่มนี้ควรรู้อะไรมาก่อนบ้าง

  • มีความรู้เกี่ยวกับการใช้งานระบบ Windows หรือ Unix/Linux (แล้วแต่ว่าคุณจะใช้ Apache กับระบบไหน) อย่างน้อยในระดับ System Administrator เบื้องต้น ซึ่งสิ่งที่ควรรู้มีอาทิ ระบบไฟล์, ระบบการจัดการยูสเซอร์, ระบบการจัดสรรไดเรกทอรี, ระบบการจัดการสิทธิต่างๆ, การตั้งค่าไอพีแอดเดรส ฯลฯ
  • มีความรู้เกี่ยวกับการใช้งานอินเทอร์เน็ต เช่น การใช้เบราเซอร์, การใช้โปรแกรมจำพวก FTP Client ฯลฯ
  • มีความรู้เกี่ยวกับระบบเน็ตเวิร์ก เช่น เรื่องเกี่ยวกับไอพีแอดเดรส, LAN, อินเทอร์เน็ต, พอร์ต, DNS ฯลฯ
  • เนื้อหาบางบทจะกล่าวถึงภาษา HTML, PHP, Perl, SQL อยู่บ้าง ดังนั้น ถ้ามีความรู้เกี่ยวกับภาษาเหล่านี้ อย่างน้อยในขั้นพื้นฐาน ก็จะช่วยให้เข้าใจบทเหล่านั้นได้ดียิ่งขึ้น

จะทดลองปฏิบัติจริงตามหนังสือเล่มนี้ ควรมีอะไรบ้าง

  • เครื่องพีซีหรือเซิร์ฟเวอร์ ความเร็วอย่างต่ำ 600 MHz สำหรับระบบ Windows หรืออย่างต่ำ 200 MHz สำหรับระบบ Unix/Linux
  • สำหรับผู้ที่ต้องการใช้ Apache ในระบบ Windows ก็ควรติดตั้ง Windows 98 ขึ้นไป เอาไว้ในเครื่อง ถ้าเป็น Windows 2000, XP หรือใหม่กว่า จะดีที่สุด
  • สำหรับผู้ที่ต้องการใช้ Apache ในระบบ Unix หรือ Linux ก็ควรติดตั้ง Unix หรือ Linux เวอร์ชันไหนก็ได้ เอาไว้ในเครื่อง (การทดลองจริงและแสดงตัวอย่างตามที่ปรากฏในหนังสือเล่มนี้ ผู้เขียนใช้ Linux ตระกูล RedHat เป็นหลัก)
  • โปรแกรมเว็บเซิร์ฟเวอร์ Apache และตัวแปลภาษาสคริปต์ต่างๆ รวมทั้งระบบฐานข้อมูล MySQL (ทั้งหมดนี้บรรจุอยู่ในแผ่นซีดีที่มาพร้อมกับหนังสือแล้ว)


บทนำ ทำไมต้องมีเว็บเซิร์ฟเวอร์

  • ความเป็นมาของ Apache
  • เปรียบเทียบจุดเด่นจุดด้อยของ Apache กับ IIS
  • จาก LAMP จนถึง WAMP
  • กฎ-กติกา-มารยาท ก่อนอ่าน
    • หนังสือเล่มนี้เหมาะสำหรับใครบ้าง
    • จะอ่านหนังสือเล่มนี้ควรรู้อะไรมาก่อนบ้าง
    • จะทดลองปฏิบัติจริงตามหนังสือเล่มนี้ ควรมีอะไรบ้าง
  • มีอะไรบ้างในแผ่นซีดีที่มาพร้อมกับหนังสือ

บทที่ 1 กลไกการทำงานและวิธีติดตั้ง Apache

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

  • ทำความเข้าใจกลไกการทำงานของ Apache
  • เตรียมเครื่องให้พร้อมก่อนติดตั้ง
    • ระบบ Windows
    • ระบบ Unix/Linux
    • สิ่งที่ควรทราบก่อนติดตั้ง
  • เริ่มติดตั้ง Apache Web Server
    • ระบบ Windows
    • ระบบ Unix/Linux
  • ตั้งค่าไดเรกทีฟพื้นฐานให้ใช้งานได้
  • พิสูจน์ว่า Apache ทำงานได้แล้วจริงหรือเปล่า
  • ติดตั้งเป็นเซอร์วิสใน Windows เพื่อสะดวกแก่การควบคุม

บทที่ 2 ตั้งค่าไดเรกทีฟก่อนใช้งานจริง

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

  • ค่าคอนฟิก 3 ส่วนในไฟล์ httpd.conf
  • สำรวจเซ็กชัน Global Environment
    • ตั้งค่าคอนฟิกเกี่ยวกับ MPM
    • ไดเรกทีฟที่ควรรู้จักเพื่อตั้งค่าให้เหมาะสม
  • ไล่มาถึงเซ็กชัน Main Server Configuration
    • DefaultType = ระบุประเภทข้อมูลของไฟล์ที่ Apache ไม่รู้จัก
    • ErrorDocument = เปลี่ยนเว็บเพจการแจ้ง Error
    • Redirect = เปลี่ยน URL ปลายทาง
    • Alias = ตั้งชื่อแฝงของไดเรกทอรี เพื่อให้สามารถใช้ไฟล์ที่อยู่นอก DocumentRoot
    • UserDir = จัดสรรพื้นที่สร้างโฮมเพจส่วนตัวให้แก่ยูสเซอร์

บทที่ 3 เวอร์ชวลโฮสต์ใน Apache

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

  • รู้จักกับโฮสต์หลักและเวอร์ชวลโฮสต์
  • ทำความเข้าใจโครงสร้างการทำงาน
  • ขั้นตอนการทำงานที่เกี่ยวข้องกับแท็ก <VirtualHost>
  • รู้จักไดเรกทีฟ Listen ให้ปรุโปร่ง
  • ตัวอย่างการกำหนดแท็ก <VirtualHost> หลากหลายกรณี
  • ไดเรกทีฟ DocumentRoot และ ServerName ที่ขาดไม่ได้
  • แท็ก <VirtualHost> เดียวรองรับหลายชื่อก็ได้
  • ระวังสับสนในการระบุพอร์ต * กับการไม่ระบุพอร์ตหรือระบุพอร์ต 80
  • เวอร์ชวลโฮสต์ชนิด IP-Based กับชนิด Name-Based
    • ความแตกต่างในแง่การตั้งค่าคอนฟิก
    • ความแตกต่างในแง่การทำงาน
  • ค่าคอนฟิกของ MPM แบบ Perchild ในแท็ก <VirtualHost>
  • สิ่งที่ควรรู้เพิ่มเติมในการตั้งค่าคอนฟิกของ MPM แบบ Perchild

บทที่ 4 เพิ่มโมดูล เพื่อเพิ่มลูกเล่นที่น่าสนใจ

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

  • จะเพิ่มโมดูลใน Apache ต้องทำอย่างไร
    • กรณีของ Apache ใน Windows
    • กรณีของ Apache ใน Unix/Linux
    • เลือกวิธีคอมไพล์ตอนปรับแต่งซอร์ซโค้ดด้วย configure
  • โมดูล mod_autoindex = แสดงรายชื่อไฟล์โดยอัตโนมัติ
    • ใช้ Options Indexes ระบุขอบเขตของ autoindex
    • ใช้ IndexOptions กำหนดลักษณะการแสดงรายชื่อไฟล์
    • ใช้ AddIconByType หรือ AddIcon เปลี่ยนรูปไอคอน
    • ใช้ AddDescription เขียนคำอธิบายไฟล์เพิ่มเติม
  • โมดูล mod_status = ติดตามสถานะของ Apache ผ่านเว็บไซต์
    • 1 แท็ก + 2 ไดเรกทีฟที่ขาดไม่ได้
    • ตั้งค่าไดเรกทีฟ ExtendedStatus ให้เปิดเผยข้อมูล
    • กำหนดขอบเขตการทำงานด้วยแท็ก <Location>
    • ใช้ไดเรกทีฟ SetHandler สั่งให้แฮนเดลอร์ทำงาน
    • อีกหลายอย่างที่ควรรู้ไว้เพิ่มเติม
  • โมดูล mod_include = เพิ่มความสามารถด้วยการเขียนสคริปต์ SSI
    • ฟิลเตอร์ INCLUDES กลั่นกรองสคริปต์ SSI
    • ใช้ AddOutputFilter สั่งให้ฟิลเตอร์ทำงาน
    • แท็ก <Files> หรือ <FilesMatch> + SetOutputFilter = AddOutputFilter
    • ทดลองเขียนสคริปต์ SSI ของจริง
    • รู้จักแท็กคำสั่งของสคริปต์ SSI

บทที่ 5 เจาะลึกข้อมูล Access Log + Error Log

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

  • ไฟล์เก็บข้อมูล Log มี 2 ประเภท
  • ไฟล์ Access Log = LogFormat + CustomLog
    • ระบุตัวแปรเพื่อกำหนดรูปแบบการบันทึกข้อมูล Access Log
    • โฮสต์ใครโฮสต์มัน แยกบันทึกข้อมูล Access Log ไม่ปะปนกัน
    • ทดลองเปลี่ยนรูปแบบการบันทึกข้อมูล Access Log
    • ต้องใช้ SetEnvIf ร่วมกับ CustomLog เพื่อกำหนด "เงื่อนไขการบันทึก"
  • Piped Log ป้องกันปัญหาขนาดไฟล์ + การบันทึกข้อมูลล่าช้า
    • อาศัย Log Processor เป็นตัวกลางรวบรวมข้อมูลก่อนบันทึก
    • ลองใช้โปรแกรม Rotatelogs เป็น Log Processor
    • ระบุขนาดไฟล์เพื่อป้องกันปัญหาชนเพดาน 2 GB
    • ใช้โปรแกรม Logresolve เป็น Log Processor บ้าง
    • ผนึกกำลัง Rotatelogs ร่วมกับ Logresolve
  • จัดระเบียบข้อมูล Access Log ด้วย Log Analyzer
    • Webalizer เน้นการแสดงรายงานเป็นกราฟิก
    • Analog สู้กราฟิกไม่ได้ แต่รายงานละเอียดกว่า
  • ไฟล์ Error Log = LogLevel + ErrorLog
  • สิ่งที่เหมือนและสิ่งที่แตกต่างของ Access Log กับ Error Log

บทที่ 6 ติดตั้ง PHP และ Perl ให้รันสคริปต์ได้ใน Apache

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

  • ติดตั้งแบบ CGI กับแบบโมดูลต่างกันตรงไหน
  • เริ่มต้นที่ภาษา PHP แบบโมดูลก่อน
    • กรณีของ Windows
    • 4 ขั้นตอนแก้ไขค่าคอนฟิกใน php.ini
    • 2 ขั้นตอนแก้ไขค่าคอนฟิกใน httpd.conf
    • เขียนสคริปต์ทดสอบการทำงานจริงกับ Apache
    • กรณีของ Unix/Linux
  • ถึงคิวทดลองภาษา Perl แบบ CGI บ้าง
    • กรณีของ Windows
    • กรณีของ Unix/Linux
  • ปิดท้ายกับการทดลองภาษา Perl แบบโมดูล
    • กรณีของ Windows
    • กรณีของ Unix/Linux

บทที่ 7 เติมเต็ม LAMP และ WAMP ด้วย MySQL

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

  • เริ่มต้นติดตั้ง MySQL
    • กรณีของ Windows
    • กรณีของ Unix/Linux
  • หลากไฟล์ + หลายวิธี -> รัน MySQL
  • เปลี่ยนชื่อผู้ดูแลระบบเพื่อความปลอดภัย
  • แก้ Character Encoding ให้เป็นภาษาไทย
  • ใช้ phpMyAdmin ช่วยให้จัดการ MySQL สะดวกขึ้น

บทที่ 8 อารักขา Apache ให้ปลอดภัย

ระบบปกป้องความปลอดภัยของข้อมูล เป็นดัชนีบ่งชี้ความอยู่รอดของเว็บไซต์ในโลกอินเทอร์เน็ต เนื้อหาในบทนี้จะแจกแจงเทคนิคการรักษาความปลอดภัยของข้อมูล 2 วิธี ทั้งวิธีการควบคุมแหล่งที่มาของผู้ชมเว็บหรือผู้ที่จะเข้ามาใช้บริการเว็บไซต์ (Access Control) และวิธีการยืนยันตัวตนของผู้ชมเว็บหรือผู้ที่เข้ามาใช้บริการเว็บไซต์ ว่าเป็นบุคคลที่ได้รับอนุญาตให้ใช้บริการจริง (Authentication)

  • Access Control = ควบคุมว่าจะให้ไคลเอนต์จากไหนดูเว็บได้บ้าง
    • อนุญาตด้วย Allow และไม่อนุญาตด้วย Deny
    • ระบุ Order เพื่อควบคุมลำดับของ Allow และ Deny
    • ผลต่อเนื่องที่มองไม่เห็นของการระบุ Order
  • 2 กรณีที่ต้องใช้ Access Control บ่อยๆ
  • Authentication + Authorization + Accounting = ตรวจสอบตัวตนผู้ชมเว็บ
  • Authentication + Authorization ทำงานอย่างไร
  • 2 แบบ 2 วิธีของ Basic Authentication
  • Basic Authentication แบบเก็บลงไฟล์
    • ใช้ htpasswd สร้างไฟล์เก็บรายชื่อยูสเซอร์
    • ส่ง WWW-Authenticate เพื่อให้ตรวจสอบตัวตนผู้ชมเว็บ
    • ระบุ Require user แทน Require valid-user เพื่อจำกัดยูสเซอร์
  • Basic Authentication แบบเก็บลงฐานข้อมูล
    • เพิ่มโมดูลติดต่อกับฐานข้อมูล
    • สร้างฐานข้อมูลและตารางเก็บชื่อยูสเซอร์+รหัสผ่าน
    • เปลี่ยน AuthUserFile เป็นชุดไดเรกทีฟเกี่ยวกับฐานข้อมูลแทน
  • Digest Authentication แก้ไขจุดอ่อนของ Basic Authentication
    • ทำความเข้าใจการทำงานของ Digest Authentication
    • Digest Authentication ต้องอาศัยโมดูล mod_auth_digest
    • สร้างไฟล์เก็บรายชื่อยูสเซอร์ด้วย htdigest
    • ใช้ไดเรกทีฟ AuthDigestFile ระบุไฟล์เก็บรายชื่อยูสเซอร์
  • สิ่งที่ควรรู้เพิ่มเติมทั้งวิธี Basic และวิธี Digest
  • ให้ Access Control และ Authentication + Authorization ทำงานร่วมกัน

บทที่ 9 HTTP ยังปลอดภัยไม่พอ ต้อง HTTPs จะชัวร์กว่า

เทคนิคการรักษาความปลอดภัยแบบ Access Control และ Authentication คงไม่เพียงพอ เพราะอาจจะมีผู้ไม่ประสงค์ดีมาดักเก็บข้อมูลที่มีการรับ-ส่งกันระหว่างทาง เราจึงต้องอาศัยเทคนิค SSL มาช่วยเสริมอีกอย่าง โดยการเข้ารหัสข้อมูลก่อนส่ง ดังนั้น ถึงแม้ว่าข้อมูลของเราจะถูกดักเก็บไป ผู้ไม่ประสงค์ดีย่อมไม่สามารถนำข้อมูลนั้นไปใช้งานอะไรได้

  • หลักการสร้าง Session Key จาก SSL Handshake
  • คำเตือน 7 กรณีจากหน้าต่าง Security Alert
  • ทำความรู้จัก OpenSSL และโมดูล mod_ssl
  • ติดตั้ง OpenSSL และ mod_ssl ใน Unix/Linux
  • เปิดใช้ SSL ให้แก่ Apache ใน Unix/Linux
    • สร้าง Certificate รับรองเว็บไซต์
    • กำหนดชุดไดเรกทีฟเกี่ยวกับ SSL
  • ติดตั้ง OpenSSL และ mod_ssl ใน Windows
  • เปิดใช้ SSL ให้แก่ Apache ใน Windows
    • สร้าง Certificate รับรองเว็บไซต์
    • กำหนดชุดไดเรกทีฟเกี่ยวกับ SSL
  • ทดสอบร้องขอ URL ด้วย HTTPS
  • Chain File กับไดเรกทีฟ SSLCertificateChainFile
  • จะทำอย่างไร เมื่อ...
    • Certificate หมดอายุ
    • ต้องการตั้งค่าให้เบราเซอร์เชื่อถือ CA

บทที่ 10 เสริม FTP Server ให้แก่ Apache

หลังจากพัฒนาเว็บแอปพลิเคชันเสร็จแล้ว ผู้พัฒนาจะต้องส่งไฟล์เว็บแอปพลิเคชันต่างๆ มายังเว็บเซิร์ฟเวอร์ผ่านทาง FTP ดังนั้น FTP Server จึงเป็นเสมือนคู่แฝดของเว็บเซิร์ฟเวอร์ ที่เราจะต้องติดตั้ง เพิ่มเข้าไป เพื่อให้มันทำงานร่วมกัน และ FTP Server ที่จะมาแนะนำในบทนี้ ได้แก่ GuildFTPd (สำหรับ Windows) และ vsftpd (สำหรับ Unix/Linux) ซึ่งเป็นของฟรีที่มีประสิทธิภาพสูงเยี่ยม

  • GuildFTPd = ของฟรีและของดีที่ใช้กับ Windows
    • หน้าต่างหลักแบ่งเป็น 4 เฟรม
    • สร้างยูสเซอร์ได้ตั้งแต่ Anonymous จนถึง Administrator
    • กำหนด Access Control ให้แก่ยูสเซอร์
    • ตั้งค่าคอนฟิกสำหรับยูสเซอร์
    • แล้วจะยึดถือค่าคอนฟิกค่าไหนกันล่ะ?
    • แต่งตั้งโฮมไดเรกทอรีประจำยูสเซอร์
    • เปลี่ยนข้อความที่แสดงในสถานการณ์ต่างๆ แก่ยูสเซอร์
    • ทดสอบ FTP Server จากฝั่ง FTP Client
  • vsftpd = FTP Server ตัวเก่งของ Unix/Linux
    • ใช้ยูสเซอร์ของ Unix/Linux เป็นยูสเซอร์ของ FTP Server
    • ตัวแปร 3 ประเภทสำหรับตั้งค่าคอนฟิก
    • ทดสอบการรัน vsftpd เป็นเซอร์วิส

บทที่ 11 Apache สวมบท Proxy Server

นอกจากทำหน้าที่เป็นเว็บเซิร์ฟเวอร์แล้ว Apache ยังสามารถจำลองตัวเองเป็น Proxy Server ทั้งในลักษณะ Forward Proxy และ Load Balancer ได้อีกด้วย ถึงแม้ว่าประสิทธิภาพในการทำงานอาจจะสู้ Squid ซึ่งเป็นโปรแกรม Proxy Server อันดับหนึ่งไม่ได้ก็ตาม แต่นับว่าเหลือเฟือเกินพอสำหรับองค์กรขนาดเล็กที่มีการใช้งาน Proxy ไม่มากนัก

  • Proxy Server มี 2 ลักษณะ
    • Forward Proxy อยู่ทางฝั่งไคลเอนต์
    • Reverse Proxy อยู่ทางฝั่งเซิร์ฟเวอร์
  • ติดตั้ง mod_proxy + mod_proxy_http
  • ตั้งค่าคอนฟิกสำหรับ Forward Proxy
    • ใช้ไดเรกทีฟ ProxyRequests กับ ProxyVia และแท็ก <Proxy>
    • วิธีสกัดกั้นบางไคลเอนต์ไม่ให้เปิดเว็บต้องห้าม
    • วิธีสกัดกั้นทุกไคลเอนต์ไม่ให้เปิดเว็บต้องห้าม
    • ใช้ ProxyBlock สกัดกั้นทุกไคลเอนต์แทนแท็ก <Proxy>
    • ใช้ NoProxy ให้ไคลเอนต์ต่อสายตรงถึงเว็บไซต์ โดยไม่ต้องผ่าน Forward Proxy
  • ทดสอบการทำงานของ Forward Proxy
  • ตั้งค่าคอนฟิกสำหรับ Reverse Proxy
    • ข้อแตกต่างของไดเรกทีฟ ProxyPass กับ ProxyPassReverse
    • ทำความเข้าใจจากตัวอย่าง

บทที่ 12 สารพันปัญหา ล้วนมีวิธีแก้ไข

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

  • ปัญหาที่ทำให้คอมไพล์หรือรัน Apache ไม่ได้
    • คอมไพล์ Apache ไม่ผ่าน [Unix/Linux]
    • รัน Apache ไม่ได้ [Windows] [Unix/Linux]
    • Can't Bind to Port xx [Unix/Linux]
    • Can't Bind to Port xx Port xx is already in use. [Windows]
    • Apache ไม่ยอมทำงาน โดยไม่แจ้ง Error ออกมา [Windows] [Unix/Linux]
  • ปัญหาจากความผิดพลาดในการทำงานของ Apache
    • Apache ไม่ตอบสนองการร้องขอ [Windows] [Unix/Linux]
    • ติดต่อผ่านพอร์ต SSL ไม่ได้ [Unix/Linux]
    • แสดงเนื้อความภาษาไทยในเว็บเพจไม่ได้ [Windows] [Unix/Linux]
  • ปัญหาจาก PHP และ CGI
    • สคริปต์ CGI ไม่ทำงาน [Windows] [Unix/Linux]
    • PHP แจ้งว่าขาดไฟล์ php4apache2.dll (หรือ php5apache2.dll) [Windows]
    • หาไฟล์ .dll บางไฟล์ของ PHP ไม่พบ ทั้งๆ ที่ก๊อบปี้ไปแล้ว [Windows]
    • หา mod_ssl ไม่พบ ทั้งๆ ที่ติดตั้งแล้ว [Windows]
    • PHP ไม่แสดง Error หรือผลลัพธ์ใดๆ ทางเบราเซอร์ เมื่อเกิด Run-time Error [Windows]
    • บันทึกข้อมูลลงไฟล์ไม่ได้ ถึงแม้ตั้งค่า Permission แล้ว [Unix/Linux]
  • ปัญหาเกี่ยวกับ MySQL
    • รัน winmysqladmin.exe แล้วแจ้งว่าไม่พบไฟล์ libmysql.dll [Windows]
    • Too many connection error. [Windows] [Unix/Linux]
  • เทคนิคป้องกันปัญหาเพื่อความไม่ประมาท
    • แบ่งค่าคอนฟิกเป็นหลายไฟล์ เพื่อมิให้ไฟล์ httpd.conf ยาวเกินไป
    • ไฟล์ .htaccess ช่วยตั้งค่าคอนฟิกแยกตามไดเรกทอรี
    • อย่าลืมใส่ใจดูแลขนาดไฟล์ Log บ้าง
  • เทคนิคง่ายๆ เพื่อเพิ่มประสิทธิภาพการทำงาน
    • FollowSymLinks ช่วยให้ทำงานเร็วขึ้น
    • ควรงดเรียกใช้ไดเรกทีฟ HostNameLookUps
    • ตั้งค่า TimeOut ให้เหมาะสม

ภาคผนวก ก โมดูลภายในที่พ่วงมากับ Apache 2.0

  • ชื่อ 2 แบบ 2 ลักษณะของโมดูล
  • สถานะ 3 แบบ 3 ลักษณะของโมดูล

ภาคผนวก ข MIME Type ที่ใช้กันทั่วไป

ภาคผนวก ค Regular Expression กับ Pattern Matching

ภาคผนวก ง สารพัดเว็บไซต์ที่ควรรู้จัก

  • เว็บไซต์เกี่ยวกับ Apache
  • เว็บไซต์เกี่ยวกับระบบ Unix/Linux
  • เว็บไซต์อื่นๆ ที่น่าสนใจ

ดัชนี