หากเวลารันเว็บเซิร์ฟเวอร์ apache เซอร์วิส httpd แล้วต้องรอนานกว่าจะสตาร์ตได้ หรือขึ้นข้อความ error แบบนี้
[root@cent6 ~]# service httpd start Starting httpd: httpd: apr_sockaddr_info_get() failed for cent6.example.com httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName [ OK ] [root@cent6 ~]#
จากที่ได้ ติดตั้งเว็บเซิร์ฟเวอร์ Apache และ ติดตั้งโปรแกรมภาษาเว็บ PHP บน Apache เรียบร้อยแล้ว
ขั้นตอนต่อไปก็เป็นรัน Apache Web Server ขึ้นมาเพื่อให้ใช้งานได้
ในบทความนี้จะอธิบายการรันหรือสตาร์ต Apache Web Server บน CentOS 6.2 โดยจะใช้คำสั่ง service เพื่อสะดวกในการจัดการ กล่าวถึงวิธีการแก้ไขคอนฟิกเบื้องต้น และเมื่อทดสอบเรียบร้อยแล้ว ก็จะใช้คำสั่ง chkconfig เพื่อเวลาตอนบู๊ตเครื่องจะได้รันเซอร์วิสเว็บเซิร์ฟเวอร์ขึ้นมาโดยอัตโนมัติ
วิธีการหนึ่งสำหรับคนที่ต้องการมีเว็บไซต์บนอินเตอร์เน็ตเป็นของตัวเอง คือใช้บริการ Web Hosting
เคยสงสัยไหมว่า ผู้ให้บริการต้องมีเซิร์ฟเวอร์กี่เครื่อง เพื่อจะรองรับเว็บไซต์หรือโดเมนเนมของลูกค้าจำนวนมากได้
โดยทั่วไป ผู้ให้บริการ Web Hosting อาจมีเซิร์ฟเวอร์เพียงไม่กี่เครื่องเท่านั้น โดยแต่ละเครื่องสามารถคอนฟิกเพื่อให้รองรับจำนวนเว็บไซต์ได้เป็นหลักร้อย หลักพัน หรือเคยได้ยินมาว่าบางที่ ที่ค่าบริการถูกมากๆ มีจำนวนเว็บไซต์ต่อเครื่องถึงหลักหมื่นเลยทีเดียว
วิธีการที่คอนฟิกเว็บเซิร์ฟเวอร์เพื่อให้สามารถรองรับได้หลายเว็บไซต์หรือโดเมน โดยพื้นฐานแล้วก็คือการใช้ VirtualHost นั่นเอง
บทความนี้จะอธิบายวิธีการคอนฟิก Apache VirtualHost บน Fedora 16
เมื่อลูกค้าขอให้ดูเรื่องความปลอดภัยของเว็บไซต์เป็นพิเศษ เลยต้องจัดเต็มซะหน่อย
จากที่เคยปิดคุณสมบัติ SELinux เพื่อแก้ปัญหา Directory Permissions Unwritable มาแล้วในบทความ แก้ไข permission ไฟล์หลังการติดตั้ง Joomla 2.5
ครั้งนี้ขอปรับปรุงใหม่ ด้วยการเปิดคุณสมบัติ SELinux ไว้ แล้วแก้ไข security context ของไดเร็คทอรีที่มีปัญหา เพื่อให้สามารถเขียนไฟล์ได้
จาก ติดตั้ง Apache SSL Web Server หากเราต้องการสร้าง self-signed SSL Certificate ขึ้นมาใช้เอง เช่นภายในบริษัท อาจต้องการใส่ข้อมูลบางอย่างลงไป เพื่อให้ผู้ใช้งานดูได้เบื้องต้น สามารถทำได้โดยใช้คำสั่ง openssl
ข้อมูลที่กรอกในคำสั่ง openssl นี้จะถูกเก็บไว้ใน Certificate ที่สร้างขึ้น โดยผู้ใช้สามารถดูได้ใน Browser
หลายๆ เว็บไซต์ เช่น facebook เริ่มเปลี่ยนการเข้าเว็บจาก http มาเป็น https ทั้งเว็บไซต์ ด้วยเหตุผลเรื่องความปลอดภัย เพื่อเข้ารหัสข้อมูล (encryption) ป้องกันการดักจับข้อมูลส่วนตัว รหัสผ่าน รูปภาพ ข้อความ หรือข้อมูลอื่นๆ
หลังจากปล่อยเว็บเซิร์ฟเวอร์ (Apache Web Server) ให้ทำงานไว้นานมากหลายปี ได้เวลาปรับปรุงเป็นเวอร์ชั่นล่าสุด เพื่อประสิทธิภาพ และเพื่อความปลอดภัย
แต่ปัญหาคือเครื่องจะปรับปรุงนี้ รัน httpd ไว้หลายโปรเซส หลายพอร์ตมาก ทำให้เริ่มงงว่า โปรเซสไหน รันจาก httpd ไฟล์ไหน ใช้คอนฟิก httpd.conf ที่ไหน
โดยดีฟอลต์คอนฟิกของ Apache เว็บเซิร์ฟเวอร์ที่ติดตั้งมากับลีนุกซ์เวอร์ชั่นต่างๆ จะเปิด (enable) การใช้งานโมดูลต่างๆ ทั้งหมด ทั้งนี้เพื่อสะดวกและง่ายต่อการเริ่มต้นใช้งาน
แต่การใช้งานจริงๆ ในระบบ production แนะนำให้ปิด (disable) คอนฟิกของโมดูลที่ไม่ได้ใช้งาน ทั้งนี้เพื่อประโยชน์ทางด้านความปลอดภัย (security) และประหยัดหน่วยความจำ Memory ที่ต้องถูกใช้งานโดยเปล่าประโยชน์ด้วย (แนะนำให้ใช้คำสั่ง ps เปรียบเทียบขนาด memory ที่ใช้ก่อนและหลังการปิดโมดูล)
บทความนี้ได้รวบรวมจัดกลุ่มโมดูลตามลักษณะการใช้งาน ซึ่งถ้าคุณไม่ได้ใช้คุณสมบัติในโมดูลนั้นๆ สามารถที่จะปิดได้ ด้วยการใส่เครื่องหมาย # หน้าบรรทัดของ LoadModule โดยคอนฟิกทั้งหมดจะเป็นตัวอย่างที่ทำบน Fedora 9 และหลังจากการแก้ไขทั้งหมดเพื่อปิดโมดูลทั้งหมดนี้แล้ว เว็บยังสามารถรัน PHP ได้ตามปกติ
บทความนี้ขอแนะนำการปรับแต่งคอนฟิกพื้นฐานของ Apache ซึ่งติดตั้งมากับ Fedora 9 ทำให้เว็บเซิร์ฟเวอร์ทำงานอย่างมีประสิทธิภาพ โดยการปิดคุณสมบัติที่ไม่ได้ใช้งานออกไป เพื่อประหยัดขนาด CPU, Memory ที่ต้องใช้ในการรันโปรแกรม
การแก้ไขทั้งหมดในบทความนี้เป็นการแก้ไขคอนฟิกในไฟล์ /etc/httpd/conf/httpd.conf ซึ่งจะเป็นไฟล์คอนฟิกหลักของ Apache เว็บเซิร์ฟเวอร์
read more…
