การสตาร์ต Apache Web Server บน CentOS 6

จากที่ได้ ติดตั้งเว็บเซิร์ฟเวอร์ ​Apache และ ติดตั้งโปรแกรมภาษาเว็บ PHP บน Apache เรียบร้อยแล้ว

ขั้นตอนต่อไปก็เป็นรัน Apache Web Server ขึ้นมาเพื่อให้ใช้งานได้

ในบทความนี้จะอธิบายการรันหรือสตาร์ต Apache Web Server บน CentOS 6.2 โดยจะใช้คำสั่ง service เพื่อสะดวกในการจัดการ กล่าวถึงวิธีการแก้ไขคอนฟิกเบื้องต้น และเมื่อทดสอบเรียบร้อยแล้ว ก็จะใช้คำสั่ง chkconfig เพื่อเวลาตอนบู๊ตเครื่องจะได้รันเซอร์วิสเว็บเซิร์ฟเวอร์ขึ้นมาโดยอัตโนมัติ

บน CentOS จะตั้งชื่อเซอร์วิสเรียก Apache ว่า httpd เพราะฉะนั้นเวลาใช้คำสั่ง service หรือ chkconfig ต้องใช้ชื่อเป็น httpd

รันเซอร์วิส httpd

ใช้คำสั่ง service เพื่อสตาร์ตเซอร์วิส httpd

[root@cent6 ~]# service httpd start
Starting httpd:                                            [  OK  ]

ต้องขึ้นผลลัพธ์ว่า OK แสดงว่าสตาร์ตเซอร์วิสสำเร็จ

หลังจากสตาร์ตเสร็จเรียบร้อย ลองใช้คำสั่ง ps เพื่อดูโปรเซสของ httpd

[root@cent6 ~]# ps -ef | egrep "(UID|httpd)"
UID        PID  PPID  C STIME TTY          TIME CMD
root      1623     1  0 15:23 ?        00:00:00 /usr/sbin/httpd
apache    1625  1623  0 15:23 ?        00:00:00 /usr/sbin/httpd
apache    1626  1623  0 15:23 ?        00:00:00 /usr/sbin/httpd
apache    1627  1623  0 15:23 ?        00:00:00 /usr/sbin/httpd
apache    1628  1623  0 15:23 ?        00:00:00 /usr/sbin/httpd
apache    1629  1623  0 15:23 ?        00:00:00 /usr/sbin/httpd
apache    1630  1623  0 15:23 ?        00:00:00 /usr/sbin/httpd
apache    1631  1623  0 15:23 ?        00:00:00 /usr/sbin/httpd
apache    1632  1623  0 15:23 ?        00:00:00 /usr/sbin/httpd
เนื่องจากผลลัพธ์ของคำสั่ง ps จะแสดงโปรเซสทั้งหมดที่อยู่บนเครื่อง เพื่อให้ดูง่าย นิยมใช้คำสั่ง grep เพื่อดูเฉพาะบรรทัดที่มีคำที่ต้องการดู

ในที่นี้ใช้คำสั่ง egrep เพื่อค้นหาบรรทัดที่มีคำว่า UID หรือ httpd เพื่อให้แสดงชื่อฟิลด์ต่างๆ ด้วย

ทดสอบจาก Web Client (Browser)

หลังจากสตาร์ตเซอร์วิสเรียบร้อยแล้ว ลองใช้ browser จากเครื่อง client อื่นทดสอบดู

หน้าจอของ browser แสดง error ว่าเข้าเว็บไม่ได้

 

เหตุผลก็เป็นเพราะว่า โดยดีฟอลต์จากการติดตั้ง CentOS คอนฟิกของ firewall จะอนุญาตให้เข้าได้เฉพาะ ssh ได้เท่านั้น

ใช้คำสั่ง system-config-firewall-tui เพื่อเพิ่มคอนฟิก firewall อนุญาตให้เครื่องอื่นสามารถเข้ามาใช้เซอร์วิส WWW(HTTP) ได้

[root@cent6 ~]# system-config-firewall-tui

 

ลองใช้ browser จากเครื่อง client ทดสอบดูอีกครั้ง ก็จะใช้งานได้ ขึ้นหน้า Apache 2 Test Page

 

หมายเหตุ หน้า Apache 2 Test Page นี้ จะถูกแสดงขึ้นมา ในกรณีที่ไดเร็คทอรีเว็บที่เราเรียก ไม่มีไฟล์ index โดยจะไปเรียกไฟล์​ /var/www/error/noindex.html  มาแสดงแทน

 

ทดสอบเขียนไฟล์เว็บ html

ดีฟอลต์คอนฟิก apache ที่ติดตั้งจาก rpm ไดเร็คทอรีหลัก (DocumentRoot) ที่เก็บไฟล์เว็บหน้าแรกจะอยู่ใน /var/www/html/

ทดสอบเขียนไฟล์เว็บ ชื่อ test.html ไว้ในไดเร็คทอรี /var/www/html/

[root@cent6 ~]# cat /var/www/html/test.html
 <html>
 <body>
 ทดสอบเขียนเว็บ
 </body>
 </html>

ลองเปิดด้วย browser ดู

 

ทดลองเขียนไฟล์เว็บโปรแกรม php

หากได้ ติดตั้งโปรแกรมภาษาเว็บ PHP บน Apache ด้วย ลองเขียนไฟล์  php เพื่อทดสอบรันบนเว็บเซิร์ฟเวอร์ดู

[root@cent6 ~]# cat /var/www/html/test.php
<?php
print 'เขียนโปรแกรม PHP<br>';
for ($i=1; $i<=9; $i++) {
 print "$i";
}
?>

 

ลองเปิดด้วย browser ดู

 

คอนฟิกให้ สตาร์ต Apache ตอนบู๊ตเครื่อง

เมื่อทดสอบเรียบร้อยแล้ว หากต้องการให้สตาร์ต apache ตอนบู๊ตเครื่องโดยอัตโนมัติ สามารถทำได้โดยใช้คำสั่ง chkconfig

[root@cent6 ~]# chkconfig httpd on
[root@cent6 ~]# chkconfig --list | grep http
httpd          0:off 1:off 2:on 3:on 4:on 5:on 6:off

ปิดเซอร์วิส Apache

ในกรณีที่ต้องการปิดเซอร์วิส Apache สามารถทำได้โดยใช้คำสั่ง service

[root@cent6 ~]# service httpd stop
Stopping httpd:                                            [  OK  ]

 

ข้อมูลอ้างอิง

 

One thought on “การสตาร์ต Apache Web Server บน CentOS 6”

  1. ใช้พื้นที่ Web Server ของ Cent os จนเต็ม จะสามารถเพิ่มพื้นที่ฮาร์ดดิสได้ยังไงบ้างครับ

Leave a Reply

Your email address will not be published.