เซิร์ฟเวอร์ Apache ทำงานอย่างไร? เว็บเซิร์ฟเวอร์ Apache - http Apache คืออะไร มีไว้เพื่ออะไร ดาวน์โหลดได้ที่ไหน

วันนี้เราจะเปิดตัวเว็บเซิร์ฟเวอร์ Apache 2.2.2 และดูการตั้งค่าพื้นฐาน
ขั้นแรก มาดูกันว่าการติดตั้งดำเนินไปอย่างไร: เปิดเบราว์เซอร์ของคุณแล้วป้อน http://localhost - คุณจะเห็นหน้ายินดีต้อนรับ: ใช้งานได้! ดังนั้นการติดตั้งจึงเป็นไปด้วยดีสำหรับเรา

จากนั้นคลิกที่ไอคอนปากกาในทาสก์บาร์ คลิกขวาเมาส์และเลือก "Open Services" ในหน้าต่างการจัดการบริการที่เปิดขึ้นให้เลือกบรรทัด "Apache2.2" แล้วดับเบิลคลิกที่มันจากนั้นในแท็บ "ทั่วไป" เลือกการเริ่มต้นบริการด้วยตนเอง - "ประเภทการเริ่มต้น: ด้วยตนเอง" . จะต้องดำเนินการนี้เพื่อป้องกันไม่ให้บริการที่ไม่จำเป็นโหลดระบบ เมื่อพิจารณาแล้วว่า คอมพิวเตอร์ที่บ้านใช้ไม่เพียงแต่สำหรับการพัฒนาเว็บเท่านั้น แต่ยังสำหรับความต้องการอื่นๆ อีกมากมาย การเริ่มและหยุดบริการที่ใช้เป็นระยะๆ ด้วยตนเองเป็นสิ่งที่ยอมรับได้มากที่สุด

ในรูทของไดรฟ์ C: คุณต้องสร้างไดเร็กทอรี "apache" ซึ่งจะมีโฮสต์เสมือนของคุณ (โดเมน) ไฟล์บันทึกข้อผิดพลาดส่วนกลาง "error.log" (สร้างโดยโปรแกรมเมื่อเปิดตัวครั้งแรกโดยอัตโนมัติ) ไฟล์การเข้าถึงทั่วโลก "access.log" (สร้างขึ้นโดยอัตโนมัติ) ในไดเร็กทอรี "apache" เราสร้างโฟลเดอร์ว่างอีกโฟลเดอร์หนึ่ง - "localhost" ซึ่งในทางกลับกันเราจะสร้างโฟลเดอร์ "www" ซึ่งในตอนหลังจะต้องใช้โครงการไซต์ของเราในรูปแบบของสคริปต์ในเครื่อง โครงสร้างไดเร็กทอรีที่ดูแปลกนี้ถูกกำหนดโดยโครงสร้างไดเร็กทอรีที่คล้ายกันในระบบ Unix และมีวัตถุประสงค์เพื่อทำให้การทำความเข้าใจและการใช้งานง่ายขึ้นในอนาคต

