Thursday, October 6, 2011

ติดตั้งและใช้งาน Apache Web Server

Apache (CentOS เรียกว่า httpd) มีชื่อเต็มๆว่า Apache HTTP Server เป็นโปรแกรมเว็บเซอร์เวอร์ที่มีชื่อเสียงและนิยมใช้กันมากเป็นอันดับแรกๆของ โลกเลยนะครับ เพราะว่ามันคอนฟิกง่าย เสถียร รองรับการใช้งานได้มาก (หรือเรียกว่าทราฟิก) มีความปลอดภัยสูง รองรับการใช้งานผ่าน SSL (Secure Socket Layer) ซึ่งมีการเข้ารหัสข้อมูลที่รับส่งระหว่าง Apache และเว็บเบราเซอร์ รองรับการทำ Virtual Host (มีเว็บเซอร์เวอร์เครื่องเดียว ไอพีเดียว แต่มีได้เป็นร้อยๆพันๆเว็บ) นอกจากนั้นยังปรับแต่งให้ทำงานตามที่ต้องการได้ได้หลายแบ

บน CentOS เราติดตั้ง Apache ได้ 2 แบบนะครับ คือ ใช้คำสั่ง yum และอีกวิธีคือใช้การคอมไพล์ แต่ผมจะแนะนำวิธีการติดตั้งด้วยคำสั่ง yum นะครับ ดังต่อไปนี้

ก่อนติดตั้ง httpd ผมแนะนำให้ติดตั้ง php ก่อนนะครับ

1. ติดตั้ง httpd

โค้ด: เลือกทั้งหมด
yum -y install httpd mod_ssl


มีไฟล์คอนฟิกคือ /etc/httpd/conf/httpd.conf

และมีโฟลเดอร์ถูกสร้างขึ้นมา ได้แก่
/etc/httpd/conf เก็บไฟล์คอนฟิกหลัก
/etc/httpd/conf.d ไฟล์ในโฟลเดอร์นี้เป็นไฟล์ย่อยของไฟล์คอนฟิก httpd.conf ซึ่งทุกไฟล์ในโฟลเดอร์นี้จะถูกอ่านและทำตามเมื่อสตาร์ท httpd
/etc/httpd/logs --> /var/log/httpd เก็บล๊อกต่างๆที่เกิดขึ้นกับ httpd
/etc/httpd/modules --> /usr/lib/httpd/modules เก็บโมดูลที่จะเสริมการทำงานของ httpd
/etc/httpd/run --> /var/run เก็บโพรเซสขณะที่ httpd กำลังทำงาน

ที่โฟลเดอร์ /etc/rc.d/init.d จะมีไฟล์ชื่อ httpd ไฟล์นี้จะทำให้เพิ่ม httpd เป็นเซอร์วิสหนึ่งของ CentOS และใช้สั่ง start/stop/restart เซอร์วิส httpd ได้

2 ทำให้ httpd เป็นเซอร์วิสหนึ่งของ CentOS

โค้ด: เลือกทั้งหมด
chkconfig --level 35 httpd on


3 แก้ไขคอนฟิกในไฟล์ httpd.conf เบื้องต้น

โค้ด: เลือกทั้งหมด
vi /etc/httpd/conf/httpd.conf


ลบคำว่า Indexes ออกจากบรรทัด Options ภายใต้ <Directory "/var/www/html">ดังนี้

เดิม
<Directory "/var/www/html">
    Options FollowSymLinks Indexes
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

ใหม่
<Directory "/var/www/html">
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>

แก้บรรทัด ServerSignature ให้เป็น Off
เดิม
ServerSignature On

ใหม่
ServerSignature Off

4 สตาร์ท httpd

โค้ด: เลือกทั้งหมด
service httpd start


ถ้าสตาร์ทไม่ได้ ให้ดูข้อความเออเร่อร์ได้ที่ไฟล์ /var/log/httpd/error_log ครับก็จะรู้สาเหตุ
ถ้าสตาร์ทได้ไม่มีปัญหาอะไร ลองเปิด Web Browser แล้วเข้าเว็บดูครับ พิมพ์ http://x.x.x.x จะเห็นหน้าจอ CentOS ดังรูป

centos-web-small.png
CentOS Apache Default Page

แสดงว่าเวอร์คแน่นอนแล้ว

ถ้าสตาร์ท httpd แล้วมีข้อความลักษณะนี้
Starting httpd: httpd: apr_sockaddr_info_get() failed for server1.voip4share.com
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[ OK ]

สาเหตุเกิดจาก httpd มันเช็คชื่อเครื่องพบว่าชื่อ server1.voip4share.com แต่มันไม่รู้ว่า IP Address เป็นไอพีอะไร
จะปล่อยไปก็ไม่เป็นไรนะครับ ยังทำงานได้ตามปกติ แต่ถ้าอยากจะไม่ให้มันฟ้อง Error แบบนี้ให้เช็คที่ไฟล์ /etc/hosts

vi /etc/hosts

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 server1.voip4share.com server1 localhost.localdomain localhost

ซึ่งชื่อ server1.voip4share.com ควรจะมีอยู่ในไฟล์ /etc/hosts ครับ

0 comments:

Post a Comment

 
Design by GURU