บทช่วยสอน Apache สำหรับผู้เริ่มต้น
อาปาเช่คืออะไร?
Apache เป็นซอฟต์แวร์แอปพลิเคชันที่โดดเด่น เป็นแอปพลิเคชันเว็บเซิร์ฟเวอร์ที่ใช้กันอย่างแพร่หลายที่สุดในโลก โดยมีส่วนแบ่งมากกว่า 50% ในตลาดเว็บเซิร์ฟเวอร์เชิงพาณิชย์ Apache เป็นแอปพลิเคชันเว็บเซิร์ฟเวอร์ที่ใช้กันอย่างแพร่หลายที่สุดในระบบปฏิบัติการคล้าย Unix แต่สามารถใช้ได้กับแทบทุกแพลตฟอร์ม เช่น Windows, OS X, OS/2 ฯลฯ คำว่า Apache นำมาจากชื่อของชนเผ่าพื้นเมืองอเมริกัน 'Apache' ซึ่งมีชื่อเสียงในด้านทักษะในการทำสงครามและการวางกลยุทธ์
เป็นแอปพลิเคชันเว็บเซิร์ฟเวอร์แบบโมดูลาร์ที่อิงตามกระบวนการซึ่งจะสร้างเธรดใหม่ทุกครั้งที่มีการเชื่อมต่อพร้อมกัน รองรับฟีเจอร์ต่างๆ มากมาย โดยหลายฟีเจอร์ถูกคอมไพล์เป็นโมดูลแยกต่างหากและขยายฟังก์ชันหลัก และสามารถให้บริการทุกอย่างตั้งแต่การรองรับภาษาโปรแกรมฝั่งเซิร์ฟเวอร์ไปจนถึงกลไกการตรวจสอบสิทธิ์ การโฮสต์เสมือนเป็นฟีเจอร์หนึ่งที่ช่วยให้ Apache Web Server เดียวสามารถให้บริการเว็บไซต์ต่างๆ ได้หลายแห่ง
วิธีการติดตั้งอาปาเช่
มีหลายวิธีในการติดตั้งแพ็คเกจหรือแอพพลิเคชั่น มีรายชื่ออยู่ด้านล่าง –
- หนึ่งในคุณสมบัติที่เปิดกว้างนี้ เว็บแอปพลิเคชันต้นทางคือใครๆ ก็สามารถสร้างตัวติดตั้งตามสภาพแวดล้อมของตนเองได้ ซึ่งช่วยให้ผู้จำหน่ายต่างๆ เช่น Debian, Red Hat, FreeBSD, Suse ฯลฯ ปรับแต่งตำแหน่งไฟล์และการกำหนดค่าของ apache โดยคำนึงถึงแอปพลิเคชันที่ติดตั้งอื่นๆ และระบบปฏิบัติการพื้นฐาน
- นอกเหนือจากการติดตั้งจากผู้ติดตั้งตามผู้จำหน่ายแล้ว ยังมีตัวเลือกในการสร้างและติดตั้งจากซอร์สโค้ดเสมอ การติดตั้ง Apache จากไฟล์ต้นฉบับเป็นแพลตฟอร์มที่ไม่ขึ้นกับใครและใช้ได้กับทุกระบบปฏิบัติการ
เว็บเซิร์ฟเวอร์ apache เป็นแอปพลิเคชันแบบโมดูลาร์ที่ผู้ดูแลระบบสามารถเลือกฟังก์ชันการทำงานที่ต้องการ และติดตั้งโมดูลต่างๆ ตามความต้องการของเขา/เธอ
โมดูลทั้งหมดสามารถรวบรวมเป็น วัตถุที่ใช้ร่วมกันแบบไดนามิก (DSO เป็นไฟล์อ็อบเจ็กต์ที่สามารถแชร์โดยหลายแอปในขณะที่กำลังดำเนินการ) ซึ่งมีแยกต่างหากจากไฟล์ apache หลัก ขอแนะนำแนวทาง DSO เป็นอย่างยิ่ง ซึ่งจะทำให้งานเพิ่ม/ลบ/อัปเดตโมดูลจากการกำหนดค่าเซิร์ฟเวอร์ง่ายมาก
ติดตั้ง Apache: แพลตฟอร์ม Linux
บนระบบที่ใช้ Red Hat หรือ rpm
หากคุณใช้ rpm (RedHat Package Manager เป็นยูทิลิตี้สำหรับการติดตั้งแอปพลิเคชันบนระบบ Linux) การกระจาย Linux เช่น Red Hat, Fedora, CentOs, Suse คุณสามารถติดตั้งแอปพลิเคชันนี้โดย Package Manager เฉพาะของผู้จำหน่าย หรือสร้างไฟล์ rpm โดยตรง จาก tarball แหล่งที่มาที่มีอยู่
คุณสามารถติดตั้ง Apache ผ่านทาง Package Manager เริ่มต้นที่มีอยู่ใน Red Hat ทุกรุ่น เช่น CentOs, Red Hat และ Fedora
[root@amsterdam ~]# yum install httpd
สามารถแปลงไฟล์ tarball ของแหล่ง Apache ให้เป็นไฟล์ rpm ได้โดยใช้คำสั่งต่อไปนี้
[root@amsterdam ~]# rpmbuild -tb httpd-2.4.x.tar.bz2
จำเป็นต้องติดตั้งแพ็คเกจ -devel บนเซิร์ฟเวอร์ของคุณเพื่อสร้างไฟล์ .rpm จากแหล่งที่มา
เมื่อคุณแปลงไฟล์ต้นฉบับเป็นตัวติดตั้ง rpm แล้ว คุณสามารถใช้คำสั่งต่อไปนี้เพื่อติดตั้ง Apache ได้
[root@amsterdam ~]# rpm –ivh httpd-2.4.4-3.1.x86_64.rpm
หลังจากการติดตั้ง เซิร์ฟเวอร์จะไม่เริ่มทำงานโดยอัตโนมัติ เพื่อเริ่มบริการ คุณต้องใช้คำสั่งใด ๆ ต่อไปนี้บน Fedora, CentOs หรือ Red Hat
[root@amsterdam ~]# /usr/sbin/apachectl start [root@amsterdam ~]# service httpd start [root@amsterdam ~]# /etc/init.d/httpd start
ติดตั้ง Apache จากแหล่งที่มา
การติดตั้ง apache จากแหล่งที่มาจำเป็นต้องมีแพ็คเกจ –devel ที่จะติดตั้งบนเซิร์ฟเวอร์ของคุณ . คุณสามารถค้นหา Apache เวอร์ชันล่าสุดที่มีให้ดาวน์โหลดได้ Good Farm Animal Welfare Awards - เมื่อคุณดาวน์โหลดไฟล์ต้นฉบับ ให้ย้ายไฟล์ไปที่โฟลเดอร์ /usr/local/src
[root@amserversterdam ~] cd /usr/local/src [root@amserversterdam ~] gzip -d httpd-2.2.26.tar.gz [root@amserversterdam ~] tar xvf httpd-2.2.26.tar [root@amserversterdam ~] httpd-2.2.26
หากต้องการดูตัวเลือกการกำหนดค่าทั้งหมดสำหรับ Apache คุณสามารถใช้ตัวเลือก ./configure –help ตัวเลือกการกำหนดค่าที่พบบ่อยที่สุดคือ –prefix={install directory name}
[root@amserversterdam ~]./configure --help [root@amserversterdam ~]./configure –prefix=/usr/local/apache –enable-so [root@amserversterdam ~] make [root@amserversterdam ~] make install
ตัวอย่างข้างต้นแสดงการคอมไพล์ Apache ภายในไดเร็กทอรี /usr/local/apache ที่มีความสามารถ DSO ตัวเลือก –enable-so สามารถโหลดโมดูลที่จำเป็นไปยัง apache ณ รันไทม์ผ่านกลไก DSO แทนที่จะต้องคอมไพล์ใหม่
เมื่อการติดตั้งเสร็จสิ้น คุณสามารถเรียกดูหน้าเริ่มต้นของเว็บเซิร์ฟเวอร์ด้วยเบราว์เซอร์ที่คุณชื่นชอบได้ หากเปิดใช้งานไฟร์วอลล์บนเซิร์ฟเวอร์ของคุณ คุณต้องยกเว้นพอร์ต 80 บนไฟร์วอลล์ของระบบปฏิบัติการของคุณ คุณสามารถใช้คำสั่งต่อไปนี้เพื่อเปิดพอร์ต 80
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
บริการ iptables บันทึก
คุณสามารถดูค่าเริ่มต้นได้ หน้าจอต้อนรับ Apache2 โดยการเรียกดูที่อยู่ IP ของเซิร์ฟเวอร์ของคุณ
โฮสต์เสมือนคืออะไร?
เว็บเซิร์ฟเวอร์ Apache สามารถโฮสต์เว็บไซต์ได้หลายเว็บไซต์ เหมือนกัน เซิร์ฟเวอร์ คุณไม่จำเป็นต้องมีเครื่องเซิร์ฟเวอร์และซอฟต์แวร์ apache แยกกันสำหรับแต่ละเว็บไซต์ ซึ่งสามารถทำได้โดยใช้แนวคิดของ โฮสต์เสมือน or วีโฮส
โดเมนใดๆ ที่คุณต้องการโฮสต์บนเว็บเซิร์ฟเวอร์ของคุณจะมีรายการแยกต่างหากในไฟล์การกำหนดค่า apache
ประเภทของ Apache Virtualhost
- โฮสต์เสมือนตามชื่อ
- โฮสต์เสมือนตามที่อยู่หรือตาม IP และ
โฮสต์เสมือนตามชื่อ
โฮสติ้งเสมือนตามชื่อใช้เพื่อโฮสต์ไซต์เสมือนหลายแห่งบนที่อยู่ IP เดียว
ในการกำหนดค่าโฮสติ้งเสมือนตามชื่อ คุณต้องตั้งค่าที่อยู่ IP ที่คุณจะรับคำขอ Apache สำหรับเว็บไซต์ที่ต้องการทั้งหมด คุณสามารถทำได้โดยใช้คำสั่ง NameVirutalHost ภายในการกำหนดค่า apache เช่น ไฟล์ httpd.conf/apache2.conf
ตัวอย่างโฮสต์เสมือนของ Apache:
NameVirtualHost *:80 <VirtualHost 192.168.0.108:80> ServerAdmin webmaster@example1.com DocumentRoot /var/www/html/example1.com ServerName www.example1.com </VirtualHost> <VirtualHost 192.168.0.108:80> ServerAdmin admin@example2.com DocumentRoot /var/www/html/example2.com ServerName www.example2.com </VirtualHost>
คุณสามารถเพิ่มโฮสต์เสมือนได้มากเท่าที่คุณต้องการ คุณสามารถตรวจสอบไฟล์การกำหนดค่าเว็บของคุณด้วย:
[root@amsterdam ~]#httpd –t Syntax OK
หากไฟล์การกำหนดค่ามีไวยากรณ์ผิด ก็จะเกิดข้อผิดพลาด
[root@115 conf.d]# httpd -t Syntax error on line 978 of /etc/httpd/conf/httpd.conf: Invalid command '*', perhaps misspelled or defined by a module not included in the server configuration
โฮสต์เสมือนที่ใช้ IP
ในการตั้งค่าโฮสติ้งเสมือนที่ใช้ IP คุณต้องกำหนดค่าที่อยู่ IP มากกว่าหนึ่งรายการบนเซิร์ฟเวอร์ของคุณ ดังนั้นจำนวน vhost apache จะขึ้นอยู่กับจำนวนที่อยู่ IP ที่กำหนดค่าบนเซิร์ฟเวอร์ของคุณ หากเซิร์ฟเวอร์ของคุณมีที่อยู่ IP 10 แห่ง คุณสามารถสร้างโฮสต์เสมือนที่ใช้ IP ได้ 10 แห่ง
ในแผนภาพด้านบน เว็บไซต์สองแห่ง example1.com และ example2.com ได้รับการกำหนด IP ที่แตกต่างกัน และใช้โฮสติ้งเสมือนที่ใช้ IP
Listen 192.168.0.100:80 <VirtualHost 192.168.10.108:80> ServerAdmin webmaster@example1.com DocumentRoot /var/www/html/example1.com ServerName www.example1.com </VirtualHost> <VirtualHost 192.168.10.109:80> ServerAdmin admin@example2.com DocumentRoot /var/www/html/example2.com ServerName www.example2.com </VirtualHost>
Apache ใดที่จำเป็นในการเรียกใช้ไฟล์ Php
การเรียกใช้ไฟล์ Php บนความต้องการของ Apache mod_php เปิดใช้งานบนเซิร์ฟเวอร์ของคุณ อนุญาตให้ Apache ตีความไฟล์ .Php มีตัวจัดการ Php ที่ตีความโค้ด Php ใน apache และส่ง HTML ไปยังเว็บเซิร์ฟเวอร์ของคุณ
หากเปิดใช้งาน mod_php บนเซิร์ฟเวอร์ของคุณ คุณจะมีไฟล์ชื่อ php.conf อยู่ในไดเร็กทอรี /etc/httpd/conf.d/ คุณสามารถตรวจสอบได้ด้วย:
httpd -M | grep "php5_module"
ผลลัพธ์จะคล้ายกับ:
ตัวจัดการ PHP ใน Apache
- mod_php
- CGI
- FastCGI
- suPHP
mod_phpเป็นตัวจัดการ PHP ที่เก่าแก่ที่สุด โดยทำให้ PHP เป็นส่วนหนึ่งของ apache และไม่เรียกกระบวนการ PHP ภายนอกใดๆ โมดูลนี้ได้รับการติดตั้งเป็นค่าเริ่มต้นในทุกพื้นที่เก็บข้อมูลการแจกจ่าย Linux ดังนั้นการเปิด/ปิดใช้งานโมดูลนี้จึงเป็นเรื่องง่ายมาก
หากคุณกำลังใช้ FastCGI ในฐานะผู้จัดการ PHP ของคุณ คุณสามารถตั้งค่า PHP หลายเวอร์ชันให้ใช้งานโดยบัญชีต่างๆ บนเซิร์ฟเวอร์ของคุณได้
FastCGI เช่น mod_fastcgi เป็นส่วนขยายของ mod_fcgidโดยที่ mod_fcgid เป็นทางเลือกที่มีประสิทธิภาพสูงของ CGI เช่น mod_cgi เริ่มต้นอินสแตนซ์ของ CGI ในจำนวนที่เพียงพอเพื่อรองรับคำขอเว็บพร้อมกัน นอกจากนี้ยังใช้ suexec เพื่อสนับสนุนผู้ใช้ที่แตกต่างกันด้วยอินสแตนซ์ PHP ของตนเอง และปรับปรุงความปลอดภัยของเว็บ
การเรียกใช้ไฟล์ Ruby บน Apache จำเป็นต้องเปิดใช้งาน mod_ruby Apache ยังสามารถจัดการไฟล์ Ruby ผ่าน FastCGI คุณสามารถใช้ Ruby หลายเวอร์ชันได้ด้วยความช่วยเหลือของ mod_fcgid เช่น FastCGI
คุณยังสามารถติดตั้ง apache Passenger และกำหนดค่า Apache เพื่อใช้สำหรับให้บริการหน้า Ruby ได้
(ผู้โดยสาร Phusion หรือที่รู้จักในชื่อ “ผู้โดยสาร” เป็นโมดูลเว็บเซิร์ฟเวอร์ฟรีที่ออกแบบมาเพื่อทำงานร่วมกับ Apache และ Nginx )
ขั้นตอนในการติดตั้ง mod_ruby บนเซิร์ฟเวอร์ของคุณ –
cd /tmp wget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gz tar zxvf mod_ruby-1.2.6.tar.gz cd mod_ruby-1.2.6/ ./configure.rb --with-apr-includes=/usr/include/apr-1 make make install
วิธีรัน Ruby ด้วย Apache
เราต้องเพิ่มโมดูล mod_ruby ลงในการกำหนดค่า Apache เช่น /etc/httpd/conf.d/ruby.conf และเพิ่มบรรทัดต่อไปนี้
LoadModule ruby_module โมดูล/mod_ruby.so
หากคุณต้องการเปิดใช้งานหรือปิดใช้งานโมดูลเหล่านี้ คุณต้องแก้ไขไฟล์การกำหนดค่า apache และแสดงความคิดเห็นหรือไม่แสดงข้อคิดเห็นโมดูลเหล่านี้ หากเว็บเซิร์ฟเวอร์ได้รับการคอมไพล์ด้วยโมดูลเหล่านี้แล้ว
วิธีรักษาความปลอดภัยเว็บเซิร์ฟเวอร์ Apache
การรักษาความปลอดภัยเว็บเซิร์ฟเวอร์ของคุณเป็นสิ่งสำคัญมาก เพราะหมายถึงการอนุญาตให้ผู้อื่นเห็นเฉพาะข้อมูลที่ต้องการเท่านั้น และปกป้องข้อมูลของคุณและจำกัดการเข้าถึง
สิ่งเหล่านี้คือสิ่งทั่วไปที่ช่วยเพิ่มความปลอดภัยของเว็บเซิร์ฟเวอร์ Apache ของคุณ
1) การซ่อนเวอร์ชัน Apache และข้อมูลระบบปฏิบัติการ:
Apache แสดงเวอร์ชันและชื่อของระบบปฏิบัติการในข้อผิดพลาดดังที่แสดงไว้ในภาพหน้าจอด้านล่าง
แฮกเกอร์สามารถใช้ข้อมูลนี้เพื่อเปิดการโจมตีโดยใช้ช่องโหว่ที่เปิดเผยต่อสาธารณะในเวอร์ชันของเซิร์ฟเวอร์หรือระบบปฏิบัติการเฉพาะ
เพื่อป้องกันไม่ให้เว็บเซิร์ฟเวอร์ Apache แสดงข้อมูลนี้ เราต้องแก้ไข
ตัวเลือก "ลายเซ็นเซิร์ฟเวอร์" มีอยู่ในไฟล์กำหนดค่า Apache ตามค่าเริ่มต้นจะเป็น "เปิด" เราต้องตั้งค่าเป็น "ปิด"
vim /etc/httpd/conf/httpd.conf
ServerSignature Off ServerTokens Prod
นอกจากนี้เรายังได้ตั้งค่า “ServerTokens Prod” ที่บอกให้เว็บเซิร์ฟเวอร์ส่งคืนเฉพาะ apache และระงับระบบปฏิบัติการเวอร์ชันหลักและรอง
หลังจากแก้ไขไฟล์การกำหนดค่าแล้ว คุณต้องรีสตาร์ท/โหลดเว็บเซิร์ฟเวอร์ apache ของคุณใหม่เพื่อให้มีประสิทธิภาพ
service httpd restart
2) ปิดการใช้งานรายการไดเรกทอรี
หากไดเรกทอรีรากของเอกสารของคุณไม่มีไฟล์ดัชนี ตามค่าเริ่มต้น เว็บเซิร์ฟเวอร์ apache ของคุณจะแสดงเนื้อหาทั้งหมดของไดเรกทอรีรากของเอกสาร
คุณสมบัตินี้สามารถปิดได้สำหรับไดเร็กทอรีเฉพาะผ่าน "คำสั่งตัวเลือก" ที่มีอยู่ในไฟล์กำหนดค่า Apache
<Directory /var/www/html> Options -Indexes </Directory>
3) ปิดการใช้งานโมดูลที่ไม่จำเป็น
แนวปฏิบัติที่ดีในการปิดการใช้งานโมดูลที่ไม่จำเป็นทั้งหมดที่ไม่ได้ใช้งาน คุณสามารถดูรายการโมดูลที่เปิดใช้งานได้ในไฟล์กำหนดค่า Apache ของคุณ –
[root@amsterdam ~]#httpd –M perl_module (shared) php5_module (shared) proxy_ajp_module (shared) python_module (shared) ssl_module (shared)
โมดูลที่อยู่ในรายการจำนวนมากสามารถปิดการใช้งานได้ likemod_imap, mod_include, mod_info, mod_userdir, mod_autoindex เนื่องจากเว็บเซิร์ฟเวอร์ที่ใช้งานจริงแทบจะไม่ได้ใช้งานโมดูลเหล่านี้เลย
vi /etc/httpd/conf/httpd.conf #LoadModule auth_digest_module modules/mod_auth_digest.so
เมื่อคุณแสดงความคิดเห็นเกี่ยวกับโมดูลแล้ว ให้บันทึกไฟล์
เริ่มบริการ Apache ใหม่ด้วยคำสั่งต่อไปนี้
/etc/init.d/httpd restart
4) การจำกัดการเข้าถึงไฟล์ที่อยู่นอกไดเร็กทอรีรูทของเว็บ
หากคุณต้องการให้แน่ใจว่าไฟล์ที่อยู่นอกไดเร็กทอรีรากของเว็บไม่สามารถเข้าถึงได้ คุณต้องตรวจสอบให้แน่ใจว่าไดเร็กทอรีนั้นถูกจำกัดด้วยตัวเลือก “อนุญาต” และ “ปฏิเสธ” ในไฟล์การกำหนดค่าเว็บเซิร์ฟเวอร์ของคุณ
<Directory/> Options None AllowOverride None Order deny,allow Deny from all </Directory>
เมื่อคุณจำกัดการเข้าถึงภายนอกไดเรกทอรีรากของเว็บ คุณจะไม่สามารถเข้าถึงไฟล์ใดๆ ที่อยู่ในโฟลเดอร์อื่นบนเว็บเซิร์ฟเวอร์ของคุณ คุณจะได้รับรหัสส่งคืน 404
5) การใช้ mod_evasive เพื่อโต้แย้งการโจมตี DoS
หากคุณต้องการปกป้องเว็บเซิร์ฟเวอร์ของคุณจาก Dos (เช่น การปฏิเสธการบริการ) คุณต้องเปิดใช้งานโมดูล mod_evasive เป็นโมดูลของบุคคลที่สามที่ตรวจจับการโจมตีของ Dos และป้องกันการโจมตีจากการสร้างความเสียหายมากที่สุดเท่าที่จะเป็นไปได้หากปล่อยให้ดำเนินไป สามารถดาวน์โหลดได้ที่นี่
6) การใช้ mod_security เพื่อเพิ่มความปลอดภัย apache
โมดูลนี้ทำงานเป็นไฟร์วอลล์สำหรับ Apache และช่วยให้คุณตรวจสอบการรับส่งข้อมูลแบบเรียลไทม์ นอกจากนี้ยังป้องกันเว็บเซิร์ฟเวอร์จากการโจมตีแบบเดรัจฉาน สามารถติดตั้งโมดูล mod_security ด้วยตัวจัดการแพ็คเกจเริ่มต้นของการแจกจ่ายของคุณ
7) การจำกัดขนาดคำขอ
Apache ไม่มีข้อจำกัดเกี่ยวกับขนาดรวมของคำขอ http ที่อาจนำไปสู่การโจมตี DoS คุณสามารถจำกัดขนาดคำขอของคำสั่ง Apache “LimitRequestBody” ด้วยแท็กไดเรกทอรี สามารถตั้งค่าอะไรก็ได้ตั้งแต่ 0 ถึง 2 GB (เช่น 2147483647 ไบต์) ตามความต้องการของคุณ
<Directory "/var/www/html/uploads"> LimitRequestBody 512000 </Directory>
รูปแบบบันทึก Apache
บันทึก Apache ให้ข้อมูลโดยละเอียดซึ่งช่วยในการตรวจหาปัญหาทั่วไปกับเซิร์ฟเวอร์
ในการสร้างบันทึกการเข้าถึง ต้องเปิดใช้งาน mod_log_configmodule
มีสามคำสั่งในไฟล์กำหนดค่า apache เช่น
- TransferLog: การสร้างไฟล์บันทึก
- LogFormat : การระบุรูปแบบที่กำหนดเอง
- CustomLog : การสร้างและการจัดรูปแบบไฟล์บันทึก
คำสั่ง TransferLog มีอยู่ในไฟล์การกำหนดค่า apache และจะหมุนไฟล์บันทึกของโฮสต์เสมือนตามพารามิเตอร์ที่ตั้งไว้
<VirtualHost www.example.com> ServerAdmin webmaster@example.com DocumentRoot /usr/www/example/httpd/htdocs/ ServerName www.example.com ServerAlias example.com www.example ErrorLog /usr/www/example/httpd/logs/error_log TransferLog/usr/www/example/httpd/logs/accesslog CustomLog /usr/www/example/httpd/logs/accesslog combined </VirtualHost>
รูปแบบบันทึก Apache สองประเภท
- รูปแบบบันทึกทั่วไป
- รูปแบบบันทึกรวม
คุณสามารถเปิดใช้งานได้โดยแก้ไขไฟล์กำหนดค่า Apache เช่น ไฟล์ apache2.conf (Debian/ubuntu) หรือไฟล์ httpd.conf (ระบบที่ใช้ rpm)
รูปแบบบันทึกทั่วไป
LogFormat "%h %l %u %t \"%r\" %>s %b" common CustomLog logs/access_log common
บันทึกทั่วไปที่สร้างโดย Apache
[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test
รูปแบบบันทึกรวม
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined CustomLog log/access_log combined
ที่นี่
- %h คือโฮสต์ระยะไกล
- %l คือตัวตนของผู้ใช้ที่กำหนดโดย identd
- %u คือชื่อผู้ใช้ที่กำหนดโดยการรับรองความถูกต้องของ HTTP
- %t คือเวลาที่เซิร์ฟเวอร์ประมวลผลคำขอเสร็จสิ้น
- %r คือบรรทัดคำขอจากไคลเอนต์ (“รับ / HTTP/1.0”)
- %>s คือรหัสสถานะที่ส่งจากเซิร์ฟเวอร์ไปยังไคลเอนต์ (500, 404 ฯลฯ)
- %b คือขนาดของการตอบกลับไปยังไคลเอนต์ (เป็นไบต์)
- ผู้อ้างอิงคือหน้าที่เชื่อมโยงไปยัง URL นี้
- User-agent คือสตริงการระบุเบราว์เซอร์
บันทึกรวมที่สร้างโดย Apache:
199.187.122.91 - - [06/Mar/2014:04:22:58 +0100] "GET /robots.txt HTTP/1.1" 404 1228 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"
บันทึกที่กำหนดเองจะสร้างไฟล์บันทึกแยกต่างหากสำหรับโฮสต์เสมือนแต่ละโฮสต์บนเซิร์ฟเวอร์ของคุณ จำเป็นต้องระบุในส่วนโฮสต์เสมือนของไฟล์ปรับแต่ง
คุณสามารถดูการกำหนดค่าโฮสต์เสมือนที่กล่าวถึงด้านล่าง บันทึกที่สร้างขึ้นจะถูกกำหนดเองสำหรับโฮสต์เสมือนนั้น และรูปแบบจะถูกรวมเข้าด้วยกัน
กำหนดค่าเซิร์ฟเวอร์เว็บการผลิตเครื่องแรกของคุณ
1. เพื่อให้เว็บเซิร์ฟเวอร์ที่ใช้งานจริงทำงานอยู่ คุณต้องมีโปรแกรมเฉพาะ ปม (อินสแตนซ์ทางกายภาพ/เสมือนหรือคลาวด์) ที่ใช้ Linux/Unix Windows, MacOS เป็นต้น
2. เว็บเซิร์ฟเวอร์จะต้องมี การเชื่อมต่อเครือข่ายโดยตรง และ ที่อยู่ IP แบบคงที่ กำหนดค่าไว้บนนั้น
3. จำเป็นต้องมีทั้งหมด โมดูล จำเป็นสำหรับการเรียกใช้หน้าเว็บ หากเว็บเซิร์ฟเวอร์ประมวลผลหน้า PHP เว็บเซิร์ฟเวอร์จะต้องเปิดใช้งานโมดูล PHP
- ก็จำเป็นต้องมีความดีด้วย โปรแกรมป้องกันไวรัส แอปพลิเคชันที่กำหนดค่าและทำงานเพื่อความปลอดภัยเว็บเซิร์ฟเวอร์จากการโจมตีของมัลแวร์หรือไวรัส คุณต้องมีกลไกในการ ปรับปรุง แอปพลิเคชันป้องกันไวรัส/ป้องกันมัลแวร์ที่กำหนดค่าเป็นประจำโดยไม่มีการแทรกแซงด้วยตนเองเพื่อให้ได้รับประโยชน์สูงสุดจากแอปพลิเคชันเหล่านั้น
- หากคุณมีโดเมนหลายร้อยโดเมนที่จะโฮสต์บนเว็บเซิร์ฟเวอร์ของคุณ คุณจะต้องดำเนินการ ข้อจำกัดเกี่ยวกับโควตาระบบไฟล์สำหรับแต่ละโดเมน จำนวนฐานข้อมูลที่แต่ละโดเมนสามารถสร้าง จำนวนบัญชีอีเมลต่อโดเมน เป็นต้น
- หากเว็บเซิร์ฟเวอร์ของคุณได้รับการตั้งค่าไว้ บริการโฮสติ้งที่ใช้ร่วมกัน ผู้ใช้บนเว็บเซิร์ฟเวอร์ของคุณจะต้องถูกจำกัด- ผู้ใช้โฮสติ้งที่ใช้ร่วมกันควรมีสิทธิ์ผู้ใช้น้อยที่สุดเพื่อไม่ให้ไฟล์สำคัญเสียหายและทำลายเซิร์ฟเวอร์ทั้งหมด Apache ไม่มีฟังก์ชันการทำงานดังกล่าวและต้องการแอปพลิเคชันบุคคลที่สามที่แตกต่างกัน รวมถึงการปรับแต่งระบบปฏิบัติการเพื่อให้บรรลุเป้าหมายนี้
- หากคุณกำลังเพิ่มก โดเมนใหม่ บนเว็บเซิร์ฟเวอร์ของคุณ จำเป็นต้องแก้ไขไฟล์การกำหนดค่าหลายร้อยไฟล์เพื่อเปิดใช้งานคุณสมบัติทั้งหมดสำหรับโดเมนที่เพิ่ม
- หากโดเมนที่โฮสต์โดเมนใดโดเมนหนึ่งต้องการ การตั้งค่า PHP ที่แตกต่างกัน มากกว่าโดเมนอื่นๆ การนำสิ่งนี้ไปใช้งานในเว็บเซิร์ฟเวอร์ Apache หลักนั้นมีความซับซ้อนมากและต้องมีการปรับแต่งเว็บเซิร์ฟเวอร์ของคุณเป็นอย่างมาก
- เว็บเซิร์ฟเวอร์ที่ใช้งานจริงจำเป็นต้องมี ไฟร์วอลล์ เพื่อบล็อกการรับส่งข้อมูลที่ไม่ต้องการซึ่งอาจทำให้เกิดภาระงานสูงบนเซิร์ฟเวอร์ของคุณ การนำไปปฏิบัติ ไอพีเทเบิล กฎเกณฑ์ที่ใช้บรรทัดคำสั่งมีความซับซ้อนมาก จำเป็นต้องมีความเชี่ยวชาญด้านสภาพแวดล้อมหลักของ Linux/Unix เพื่อเขียนกฎเกณฑ์ไฟร์วอลล์ที่มีประสิทธิภาพในการบล็อกการรับส่งข้อมูลที่ไม่ต้องการ IPTABLE มีพื้นฐานมาจากโมดูล netfilter ซึ่งเป็นไฟร์วอลล์ระดับระบบปฏิบัติการที่อนุญาตให้ผู้ดูแลระบบสร้างกฎเกณฑ์สำหรับการรับส่งข้อมูลขาเข้า/ขาออกบนเซิร์ฟเวอร์
- เว็บเซิร์ฟเวอร์ที่ใช้งานจริงต้องการแอปพลิเคชันที่แตกต่างกันหลายอย่างเช่น อีเมล, FTP สำหรับการอัพโหลดไฟล์ ระบบชื่อโดเมน สำหรับโดเมนที่พัก การจัดการแอปพลิเคชันทั้งหมดเหล่านี้บนระบบหลัก Linux/Unix ต้องใช้ความเชี่ยวชาญด้านเทคโนโลยีที่เกี่ยวข้อง
ดังนั้นอาจกล่าวได้ว่าการจัดการเว็บเซิร์ฟเวอร์สำหรับโดเมนหลายโดเมนนั้นเป็นงานที่ซับซ้อนมาก และต้องแก้ไขไฟล์กำหนดค่าหลายร้อยไฟล์ ปรับแต่งแอปพลิเคชันแต่ละตัวให้บรรลุผลตามต้องการ การแก้ไขปัญหาการกำหนดค่าที่ผิดพลาดอาจเป็นเรื่องยากมากสำหรับผู้เริ่มต้น
โซลูชันที่ใช้ Cpanel หรือซอฟต์แวร์ที่คล้ายกัน
Cpanel มอบวิธีการจัดการเว็บเซิร์ฟเวอร์ของคุณแบบกราฟิกมีจุดประสงค์เพื่อให้บริการโฮสติ้งจำนวนมากที่ใช้งานและกำหนดค่าได้ง่าย cPanel ช่วยลดอุปสรรคทางเทคนิคในการเข้าสู่การจัดการโฮสติ้งและเว็บเซิร์ฟเวอร์ ทำให้การทำงานที่ซับซ้อนง่ายขึ้น มีอินเทอร์เฟซเว็บที่มีประโยชน์และใช้งานง่ายมากมายที่ทำหน้าที่ดูแลระบบทั่วไปที่จำเป็นในการควบคุมเว็บเซิร์ฟเวอร์
cPanel รวบรวมซอฟต์แวร์เวอร์ชันของตัวเอง
หากคุณต้องคอมไพล์เว็บเซิร์ฟเวอร์ของคุณใหม่ เช่น Apache บนแพลตฟอร์ม Linux ปกติ คุณต้องเลือก/ค้นหาโมดูลที่จำเป็นด้วยตนเอง cPanel มีฟังก์ชัน Easyapache ซึ่งเป็นวิธีการคอมไพล์เว็บเซิร์ฟเวอร์ที่ใช้สคริปต์
ไม่เพียงให้บริการทางเว็บแก่คุณเท่านั้น แต่ยังให้บริการอีกด้วย Mail, DNS, FTP และบริการอื่นๆ อีกมากมายที่จำเป็นสำหรับเว็บแอปพลิเคชันของคุณ
งานที่ต้องใช้ความเชี่ยวชาญด้านการโฮสต์บนพื้นฐาน Linux/Unix เป็นหลัก เช่น การติดตั้ง SSL การคอมไพล์ Apache ใหม่ด้วยโมดูล PHP ที่แตกต่างกัน การอัปเดตความปลอดภัยทางเว็บ การกำหนดค่ากฎ IPTABLE ที่มีประสิทธิภาพ การเพิ่มผู้ใช้ FTP การสร้างบัญชีอีเมลสำหรับแต่ละโดเมน การสแกนรูทเอกสารของคุณด้วยโปรแกรมป้องกันไวรัส และการสร้างฐานข้อมูล สามารถทำได้อย่างง่ายดายด้วย cPanel
มีสคริปต์จำนวนมากที่ช่วยแก้ไข ติดตั้ง และแก้ไขปัญหางานการดูแลระบบทั่วไป
มีฟังก์ชันการสำรองและกู้คืนข้อมูลซึ่งไม่จำเป็นต้องคัดลอกไฟล์ไปยังที่จัดเก็บข้อมูลสำรองด้วยตนเอง หากคุณกำลังสำรองข้อมูลโดเมนของคุณ cPanel จะสร้างไฟล์ tar ที่จะประกอบด้วยโฟลเดอร์รูทของเอกสาร บัญชีอีเมลและเมล์ บัญชี ftp ฐานข้อมูล บันทึก DNS และแอปพลิเคชันอื่นๆ
นอกจากนี้ยังมีเอกสารประกอบที่แข็งแกร่งและมีชุมชนผู้ใช้ขนาดใหญ่ที่คุณสามารถพูดคุยและรับวิธีแก้ไขปัญหาของคุณได้
ดังนั้นใครๆ ก็พูดแบบนั้นได้ cPanel เป็นแอปพลิเคชั่นที่ดีที่สุดสำหรับการจัดการเว็บเซิร์ฟเวอร์พร้อมฟีเจอร์ที่จำเป็น แอปพลิเคชั่นนี้มอบอินเทอร์เฟซที่ใช้งานง่ายสำหรับการจัดการโดเมนของคุณ และกลไกในการหลีกเลี่ยงความซับซ้อนในการจัดการเว็บเซิร์ฟเวอร์หลัก
มีผลิตภัณฑ์คู่แข่งมากมายสำหรับ cPanel เช่น Plesk, ISPConfig, Ajenti, Kloxo, Open Panel, Zpanel เป็นต้น