การแก้ไขไฟล์ httpd.conf
1. หากต้องการโหลดโมดูล mod_rewrite ให้ค้นหาและยกเลิกการใส่เครื่องหมายข้อคิดเห็น (ลบสัญลักษณ์ “#” ที่จุดเริ่มต้นของบรรทัด) บรรทัดนี้:

LoadModule rewrite_module โมดูล/mod_rewrite.so


2. สำหรับ ดาวน์โหลด PHPล่าม คุณต้องเพิ่มบรรทัดต่อไปนี้ที่ส่วนท้ายของบล็อกการโหลดโมดูล:

#LoadModule php5_module "C:/php/php5apache2_2.dll"


3. กำหนดไดเร็กทอรีที่มีการกำหนดค่า ไฟล์ PHPโดยเพิ่มบรรทัดต่อไปนี้ด้านล่าง:

#PHPIniDir "C:/php"


ไม่แสดงความคิดเห็นหลังจากติดตั้ง php.ini

4. ค้นหาบรรทัด:

DocumentRoot "C:/server/htdocs"

กำหนด ไดเรกทอรีรากการจัดการเว็บไซต์ (คุณสร้างไว้ก่อนหน้านี้เล็กน้อย):

DocumentRoot "C:/apache"

5. ค้นหา บล็อกนี้:


ตัวเลือก FollowSymLinks
AllowOverride ไม่มี
คำสั่งปฏิเสธอนุญาต
ปฏิเสธจากทั้งหมด


และแทนที่ด้วยสิ่งต่อไปนี้:


ตัวเลือกรวมถึงดัชนี FollowSymLinks
อนุญาตแทนที่ทั้งหมด
อนุญาตจากทั้งหมด

6. ลบหรือใส่ความคิดเห็นในบล็อกควบคุมไดเร็กทอรีดั้งเดิม (เราไม่ต้องการมัน) ซึ่งหากไม่มีความคิดเห็นจะมีลักษณะดังนี้:


#
# ค่าที่เป็นไปได้สำหรับคำสั่งตัวเลือกคือ "ไม่มี", "ทั้งหมด"
#หรือการรวมกันของ:
# ดัชนีประกอบด้วย FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# โปรดทราบว่า "MultiViews" จะต้องตั้งชื่อ *อย่างชัดเจน* --- "ตัวเลือกทั้งหมด"
#ไม่ได้ให้คุณ.
#
# คำสั่งตัวเลือกนั้นทั้งซับซ้อนและสำคัญ โปรดมอง
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# สำหรับข้อมูลเพิ่มเติม.
#
ตัวเลือกดัชนี FollowSymLinks

#
# AllowOverride ควบคุมคำสั่งที่อาจอยู่ในไฟล์ .htaccess
# อาจเป็น "ทั้งหมด", "ไม่มี" หรือคำหลักผสมกัน:
# ตัวเลือก FileInfo AuthConfig Limit
#
AllowOverride ไม่มี

#
# ควบคุมว่าใครสามารถรับสิ่งของจากเซิร์ฟเวอร์นี้
#
คำสั่งอนุญาต, ปฏิเสธ
อนุญาตจากทั้งหมด

7. ค้นหาบล็อก:


DirectoryIndexดัชนี.html

แทนที่ด้วย:


DirectoryIndex index.html index.htm index.shtml index.php

8. ค้นหาบรรทัด:

ErrorLog "บันทึก/error.log"


แทนที่ด้วยสิ่งต่อไปนี้ (ในกรณีนี้ จะสะดวกกว่าในการดูไฟล์ข้อผิดพลาดเซิร์ฟเวอร์ส่วนกลาง):

บันทึกข้อผิดพลาด "C:/apache/error.log"

9. ค้นหาบรรทัด:

CustomLog "logs/access.log" ทั่วไป


เปลี่ยนไป:

CustomLog "C:/apache/access.log" ทั่วไป

10. สำหรับการดำเนินการ SSI (การเปิดใช้งานฝั่งเซิร์ฟเวอร์) บรรทัดต่อไปนี้ที่อยู่ในบล็อกจะต้องพบและไม่ใส่เครื่องหมายข้อคิดเห็น:

เพิ่มประเภทข้อความ/html .shtml
AddOutputFilter ประกอบด้วย .shtml

11. เพิ่มสองบรรทัดด้านล่างในบล็อกเดียวกัน:

แอปพลิเคชัน AddType/x-httpd-php .php
แอปพลิเคชัน AddType/x-httpd-php-source .phps

12. สุดท้าย ค้นหาและยกเลิกหมายเหตุบรรทัด:

รวม conf/extra/httpd-mpm.conf
รวม conf/extra/httpd-autoindex.conf
รวม conf/extra/httpd-vhosts.conf
รวม conf/extra/httpd-manual.conf
รวม conf/extra/httpd-default.conf

บันทึกการเปลี่ยนแปลงและปิดไฟล์ "httpd.conf"

ตอนนี้เปิดไฟล์ "C:\server\conf\extra\httpd-vhosts.conf" และทำการเปลี่ยนแปลงต่อไปนี้

บล็อกตัวอย่างโฮสต์เสมือนที่มีอยู่จำเป็นต้องลบออก และแทรกเฉพาะรายการต่อไปนี้:

ชื่อ VirtualHost *:80


DocumentRoot "C:/apache/localhost/www"
ชื่อเซิร์ฟเวอร์โฮสต์ท้องถิ่น
บันทึกข้อผิดพลาด "C:/apache/localhost/error.log"
CustomLog "C:/apache/localhost/access.log" ทั่วไป

บันทึกการเปลี่ยนแปลงและปิดไฟล์ "httpd-vhosts.conf"

ดำเนินการต่อ - ตั้งค่าการเปิดตัวบริการ Apache2.2 ด้วยตนเองซึ่งเราปฏิบัติตามเส้นทาง: "Start" → " แผงควบคุม"("แผงควบคุม") → "เครื่องมือการดูแลระบบ" → "บริการ" ในหน้าต่างการจัดการบริการที่เปิดขึ้น เลือกบรรทัด "Apache2.2" แล้วดับเบิลคลิกที่มัน จากนั้นในแท็บ "ทั่วไป" เลือกคู่มือ เริ่มต้นบริการ - "ประเภทการเริ่มต้น: ด้วยตนเอง" จะต้องดำเนินการเพื่อให้บริการที่ไม่จำเป็นไม่โหลดระบบ เมื่อพิจารณาว่าคอมพิวเตอร์ที่บ้านใช้ไม่เพียง แต่สำหรับการพัฒนาเว็บเท่านั้น แต่ยังรวมถึงความต้องการอื่น ๆ อีกมากมายด้วยการเริ่มต้นและหยุดด้วยตนเอง บริการที่ใช้เป็นระยะๆ จะเหมาะสมที่สุด

ตัวอย่างการสร้างโฮสต์เสมือน

หากคุณต้องการติดตั้งโฮสต์เสมือนของคุณเอง ให้ทำดังต่อไปนี้:

เปิดไฟล์ "httpd-vhosts.conf" และสร้างบล็อกในนั้นโดยมีเนื้อหาโดยประมาณต่อไปนี้:

# โฟลเดอร์ที่จะรูทของโฮสต์ของคุณ
DocumentRoot "C:/apache/dom.ru/www"
# โดเมนที่คุณสามารถเข้าถึงโฮสต์เสมือนได้
ชื่อเซิร์ฟเวอร์ dom.ru
# นามแฝง (ชื่อเพิ่มเติม) ของโดเมน
เซิร์ฟเวอร์นามแฝง www.dom.ru
# ไฟล์ที่จะเขียนข้อผิดพลาด
บันทึกข้อผิดพลาด "C:/apache/dom.ru/error.log"
# ไฟล์บันทึกการเข้าถึงโฮสต์
CustomLog "C:/apache/dom.ru/access.log" ทั่วไป

จากนั้นในไดเรกทอรี "apache" ให้สร้างโฟลเดอร์ "dom.ru" ซึ่งในทางกลับกันจะสร้างโฟลเดอร์ "www"
ขั้นตอนต่อไปในการสร้างโฮสต์เสมือนคือการแก้ไขไฟล์ C:\WINDOWS\system32\drivers\etc\hosts ของระบบปฏิบัติการ เปิด ไฟล์นี้และเพิ่มสองบรรทัดเข้าไป:
127.0.0.1 dom.ru
127.0.0.1 www.dom.ru
ตอนนี้รีสตาร์ทเซิร์ฟเวอร์ Apache เปิดเบราว์เซอร์ของคุณแล้วป้อน แถบที่อยู่"dom.ru" หรือ "www.dom.ru" แล้วคุณจะพบว่าตัวเองอยู่ในโฮสต์เสมือนของคุณ เพียงระวัง ตอนนี้คุณสามารถไปที่ไซต์ดั้งเดิมด้วยชื่อโฮสต์เสมือน ("www.dom.ru" ถ้ามี) โดยการใส่ความคิดเห็นหรือลบบรรทัด: "127.0.0.1 www.dom.ru" ใน ไฟล์ด้านบน "hosts"
เอกสาร Apache เมื่อใด เซิร์ฟเวอร์ที่ทำงานอยู่ดูได้ที่ http://localhost/manual/
การติดตั้งและกำหนดค่าเว็บเซิร์ฟเวอร์ Apache เสร็จสมบูรณ์

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

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

เว็บเซิร์ฟเวอร์ Apache คืออะไรและมีไว้เพื่ออะไร?

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

เราทำสิ่งนี้ดังนี้: ในรูทของไดรฟ์ C เราสร้างโฟลเดอร์เซิร์ฟเวอร์ภายในซึ่งเราสร้างโฟลเดอร์เพิ่มเติมอีกสี่โฟลเดอร์: apache, tmp, www, log, php เราจะไม่ใช้โฟลเดอร์ทั้งหมดตามคำสั่งนี้ ทั้งหมดนี้แสดงในรูปด้านล่าง

ในโฟลเดอร์ www เราได้สร้างโฟลเดอร์ง่ายๆ ชื่อ Index.html โดยมีเนื้อหาดังต่อไปนี้:

หน้าการยืนยัน

อาปาเช่ในการดำเนินการ



< ! DOCTYPE html >

< html lang = "ru-RU" >

< head >

< meta charset = "UTF-8" >

< title >หน้าการยืนยัน< / title >

< link rel = "stylesheet" type = "text/css" href = "style.css" / >

< / head >

< body >

< h1 >อาปาเช่ในการดำเนินการ< / h1 >

< / body >

< / html >

มีเพียงเอกสารเดียวในเอกสารนี้ และหากเราสามารถเปิดได้หลังจากการติดตั้งเว็บเซิร์ฟเวอร์ Apache เสร็จสมบูรณ์ แสดงว่าเราทำทุกอย่างถูกต้องแล้ว สำหรับ การติดตั้งเพิ่มเติมเราต้องการเว็บเซิร์ฟเวอร์

Apache เป็นเว็บเซิร์ฟเวอร์ฟรีที่ได้รับความนิยมมากที่สุด ในปี 2559 มีการใช้งานบน 33% ของไซต์อินเทอร์เน็ตทั้งหมด ซึ่งคิดเป็นประมาณ 304 พันล้านไซต์ เว็บเซิร์ฟเวอร์นี้ได้รับการพัฒนาย้อนกลับไปในปี 1995 เพื่อทดแทน NCSA เซิร์ฟเวอร์ยอดนิยมและแก้ไขปัญหามากมาย มีข่าวลือว่าชื่อของเขามาจากความไม่แน่นอน ในขณะที่เขากำลังแก้ไขข้อผิดพลาดของ NCSA ปัจจุบันเป็นโปรแกรมข้ามแพลตฟอร์มที่รองรับ Windows, Linux และ MacOS และให้ความยืดหยุ่น การปรับแต่ง และฟังก์ชันการทำงานที่เพียงพอ โปรแกรมมีโครงสร้างแบบโมดูลาร์ซึ่งช่วยให้คุณสามารถขยายฟังก์ชันการทำงานได้เกือบไม่มีกำหนดโดยใช้โมดูล

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

บน ช่วงเวลานี้, ที่สุด เวอร์ชันใหม่โปรแกรม 2.4 ดังนั้นการตั้งค่า Apache 2.4 จะได้รับการพิจารณา ดังที่ฉันได้กล่าวไปแล้วบน Linux โปรแกรมได้รับการติดตั้งโดยใช้คำสั่งสองสามคำสั่ง หากต้องการติดตั้งบน Ubuntu ให้อัพเดตระบบเป็นเวอร์ชันล่าสุดก่อน:

อัปเดต sudo apt
$ sudo apt อัพเกรด

จากนั้นติดตั้ง apache2:

sudo apt ติดตั้ง apache2

ในการแจกแจงอื่น ๆ แพ็คเกจโปรแกรมจะเรียกว่า this หรือ httpd และการติดตั้งจะไม่ทำให้คุณลำบาก

หลังจากการติดตั้งเสร็จสิ้นคุณจะต้องเพิ่มเว็บเซิร์ฟเวอร์เพื่อเริ่มต้นระบบเพื่อไม่ให้เริ่มทำงานด้วยตนเองหลังจากเปิดคอมพิวเตอร์:

sudo systemctl เปิดใช้งาน apache2

การตั้งค่าอาปาเช่

เวลาผ่านไปแล้วเมื่อ การกำหนดค่าอาปาเช่ถูกจัดเก็บไว้ในไฟล์เดียว แต่มันถูกต้อง: เมื่อทุกอย่างถูกแจกจ่ายในไดเร็กทอรีของตัวเอง การนำทางไฟล์การกำหนดค่าจะง่ายกว่า

การตั้งค่าทั้งหมดอยู่ในโฟลเดอร์ /etc/apache/:

  • ไฟล์ /etc/apache2/apache2.confรับผิดชอบการตั้งค่าพื้นฐาน
  • /etc/apache2/conf-available/* - การตั้งค่าเพิ่มเติมเว็บเซิร์ฟเวอร์
  • /etc/apache2/mods-available/*- การตั้งค่าโมดูล
  • /etc/apache2/sites-available/*- การตั้งค่าโฮสต์เสมือน
  • /etc/apache2/ports.conf- พอร์ตที่ apache ทำงาน
  • /etc/apache2/envvars

อย่างที่คุณสังเกตเห็น มีสองโฟลเดอร์สำหรับ conf, mods และ site สิ่งเหล่านี้พร้อมใช้งานและเปิดใช้งาน เมื่อเปิดใช้งานโมดูลหรือโฮสต์ ก ลิงค์สัญลักษณ์จากโฟลเดอร์ที่มีอยู่ไปยังโฟลเดอร์ที่เปิดใช้งาน ดังนั้นจึงควรตั้งค่าในโฟลเดอร์ที่มีอยู่จะดีกว่า โดยทั่วไป คุณสามารถทำได้โดยไม่ต้องใช้โฟลเดอร์เหล่านี้ นำทุกอย่างและทิ้งทุกอย่างลงในไฟล์เดียวด้วยวิธีที่ล้าสมัย และทุกอย่างก็จะได้ผล แต่ตอนนี้ไม่มีใครทำแบบนั้นแล้ว

ก่อนอื่นเรามาดูกันดีกว่า ไฟล์หลักการกำหนดค่า:

vi /eta/apache2/apache2.conf

หมดเวลา- ระบุระยะเวลาที่เซิร์ฟเวอร์จะพยายามส่งหรือรับข้อมูลที่ถูกขัดจังหวะต่อไป 160 วินาทีก็เพียงพอแล้ว

ให้มีชีวิตอยู่ต่อไป- มาก พารามิเตอร์ที่มีประโยชน์ช่วยให้คุณสามารถถ่ายโอนไฟล์หลายไฟล์ในการเชื่อมต่อเดียว ตัวอย่างเช่น ไม่เพียงแต่หน้า html เท่านั้น แต่ยังรวมถึงไฟล์รูปภาพและ css ด้วย

คำขอ MaxKeepAlive 100 - จำนวนเงินสูงสุดคำขอต่อการเชื่อมต่อยิ่งมากยิ่งดี

KeepAliveTimeout 5- หมดเวลาการเชื่อมต่อ โดยปกติจะใช้เวลา 5-10 วินาทีในการโหลดหน้าเว็บ ดังนั้นคุณไม่จำเป็นต้องตั้งค่าใดๆ อีกต่อไป แต่คุณไม่จำเป็นต้องตัดการเชื่อมต่อก่อนที่ข้อมูลทั้งหมดจะโหลด

ผู้ใช้, กลุ่ม- ผู้ใช้และกลุ่มในนามของโปรแกรมที่จะรัน

ชื่อโฮสต์ Lookups- เขียนลงบันทึกแทนที่อยู่ IP ชื่อโดเมนจะดีกว่าถ้าปิดการใช้งานเพื่อเพิ่มความเร็วในการทำงาน

ระดับบันทึก- ระดับของการบันทึกข้อผิดพลาด ตามค่าเริ่มต้น จะใช้คำเตือน แต่เพื่อให้บันทึกกรอกช้าลง เพียงเปิดใช้งานข้อผิดพลาด

รวม- คำสั่งรวมทั้งหมดมีหน้าที่รับผิดชอบในการเชื่อมต่อไฟล์การกำหนดค่าที่กล่าวถึงข้างต้น

คำสั่งไดเร็กทอรีมีหน้าที่ในการตั้งค่าสิทธิ์การเข้าถึงไดเร็กทอรีเฉพาะใน ระบบไฟล์. ไวยากรณ์ที่นี่คือ:


ค่าพารามิเตอร์

ตัวเลือกพื้นฐานต่อไปนี้มีอยู่ที่นี่:

อนุญาตแทนที่- ระบุว่าควรอ่านไฟล์ .htaccess จากไดเร็กทอรีนี้หรือไม่ ซึ่งเป็นไฟล์การตั้งค่าเดียวกันและมีไวยากรณ์เหมือนกัน ทั้งหมด - อนุญาตทุกอย่าง ไม่มี - อย่าอ่านไฟล์เหล่านี้

DocumentRoot- กำหนดว่าควรนำเอกสารโฟลเดอร์ใดไปแสดงให้ผู้ใช้เห็น

ตัวเลือก- ระบุคุณสมบัติเว็บเซิร์ฟเวอร์ที่ควรได้รับอนุญาตในโฟลเดอร์นี้ ตัวอย่างเช่น ทั้งหมด - อนุญาตทุกอย่าง FollowSymLinks - ติดตามลิงก์สัญลักษณ์ ดัชนี - แสดงเนื้อหาของไดเร็กทอรีหากไม่มีไฟล์ดัชนี

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

คำสั่ง- ช่วยให้คุณควบคุมการเข้าถึงไดเร็กทอรี ยอมรับสองค่า: อนุญาต, ปฏิเสธ - อนุญาตสำหรับทุกคนยกเว้นที่ระบุไว้ หรือ ปฏิเสธ, อนุญาต - ปฏิเสธสำหรับทุกคน ยกเว้นที่ระบุไว้..ru

คำสั่งทั้งหมดนี้ไม่ได้ใช้ที่นี่ เนื่องจากเราพอใจกับค่าเริ่มต้น แต่ในไฟล์ .htaccess คำสั่งเหล่านี้จะมีประโยชน์มาก

เราเหลือไฟล์ /etc/apache2/ports.conf:

ประกอบด้วยคำสั่ง Listen เพียงหนึ่งคำสั่ง ซึ่งจะบอกโปรแกรมว่าควรใช้งานพอร์ตใด

ไฟล์สุดท้ายคือ /etc/apache2/envvars คุณไม่น่าจะใช้งานมันได้ มันมีตัวแปรที่สามารถใช้ในไฟล์คอนฟิกูเรชันอื่นได้

การตั้งค่าเซิร์ฟเวอร์ Apache ผ่าน htaccess

ไฟล์ .htaccess ช่วยให้คุณสามารถกำหนดค่าเว็บเซิร์ฟเวอร์ Ubuntu ของคุณให้ทำงานในไดเรกทอรีเฉพาะได้ คำแนะนำทั้งหมดที่ระบุในไฟล์นี้จะถูกดำเนินการเหมือนกับว่าถูกห่อไว้ในแท็ก ถ้าอยู่ในไฟล์หลัก

สิ่งสำคัญคือต้องทราบว่าเพื่อให้เซิร์ฟเวอร์อ่านคำแนะนำจาก .htaccess การตั้งค่าสำหรับโฟลเดอร์นี้ในไฟล์โฮสต์หลักหรือเสมือนจะต้องไม่มี AllowOverride ไม่มีเพื่อให้การตั้งค่าทั้งหมดทำงานได้ตามที่คุณต้องการ อนุญาตแทนที่ทั้งหมด.

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

คำสั่งปฏิเสธอนุญาต
ปฏิเสธจากทั้งหมด

ปฏิเสธไม่ให้ทุกคนเข้าถึงโฟลเดอร์นี้ ซึ่งสำคัญสำหรับใช้กับโฟลเดอร์การกำหนดค่า บ่อยครั้งที่ .htaccess ใช้เพื่อทำงานกับโมดูล mod_rewrite ซึ่งช่วยให้คุณเปลี่ยนคำขอได้ทันที:

เขียนใหม่เครื่องยนต์บน
เขียนกฎใหม่ ^product/([^/\.]+)/?$ product.php?id=$1 [L]

แต่นี่เป็นหัวข้อที่กว้างมากและอยู่นอกเหนือขอบเขตของบทความนี้

การกำหนดค่าโมดูล Apache

ดังที่ฉันได้กล่าวไปแล้ว Apache เป็นโปรแกรมโมดูลาร์ซึ่งสามารถขยายฟังก์ชันการทำงานได้โดยใช้โมดูล โมดูลโหลดเดอร์ที่มีอยู่ทั้งหมดและไฟล์คอนฟิกูเรชันโมดูลอยู่ในโฟลเดอร์ /etc/apache/mods-available และเปิดใช้งานใน /etc/apache/mods-enable

แต่คุณไม่จำเป็นต้องวิเคราะห์เนื้อหาของโฟลเดอร์เหล่านี้ การกำหนดค่า Apache 2.4 โดยการเพิ่มโมดูลทำได้โดยใช้คำสั่งพิเศษ ดูทั้งหมด โมดูลที่ทำงานอยู่คุณสามารถใช้คำสั่ง:

คุณสามารถเปิดใช้งานโมดูลด้วยคำสั่ง:

sudo a2enmod module_name

และปิดการใช้งาน:

sudo a2dismod module_name

หลังจากเปิดหรือปิดการใช้งานโมดูลแล้ว คุณต้องรีสตาร์ท apache:

sudo systemctl รีสตาร์ท apache2

เมื่อดำเนินการคำสั่งใดคำสั่งหนึ่งเหล่านี้ ลิงก์สัญลักษณ์ไปยังไฟล์โมดูลที่มีส่วนขยายโหลดจะถูกสร้างขึ้นหรือลบในไดเร็กทอรี mods-available คุณสามารถดูเนื้อหาของไฟล์นี้ได้มีเพียงบรรทัดเดียวเท่านั้น ตัวอย่างเช่น:

vi /etc/apache2/mods-available/deflate.load

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

การตั้งค่าโมดูลจะอยู่ในโฟลเดอร์เดียวกัน เฉพาะในไฟล์ที่มีนามสกุล .conf แทนที่จะเป็นโหลด ตัวอย่างเช่น ลองดูการตั้งค่าของโมดูลเดียวกันสำหรับการบีบอัดแบบยุบ:

vi /etc/apache2/mods-available/deflate.conf

ไฟล์ในโฟลเดอร์ conf-available ซึ่งเป็นโมดูลเดียวกัน มีการติดตั้งแยกต่างหากจาก apache เท่านั้น ไฟล์เหล่านี้สามารถเป็นไฟล์กำหนดค่าสำหรับการรวม โมดูล PHPหรือภาษาโปรแกรมอื่นๆ ทุกอย่างทำงานเหมือนกันทุกประการที่นี่ เฉพาะคำสั่งสำหรับเปิดใช้งานและปิดใช้งานโมดูลเหล่านี้เท่านั้นที่แตกต่างกันเล็กน้อย:

a2enconf module_name

ชื่อโมดูล a2disconf

อย่างที่คุณเห็น การเปิดใช้งานโมดูลนั้นง่ายมาก มาเปิดใช้งานบางส่วนที่จำเป็นแต่ไม่ได้เปิดใช้งานโดยโมดูลเริ่มต้น:

sudo a2enmod หมดอายุ
$ sudo a2enmod ส่วนหัว
$ sudo a2enmod เขียนใหม่
$ sudo a2enmod ssl

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

การกำหนดค่าโฮสต์เสมือนของ Apache

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

การตั้งค่า โฮสต์อาปาเช่อยู่ในโฟลเดอร์ /etc/apache2/hosts-available/ หากต้องการสร้างโฮสต์ใหม่ เพียงสร้างไฟล์ด้วยชื่อใดก็ได้ (ควรลงท้ายด้วยชื่อโฮสต์จะดีกว่า) แล้วกรอกข้อมูลที่จำเป็น คุณต้องรวมพารามิเตอร์เหล่านี้ทั้งหมดไว้ในคำสั่ง โฮสต์เสมือนนอกจากพารามิเตอร์ที่กล่าวถึงในที่นี้แล้ว ยังมีการใช้สิ่งต่อไปนี้:

  • ชื่อเซิร์ฟเวอร์- ชื่อโดเมนหลัก
  • เซิร์ฟเวอร์นามแฝง- ชื่อเพิ่มเติมที่จะเข้าถึงไซต์ได้
  • ผู้ดูแลระบบเซิร์ฟเวอร์- อีเมลของผู้ดูแลระบบ
  • DocumentRoot- โฟลเดอร์ที่มีเอกสารสำหรับโดเมนนี้

ตัวอย่างเช่น:

vi /etc/apache2/sites-available/test.site.conf

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

เพื่อให้เว็บไซต์ปรากฏบนอินเทอร์เน็ต จะต้องโฮสต์บนเซิร์ฟเวอร์ของผู้โฮสต์หรือของคุณเอง เชื่อมต่อกับอินเทอร์เน็ต และมีที่อยู่ IP เฉพาะ เซิร์ฟเวอร์คือคอมพิวเตอร์ที่มีความพิเศษ ซอฟต์แวร์ซึ่งเรียกอีกอย่างว่า “เว็บเซิร์ฟเวอร์”

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

ในปี 1994 Rob McCool พนักงานของ National Center for Supercomputing Applications ที่ University of Illinois (NCSA) ได้เปิดตัวเว็บเซิร์ฟเวอร์เครื่องแรก ซึ่งเรียกว่า NCSA HTTP daemon เพื่อการใช้งานสาธารณะ เซิร์ฟเวอร์ได้รับความนิยมในวงแคบ แต่ในช่วงกลางปี ​​1994 McCool ก็ออกจากมหาวิทยาลัยและการพัฒนาก็หยุดลง

ผู้ดูแลเว็บกลุ่มเล็กๆ ที่สนใจได้เริ่มต้นขึ้น ทำงานร่วมกันเหนือผลิตภัณฑ์ การสื่อสารบนแผ่นอภิปราย อีเมลพวกเขาพัฒนา "แพตช์" และนวัตกรรมสำหรับเซิร์ฟเวอร์ พวกเขาเป็นผู้สร้าง Apache Group ซึ่งพัฒนาเซิร์ฟเวอร์ Apache เวอร์ชันแรก สิ่งนี้เกิดขึ้นในเดือนเมษายน พ.ศ. 2538 เมื่อมีการนำ "แพตช์" ที่มีอยู่ทั้งหมดไปใช้กับฐาน (เซิร์ฟเวอร์ NCSA 1.3) นี่คือลักษณะที่ Apache 0.6.2 เปิดตัวสู่สาธารณะครั้งแรกอย่างเป็นทางการ

Apache เวอร์ชันสาธารณะรุ่นแรกปรากฏในเดือนเมษายน พ.ศ. 2538 และเผยแพร่เวอร์ชัน 1.0 ในเดือนธันวาคม

การทำงานบนเซิร์ฟเวอร์ไม่ได้หยุดเพียงวันเดียว และในไม่ช้ามันก็กลายเป็นหนึ่งในงานยอดนิยมที่สุด หลังจากการทดสอบหลายครั้ง เวอร์ชัน 1.0 ปรากฏเมื่อวันที่ 1 ธันวาคม พ.ศ. 2538 โดยมีความเสถียรและเชื่อถือได้ ตลอดหลายปีที่ผ่านมาและจนถึงทุกวันนี้ Apache ยังคงเป็นอิสระโดยสมบูรณ์ บางทีนี่อาจเป็นตัวกำหนดความสำเร็จของเซิร์ฟเวอร์ด้วยเพราะตาม NetCraft ปัจจุบัน Apache ได้รับการติดตั้งบน 67% ของเซิร์ฟเวอร์ทั้งหมดในโลก

ขณะนี้เซิร์ฟเวอร์ Apache ได้รับการติดตั้งบนเซิร์ฟเวอร์ 67% ทั่วโลก ขณะนี้มีการพัฒนาสองสาขาพร้อมกัน

ในขณะนี้ Apache สองสาขากำลังได้รับการพัฒนาแบบคู่ขนาน - เวอร์ชัน 2.0 และ 1.3 เวอร์ชันที่สองมีการเปลี่ยนแปลงจำนวนมาก ซึ่งส่งผลต่อแกนหลักของโปรแกรมและบางส่วนเป็นหลัก โมดูลที่สำคัญ. เนื่องจากโมดูลที่เขียนโดยนักพัฒนาบุคคลที่สามสำหรับเวอร์ชัน 1.3 จะไม่ทำงานในเวอร์ชัน 2.0 จึงรองรับ Apache "เก่า" ด้วยเช่นกัน อย่างไรก็ตาม หากคุณกำลังจะติดตั้ง Apache เป็นครั้งแรก ก็ควรพิจารณาเวอร์ชันใหม่ให้ละเอียดยิ่งขึ้น

Apache เป็นเว็บเซิร์ฟเวอร์โอเพ่นซอร์สที่มีคุณสมบัติครบถ้วนและสามารถขยายได้

แล้วอาปาเช่คืออะไร? เป็นเว็บเซิร์ฟเวอร์ที่มีคุณสมบัติครบถ้วนและขยายได้ซึ่งรองรับโปรโตคอล HTTP/1.1 อย่างสมบูรณ์และเป็นโอเพ่นซอร์ส เซิร์ฟเวอร์สามารถทำงานได้บนแพลตฟอร์มทั่วไปเกือบทั้งหมด มีเซิร์ฟเวอร์ปฏิบัติการสำเร็จรูปสำหรับ Windows NT, Windows 9x, OS/2, Netware 5.x และระบบ UNIX หลายระบบ ในขณะเดียวกันก็ติดตั้งและกำหนดค่าได้ง่ายมาก คุณจะสามารถตรวจสอบสิ่งนี้ได้ในภายหลัง

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

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

การใช้เซิร์ฟเวอร์ Apache คุณสามารถดำเนินการตรวจสอบสิทธิ์แบบง่ายๆ ได้

ฟังก์ชันที่ซับซ้อนมากขึ้นซึ่งฝังอยู่ในโปรโตคอล HTTP/1.1 คือการตรวจสอบสิทธิ์ผู้ใช้ การใช้เครื่องมือเซิร์ฟเวอร์ Apache มาตรฐาน คุณสามารถจำกัดการเข้าถึงได้ บางหน้าเว็บไซต์สำหรับ ผู้ใช้ที่แตกต่างกัน. นี่เป็นสิ่งจำเป็น ตัวอย่างเช่น เพื่อสร้างอินเทอร์เฟซการดูแลระบบสำหรับไซต์ ด้วยเหตุนี้ จึงมีการใช้ไฟล์ .htaccess และ .htpasswd รวมถึงโมดูล mod_auth และ mod_access ผู้ใช้สามารถแบ่งออกเป็นกลุ่ม และแต่ละคนสามารถกำหนดสิทธิ์การเข้าถึงของตนเองได้

เซิร์ฟเวอร์ Apache รองรับเทคโนโลยี SSI

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

คุณสามารถสร้างไดเร็กทอรีแบบกำหนดเองสำหรับเว็บไซต์บนเซิร์ฟเวอร์ Apache ได้

หากอยู่บนเซิร์ฟเวอร์เดียวกันกับที่ติดตั้ง ระบบปฏิบัติการ ครอบครัวยูนิกซ์และเซิร์ฟเวอร์ Apache มีผู้ใช้หลายคน จากนั้นแต่ละคนก็สามารถสร้างไดเร็กทอรีแยกกันได้ แม่นยำยิ่งขึ้น มันจะถูกสร้างขึ้นโดยอัตโนมัติพร้อมกับนามแฝง ทำได้โดยใช้โมดูล mod_userdir และคำสั่ง UserDir ตัวอย่างเช่น คุณสามารถใส่โฟลเดอร์ public_html เข้าไปได้ โฮมโฟลเดอร์ผู้ใช้เพื่อให้ตรงกับที่อยู่ www.site.ru/~user โดยทั่วไปนี่คือสิ่งที่ทำบนเซิร์ฟเวอร์ของไซต์ส่วนใหญ่ที่ให้บริการโฮสติ้งฟรี ผู้ดูแลเซิร์ฟเวอร์สามารถอนุญาตหรือปฏิเสธได้ ผู้ใช้บางรายสร้างโฮมเพจ ใช้ SSI และฟังก์ชันเซิร์ฟเวอร์อื่นๆ โฮสติ้งเต็มรูปแบบมักจะเกี่ยวข้องกับการสร้างเซิร์ฟเวอร์เสมือนแยกต่างหากสำหรับผู้ใช้แต่ละราย

คุณสามารถกำหนดค่าโฮสต์เสมือนได้ ต้องขอบคุณเซิร์ฟเวอร์จริงหนึ่งเซิร์ฟเวอร์ที่สามารถมีเซิร์ฟเวอร์เสมือนได้หลายเครื่อง

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

หากคุณต้องการวางโดเมน domain.ru และ domain.com บนเซิร์ฟเวอร์ของคุณ ก่อนอื่นคุณต้องตรวจสอบให้แน่ใจก่อน ระบบดีเอสเอ็นพวกเขาได้รับมอบหมายที่อยู่ IP ของคุณ หลังจากนี้ในการกำหนดค่า ไฟล์อาปาเช่สร้างสองคำสั่ง โดยที่คุณอธิบายแต่ละโฮสต์เสมือน ดังนั้นเซิร์ฟเวอร์จะรู้ว่าโฟลเดอร์ใดที่จะ "ส่ง" คำขอที่เข้ามา

Apache รองรับการทำงานกับ PHP, CGI และสคริปต์อื่นๆ

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

โมดูล mod_cgi ช่วยให้คุณสามารถโฮสต์สคริปต์ CGI บนเซิร์ฟเวอร์ได้ โดยทั่วไป ไฟล์เหล่านี้เป็นเพียงไฟล์ปฏิบัติการที่เขียนด้วยภาษาโปรแกรมที่ถูกต้องภาษาใดภาษาหนึ่ง สามารถมีได้ทั้งในรูปแบบที่คอมไพล์ (เช่น นี่คือสิ่งที่พวกเขาทำหากเขียน CGI ด้วย C++) หรือในรูปแบบ ข้อความต้นฉบับ(หากติดตั้ง Perl บนเซิร์ฟเวอร์ โปรแกรมเมอร์ก็สามารถวางไฟล์ดังกล่าวได้ บางครั้งก็มีนามสกุล .pl)

สำหรับ PHP ความสามารถในการรวมเข้ากับ Apache นั้นมาจากนักพัฒนาของ PHP เอง Apache ทำหน้าที่เป็นสื่อกลางระหว่างสคริปต์และคอมไพเลอร์เท่านั้น มีสองวิธีในการรวม PHP เข้ากับ Apache ประการแรกคือการติดตั้งโมดูลพิเศษที่ขยายขีดความสามารถของเซิร์ฟเวอร์และจากนั้นก็สามารถ "รวบรวม" สคริปต์ได้ และอย่างที่สองคือการสร้างการเชื่อมต่อในไฟล์กำหนดค่าระหว่างไฟล์ php และคอมไพเลอร์เอง (ซึ่งอยู่บนดิสก์ในรูปแบบของไฟล์ .cgi หรือ .exe)

Apache เวอร์ชันล่าสุดมีโมดูลสำหรับการทำงานกับการเข้ารหัส SSL/TSL ที่แข็งแกร่ง

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

อาปาเช่เป็นผู้นำ โปรโตคอลโดยละเอียดทุกสิ่งที่เกิดขึ้นบนเซิร์ฟเวอร์

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

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

เซิร์ฟเวอร์อาปาเช่ HTTPเป็นเว็บเซิร์ฟเวอร์โอเพ่นซอร์สข้ามแพลตฟอร์ม ตั้งแต่เดือนเมษายน พ.ศ. 2539 เป็นต้นมา เป็นเซิร์ฟเวอร์ HTTP ที่ได้รับความนิยมมากที่สุดบนอินเทอร์เน็ต ในเดือนสิงหาคม พ.ศ. 2550 มีการใช้งาน 51% ของเว็บเซิร์ฟเวอร์ทั้งหมด ข้อได้เปรียบหลักของ Apache คือความน่าเชื่อถือและความยืดหยุ่นในการกำหนดค่า เว็บไซต์อย่างเป็นทางการ: httpd.apache.org.

เซิร์ฟเวอร์นี้เขียนขึ้นเมื่อต้นปี 1995 และเชื่อกันว่าชื่อของมันกลับไปเป็นชื่อการ์ตูนว่า "a patchy" (ภาษาอังกฤษ "patch") เนื่องจากกำจัดข้อผิดพลาดของเซิร์ฟเวอร์ที่ได้รับความนิยมในขณะนั้น เวิลด์ไวด์เว็บ NCSA HTTPd 1.3. ต่อมาจากเวอร์ชัน 2.x เซิร์ฟเวอร์ถูกเขียนใหม่อีกครั้ง และตอนนี้ไม่มีรหัส NCSA แต่ชื่อยังคงอยู่ ในขณะนี้ การพัฒนาดำเนินการในสาขา 2.2 และในเวอร์ชัน 1.3 และ 2.0 มีการแก้ไขข้อบกพร่องด้านความปลอดภัยเท่านั้น

เว็บเซิร์ฟเวอร์ Apache ได้รับการพัฒนาและดูแลโดยชุมชนนักพัฒนาแบบเปิดภายใต้การอุปถัมภ์ของ Apache Software Foundation และรวมอยู่ในผลิตภัณฑ์ซอฟต์แวร์จำนวนมาก

เหตุใดคุณจึงต้องติดตั้งเว็บเซิร์ฟเวอร์บนคอมพิวเตอร์ของคุณ? ต่อไปนี้เป็นสองตัวเลือก: ก) หากคุณสามารถเข้าถึงอินเทอร์เน็ตได้ ก่อนที่จะโหลดหน้าไซต์ของคุณไปยังเซิร์ฟเวอร์จริง คุณสามารถสร้างและแก้ไขข้อบกพร่องเหล่านั้นในเครื่องคอมพิวเตอร์ของคุณได้ b) หากคุณไม่สามารถเข้าถึงอินเทอร์เน็ต แต่มีเครือข่ายท้องถิ่นในห้องเรียน คุณสามารถติดตั้งเซิร์ฟเวอร์และใช้เพื่อการศึกษาได้

1. เพื่อแยกโครงการเว็บออกจากโครงการอื่นๆ ทั้งหมด ซอฟต์แวร์ หน้า html สคริปต์ ฯลฯ ทั้งหมด ในตัวอย่างนี้ เราจะติดตั้งในไดเร็กทอรีแยกต่างหาก C:\MyServers. ในไดเร็กทอรีนี้เราจะสร้างไดเร็กทอรี เราสำหรับ โปรแกรมที่จำเป็นและ บ้านสำหรับจัดเก็บเว็บไซต์ คุณสามารถเลือกชื่อและตำแหน่งอื่นสำหรับไดเร็กทอรีได้

2. เราจะติดตั้ง Apache 2.2.8 เวอร์ชันล่าสุด ขั้นแรก คุณต้องดาวน์โหลดชุดการแจกจ่ายเวอร์ชันล่าสุดเพื่อติดตั้ง Apache ที่ http://httpd.apache.org/download.cgi เลือกหนึ่งในมิเรอร์สำหรับดาวน์โหลดการแจกจ่ายเซิร์ฟเวอร์ Apache ตัวอย่างเช่น สิ่งเหล่านี้อาจเป็น http://www.sai.msu.su/apache/httpd/binaries/win32/, http://apache.rinet.ru/dist/httpd/binaries/win32/, http:// apache .rediska.ru/httpd/binaries/win32/ หรืออื่น ๆ เวอร์ชันสำหรับทุกแพลตฟอร์มรวมถึง และสำหรับ Win32 นั้นแจกฟรี

นอกจากนี้ในหน้านี้ยังมีลิงก์ไปยังการแจกแจงสองรายการ:
Win32 Binary ที่ไม่มี crypto (ไม่มี mod_ssl) ( โปรแกรมติดตั้ง MSI): apache_2.2.8-win32-x86-no_ssl.msi
Win32 Binary รวมถึง OpenSSL 0.9.8g (ตัวติดตั้ง MSI): apache_2.2.8-win32-x86-openssl-0.9.8g.msi

บันทึก:
SSL (เลเยอร์ซ็อกเก็ตที่ปลอดภัย) - โปรโตคอลการเข้ารหัส, การให้ โอนอย่างปลอดภัยข้อมูลผ่านทางอินเทอร์เน็ต เมื่อใช้ จะมีการสร้างการเชื่อมต่อที่ปลอดภัยระหว่างไคลเอนต์และเซิร์ฟเวอร์ เพื่อเข้าถึงเพจที่ได้รับการป้องกัน โปรโตคอล SSLโดยปกติแล้ว URL จะใช้คำนำหน้า https แทนคำนำหน้า http ปกติ ซึ่งบ่งชี้ว่าจะใช้การเชื่อมต่อ SSL SSL กำหนดให้เซิร์ฟเวอร์ต้องมีใบรับรอง SSL จึงจะทำงานได้

3. เรียกใช้ไฟล์การติดตั้งและปฏิบัติตามคำแนะนำของวิซาร์ดการติดตั้ง

เราเห็นด้วยกับข้อตกลงใบอนุญาต

ขั้นตอนต่อไปขอให้คุณกำหนดการตั้งค่าเซิร์ฟเวอร์ ตามโดเมนและชื่อที่เราระบุ โลคัลโฮสต์เป็นที่อยู่ที่จะส่งการแจ้งเตือนของเซิร์ฟเวอร์ ที่อยู่ใดๆ เช่น: ผู้ดูแลระบบ@localhost.

ชื่อคอมพิวเตอร์ช่วยจำ "localhost" หมายถึงสิ่งเดียวกัน อุปกรณ์เครือข่าย(คอมพิวเตอร์) ที่ใช้ส่งแพ็กเก็ตเครือข่ายหรือสร้างการเชื่อมต่อ เหล่านั้น. นี่คือคอมพิวเตอร์เครื่องเดียวกับที่คุณติดตั้งเว็บเซิร์ฟเวอร์ โดยทั่วไปแล้ว "localhost" จะถูกแมปกับที่อยู่ 127.0.0.1

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

เลือกการติดตั้งมาตรฐาน

การเลือกตำแหน่งที่จะติดตั้งเซิร์ฟเวอร์ คุณสามารถปล่อยให้เป็นค่าเริ่มต้นได้ แต่ฉันแนะนำให้ใส่ซอฟต์แวร์ทั้งหมดสำหรับเครือข่ายไว้ในโฟลเดอร์เดียว เช่น: C:\MyServers(มันง่ายกว่า) คลิกปุ่มเปลี่ยน... และในหน้าต่างการเลือกเส้นทางให้ระบุ: C:\MyServers\usr\local\แทน C:\Program Files\ ซอฟต์แวร์อาปาเช่มูลนิธิ \ Apache2.2 \

หากคุณทำทุกอย่างถูกต้องและมั่นใจ :) คลิกปุ่มติดตั้ง

กระบวนการติดตั้งจะเริ่มขึ้น...

ในตอนท้าย หากต้องการออกจากวิซาร์ดการติดตั้ง ให้คลิกปุ่มเสร็จสิ้น

หลังจากการติดตั้งเสร็จสิ้น เซิร์ฟเวอร์จะเริ่มทำงานโดยอัตโนมัติ (ควรเริ่มต้น) และไอคอนจะปรากฏขึ้นในถาดใกล้กับนาฬิกา
หากสามเหลี่ยมสีเขียวปรากฏบนไอคอน แสดงว่าเซิร์ฟเวอร์ได้รับการติดตั้งและเริ่มทำงานตามปกติ

ดับเบิลคลิกที่ไอคอนนี้เพื่อเปิดหน้าต่างนี้:

คุณสามารถดูสถานะของบริการได้ที่นี่ และหากจำเป็น ให้หยุด เริ่ม รีสตาร์ท ฯลฯ

ในอนาคต (หลังจากการเปิดคอมพิวเตอร์ครั้งถัดไป) ไอคอนนี้ (ในเวอร์ชันนี้) จะไม่ปรากฏอีกต่อไป ดังนั้นคุณสามารถเพิ่มการเปิดตัวได้ ตรวจสอบเซิร์ฟเวอร์ Apacheเพื่อโหลดอัตโนมัติด้วยตนเอง

มาตรวจสอบการทำงานของมันโดยเปิดเบราว์เซอร์และป้อนที่อยู่เซิร์ฟเวอร์ของคุณในแถบที่อยู่ในกรณีของเรา http://localhostหรือเพียงแค่ โลคัลโฮสต์. หากคุณเห็นหน้าดังกล่าวคุณสามารถแสดงความยินดีได้ - คุณได้ติดตั้งเซิร์ฟเวอร์แล้วสิ่งที่เหลืออยู่คือการกำหนดค่าเล็กน้อย

4. ในการกำหนดค่าเซิร์ฟเวอร์ ให้เปิดไฟล์กำหนดค่าผ่าน "Start"

หรือด้วยตนเองในโฟลเดอร์ที่ติดตั้ง Apache ในกรณีของเรา C:\MyMyServers\usr\local\Apache2.2\conf\httpd.conf

httpd.conf- นี่เป็นไฟล์เดียวที่ต้องกำหนดค่า คุณต้องค้นหาและเปลี่ยนแปลงบางบรรทัดในนั้น ขอแนะนำให้หลีกเลี่ยงความเจ็บปวดแสนสาหัสในภายหลัง :) ก่อนอื่นให้ทำสำเนาไฟล์นี้ ทันใดนั้นคุณก็ลบสิ่งที่ไม่จำเป็นออกไป มีความคิดเห็นมากมายในไฟล์นี้ที่ขึ้นต้นด้วยเครื่องหมาย # พารามิเตอร์บางตัวยังถูกใส่ความคิดเห็นไว้ในตอนแรกด้วย

ก) ตั้งค่าของพารามิเตอร์ ServerName ดังต่อไปนี้ ชื่อเซิร์ฟเวอร์โฮสต์ท้องถิ่น. (ไม่มีจุดต่อท้าย)

ข) แทน DocumentRoot "C:/MyServers/usr/local/Apache2.2/htdocs"โปรดระบุ DocumentRoot "C:/MyServers/home/localhost/www". C:/MyServers/home/localhost/www คือไดเร็กทอรีสำหรับเก็บไฟล์ html ของคุณ เราสร้าง C:\MyServers\home ตั้งแต่เริ่มต้น ตอนนี้สร้างไดเร็กทอรีอื่น C:\MyServers\home\localhost โดยสร้าง 2 ไดเร็กทอรี: \cgi และ \www.

c) ค้นหาส่วนที่ขึ้นต้นด้วย และสิ้นสุด . แทนที่ด้วย


อนุญาตแทนที่ทั้งหมด
อนุญาตจากทั้งหมด

บล็อกนี้จะจัดเก็บการตั้งค่าเริ่มต้นสำหรับไดเร็กทอรีทั้งหมดของคุณ

d) ค้นหาส่วนที่ขึ้นต้นด้วย และสิ้นสุด ลบทิ้งให้หมดรวมทั้งคอมเม้นท์ด้วย

จ) ค้นหาบล็อก


DirectoryIndexดัชนี.html

ที่นี่มีการระบุไฟล์ดัชนีที่เรียกว่าซึ่งเซิร์ฟเวอร์ออกโดยอัตโนมัติเมื่อเข้าถึงไดเร็กทอรีใด ๆ หากไม่ได้ระบุชื่อของเอกสาร html โดยหลักการแล้ว คุณสามารถเพิ่มชื่ออื่นๆ ที่นี่ได้ เช่น index.htm และ index.php (หากคุณยังคงติดตั้ง PHP และใช้/เขียนสคริปต์ต่อไป) หรือคุณสามารถทำการตั้งค่าเพิ่มเติมในไฟล์...htaccess ได้ ลองแก้ไขให้ถูกต้อง เช่น บล็อกไปที่:


DirectoryIndex.php.index.htm.index.html

จ) หากคุณไม่ได้ใช้สคริปต์ cgi คุณสามารถข้ามจุดนี้ไปได้ แก้ไขพารามิเตอร์ ScriptAlias:

ScriptAlias ​​/cgi-bin/ "C:/MyServers/usr/local/Apache/cgi-bin/"บน ScriptAlias ​​/cgi-bin/ "C:/MyServers/home/localhost/cgi". เพิ่มบรรทัดนี้หลังจากนั้น: ScriptAlias ​​/cgi/ "C:/MyServers/home/localhost/cgi". นี่จะเป็นไดเร็กทอรีที่จะเก็บสคริปต์ CGI ของคุณ

ลบบล็อก ... เนื่องจากเราจะไม่ใช้การตั้งค่าเพิ่มเติมใดๆ

ค้นหาและเปลี่ยนบรรทัด AddHandler cgi-script (อย่าลืมลบความคิดเห็น): AddHandler cgi-สคริปต์ .cgi .bat .exe .plพารามิเตอร์นี้ระบุว่าไฟล์ที่มีนามสกุล .cgi .bat .exe .pl ควรถือเป็นสคริปต์ cgi

f) หากคุณใช้ SSI ให้ตั้งค่าพารามิเตอร์ต่อไปนี้:

เพิ่มประเภทข้อความ/html .shtml
เซิร์ฟเวอร์ AddHandler แยกวิเคราะห์ .shtml .html .htm

g) คำสั่ง Listen ระบุที่อยู่ IP และพอร์ตที่เซิร์ฟเวอร์ Apache จะ "ฟัง" เพื่อรอการเชื่อมต่อ โดยทั่วไป จำนวนของคำสั่งดังกล่าวไม่จำกัด หากคุณจะใช้เซิร์ฟเวอร์เพื่อแก้ไขจุดบกพร่องไซต์ของคุณเท่านั้น ให้ระบุเท่านั้น ฟัง 127.0.0.1:80.

5. แค่นั้นแหละ บันทึกการเปลี่ยนแปลง! รีสตาร์ทเซิร์ฟเวอร์ หากทุกอย่างถูกต้อง เซิร์ฟเวอร์จะทำงาน เปิดเบราว์เซอร์ของคุณและตรวจสอบเหมือนเมื่อก่อน ในเบราว์เซอร์ คุณจะเห็นหน้าที่มี "ดัชนีของ /" เนื่องจากเราไม่ได้วางหน้าหลัก (ดัชนี) (เช่น index.htm) ไว้ในไดเร็กทอรี C:/MyServers/home/localhost/www หากต้องการดูสิ่งที่น่าสนใจยิ่งขึ้น ให้สร้างและบันทึกหน้า html ของคุณที่นั่น ซึ่งสามารถทำได้โดยใช้โปรแกรมแก้ไขเว็บหรือเขียนข้อความด้านล่างใน Notepad และบันทึกไฟล์ด้วยนามสกุล .html (หรือ .htm ไม่ใช่ .txt) เมื่อบันทึกหน้าใน Notepad ให้เลือกประเภทไฟล์: ไฟล์ทั้งหมด และในช่องชื่อไฟล์ให้ระบุ index.htm

ข้อความของไฟล์ index.html (สามารถคัดลอกและบันทึกได้):





หน้าแรก


นี่คือหน้าของฉัน!





โดยการเปิดเบราว์เซอร์และป้อนที่อยู่เซิร์ฟเวอร์ของคุณในแถบที่อยู่ ในกรณีของเรา http://localhostหรือเพียงแค่ โลคัลโฮสต์คุณจะเห็นหน้าแบบนี้ เราขอแสดงความยินดีกับคุณ - คุณได้ติดตั้งและกำหนดค่าเซิร์ฟเวอร์แล้ว

ตอนนี้เราสร้างหน้าเว็บของเรา วางไว้บนเซิร์ฟเวอร์ของเรา (ใน C:/MyServers/home/localhost/www) และ...

เพื่อเข้าถึงเซิร์ฟเวอร์ของคุณจาก เครือข่ายท้องถิ่นบนคอมพิวเตอร์เครื่องใดก็ตามที่เราเขียนที่อยู่เซิร์ฟเวอร์เช่น: http://เซิร์ฟเวอร์หรือเพียงแค่ เซิร์ฟเวอร์(เนื่องจากชื่อคอมพิวเตอร์ในตัวอย่างคือเซิร์ฟเวอร์ และหากคุณมี เช่น ชื่อคอมพิวเตอร์ เป็นต้น พีซี11แล้วมันจะเป็น http://pc11) . โปรดทราบว่าการเข้าถึงจะเป็นไปได้ก็ต่อเมื่อได้รับอนุญาต (ไม่ปฏิเสธ) ในพารามิเตอร์ Listen .

ในการสร้างหน้า html ที่คุณสามารถใช้ได้ นูโว 1.0 - แก้ไขฟรีหน้าเว็บ. ขนาดประมาณ 6.76 MB. คุณสามารถดาวน์โหลดได้จากhttp://nvu.mozilla-russia.org/ เว็บไซต์อย่างเป็นทางการของโปรแกรม Nvu คือ http://www.nvu.com/ NVU คือ โอเพ่นซอร์สโครงการ Linspire เพื่อสร้างโปรแกรมแก้ไข HTML แบบภาพ (WYSIWYG) พื้นฐานสำหรับการสร้าง NVU คือโค้ดที่ดึงมาจาก Mozilla

หรือคุณสามารถใช้ KompoZer - โปรเจ็กต์ที่สืบทอดมาจาก Nvu คอมโปเซอร์- โปรแกรมแก้ไข HTML ฟรีซึ่งให้ทุกสิ่งแก่ผู้เริ่มต้นที่ไม่มีความรู้ HTML เงินทุนที่จำเป็นเพื่อสร้างเอกสารเว็บของคุณเอง โปรแกรมนี้ค่อนข้างเรียบง่ายและใช้งานง่าย มีคุณสมบัติบางอย่างจาก FrontPage และ Dreamweaver มีเครื่องมือแก้ไขสไตล์ ฯลฯ

จาก บรรณาธิการที่ได้รับค่าตอบแทนคุณสามารถสังเกตได้ ไมโครซอฟต์ ออฟฟิศ FrontPage 2003 หรือ Microsoft Office รุ่นต่อ ผู้ออกแบบ SharePoint 2007.