การตั้งค่า Apache: คำแนะนำทีละขั้นตอน การติดตั้ง PHP4 บน Windows การเปลี่ยนเส้นทางคำขอ HTTP ไปยัง HTTPS

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

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

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

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

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

sudo apt ติดตั้ง apache2

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

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

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

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

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

การตั้งค่าทั้งหมดอยู่ในโฟลเดอร์ /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 ซึ่งช่วยให้คุณเปลี่ยนคำขอได้ทันที:

เขียนใหม่เครื่องยนต์บน
RewriteRule ^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 HTTP (ย่อมาจากเซิร์ฟเวอร์แพตช์) เป็นหนึ่งในโปรแกรมยอดนิยมและแพร่หลายที่สุดที่สร้างขึ้นสำหรับนักพัฒนาเว็บและผู้ดูแลระบบทรัพยากรอินเทอร์เน็ต ตามที่นักวิจัยอิสระระบุว่า Apache ได้รับการติดตั้งบนคอมพิวเตอร์ 50% ของผู้ใช้เซิร์ฟเวอร์ HTTP ทั้งหมด

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

Apache รองรับระบบปฏิบัติการและแพลตฟอร์มฮาร์ดแวร์จำนวนมาก และมักใช้ภายใต้การควบคุมระบบปฏิบัติการ ระบบวินโดวส์- สิ่งสำคัญคือเว็บเซิร์ฟเวอร์นี้จะมีการเผยแพร่โดยไม่มีค่าใช้จ่าย

เกี่ยวกับวิธีการติดตั้ง เซิร์ฟเวอร์อาปาเช่สำหรับ ระบบปฏิบัติการ Windows 7 จะถูกกล่าวถึงในบทความนี้

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

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

จากนั้นในหน้าต่างการติดตั้ง คุณจะต้องกรอกข้อมูลในช่องต่างๆ ดังภาพด้านล่าง และในช่อง “ ที่อยู่อีเมลของผู้ดูแลระบบ» ระบุที่อยู่ของคุณ อีเมลคลิก "ถัดไป" และตั้งสวิตช์ไปที่ตำแหน่ง "กำหนดเอง"




ถัดไป คุณต้องสร้างไดเร็กทอรี www บนไดรฟ์ C และระบุเป็น โฟลเดอร์การติดตั้งสำหรับ Apache คลิก "ถัดไป" ในหน้าต่างนี้และ "ติดตั้ง" ในหน้าต่างถัดไป เมื่อการติดตั้งเสร็จสมบูรณ์ คลิกที่ "เสร็จสิ้น"

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

โดยคลิกที่ไอคอนเดียวกัน คลิกขวาเมาส์คุณสามารถไปที่อื่นได้ บริการระบบระบบปฏิบัติการหรือเปิดจอภาพ Apache

เพื่อตรวจสอบว่าใช้งานได้หรือไม่ เซิร์ฟเวอร์ที่ติดตั้ง Apache พิมพ์ http://localhost ในแถบที่อยู่ของเบราว์เซอร์ของคุณ

หากหน้าเว็บปรากฏขึ้นพร้อมข้อความให้กำลังใจ “ใช้งานได้! ", วิธี, การติดตั้งอาปาเช่สำเร็จและทำงานได้อย่างถูกต้อง

การตั้งค่าเว็บเซิร์ฟเวอร์ขั้นพื้นฐาน

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

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

สิ่งที่จำเป็น?

  • เรียกใช้ Apache ภายใต้ แพลตฟอร์มวินโดวส์ 7;
  • จัดเก็บไฟล์ของเว็บไซต์ในอนาคตในไดเร็กทอรีที่เป็นมิตรต่อผู้ใช้ (เช่น C:www)
  • ไม่พบปัญหาในการเข้ารหัสและโดยเฉพาะอย่างยิ่งกับการแสดงอักษรซีริลลิก
  • ความสามารถในการทำงานกับหลายไซต์พร้อมกัน

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

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

แก้ไขเป็น DocumentRoot “C:/www” ควรชี้แจงให้ชัดเจนว่าเครื่องหมายทับในไฟล์นี้ควรเอียงไปทางขวา ไม่ใช่ไปทางซ้าย เนื่องจากคุณคงคุ้นเคยอยู่แล้ว ผู้ใช้วินโดวส์- หลังจากการยักย้ายข้างต้น ปัญหาเกี่ยวกับตำแหน่งของไซต์ของคุณได้รับการแก้ไขแล้ว

ตัวเลือก (กำหนดว่า ฟังก์ชั่นเซิร์ฟเวอร์จะพร้อมใช้งาน) AllowOverride (กำหนดว่าคำสั่งใดจาก .htaccess ที่สามารถแทนที่คำสั่งใน httpd.conf) ลำดับ (กำหนดกฎบางอย่างสำหรับการเข้าถึงเซิร์ฟเวอร์)

รายการพารามิเตอร์ที่ใช้:

ตัวเลือก ตัวเลือกต่อไปนี้เป็นไปได้:

  • รวม – อนุญาตให้ใช้ SSI;
  • รวม NOEXEC – อนุญาตให้ใช้ SSI โดยมีข้อจำกัด (ไม่อนุญาตให้ใช้ #include และ #exec)
  • ดัชนี – อนุญาตให้ใช้ไฟล์ดัชนี และหาก URL ชี้ไปยังไดเร็กทอรีของไซต์ (เช่น www.domain.ru/dir/ ) ซึ่งไม่มี ไฟล์ดัชนีเนื้อหาของไดเร็กทอรีนี้จะปรากฏขึ้น และหากไม่มีตัวเลือกนี้ จะมีการแจ้งเตือนว่าการเข้าถึงถูกปฏิเสธ
  • ExecCGI - การดำเนินการ สคริปต์ซีจีไออนุญาต;
  • FollowSymLinks – เซิร์ฟเวอร์ติดตามลิงก์สัญลักษณ์ที่มีอยู่ของไดเร็กทอรี (ใช้ในระบบ Unix)
  • SymLinksIfOwnerMatch – เซิร์ฟเวอร์ติดตามลิงก์สัญลักษณ์ไดเร็กทอรีที่มีอยู่เฉพาะในกรณีที่ไฟล์เป้าหมายมีเจ้าของคนเดียวกันกับลิงก์เท่านั้น
  • ทั้งหมด – ทั้งหมดที่กล่าวมาข้างต้นได้รับอนุญาต
  • ไม่มี – ห้ามทั้งหมดที่กล่าวมาข้างต้นรวมกัน
  • MultiViews – ความสามารถในการเลือกเนื้อหาเฉพาะและแสดงเนื้อหานั้นขึ้นอยู่กับการตั้งค่าเบราว์เซอร์ (แม้ว่าจะเปิดใช้งานตัวเลือกทั้งหมดก็ตาม ระบุแยกต่างหาก)

อนุญาตแทนที่ ตัวเลือก:

  • AuthConfig – อนุญาตให้คุณใช้คำสั่งในการอนุญาต
  • FileInfo – อนุญาตให้ใช้คำสั่งในการทำงานด้วย ประเภทต่างๆเอกสาร;
  • ดัชนี – อนุญาตให้ใช้คำสั่งสำหรับการทำงานกับไฟล์ดัชนี
  • ขีดจำกัด – อนุญาตให้ใช้คำสั่งเพื่อกำหนดการเข้าถึงโฮสต์
  • ตัวเลือก – อนุญาตให้ใช้คำสั่งเพื่อทำงานกับฟังก์ชันไดเร็กทอรีเฉพาะบางอย่าง
  • ทั้งหมด – ทั้งหมดข้างต้นรวมกัน
  • ไม่มี – ไม่มีข้อใดข้อหนึ่งรวมกัน

คำสั่ง. ตัวเลือก:

  • ปฏิเสธ อนุญาต – ปฏิเสธถูกกำหนดไว้ก่อนคำสั่ง อนุญาต การเข้าถึงจะได้รับอนุญาตตามค่าเริ่มต้น ยกเว้นโฮสต์ที่ระบุในบรรทัดต่อจาก ปฏิเสธจาก
  • อนุญาต, ปฏิเสธ – อนุญาตถูกกำหนดก่อนคำสั่งปฏิเสธ การเข้าถึงจะถูกปฏิเสธตามค่าเริ่มต้น ยกเว้นโฮสต์ที่ระบุไว้ในบรรทัดต่อจากอนุญาตจาก
  • ความล้มเหลวร่วมกัน - อนุญาตให้เข้าถึงได้เฉพาะกับโฮสต์ที่ไม่อยู่ใน Deny และอยู่ใน Allow เท่านั้น

จากข้อมูลข้างต้น ให้ลองตั้งค่าเซิร์ฟเวอร์ของคุณ ในไฟล์ httpd.conf คำสั่ง Directory มีอยู่ในสองชุดตามค่าเริ่มต้น - และ - ไม่ควรแตะตัวเลือกแรก ดังนั้นตัวเลือกที่สองให้ตั้งค่าพารามิเตอร์ดังนี้:

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

กล่าวอีกนัยหนึ่ง ตัวเลือกต่อไปนี้จะถูกเลือกสำหรับโฟลเดอร์ C:/www และโฟลเดอร์ย่อยทั้งหมด:

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

ตอนนี้ ให้บันทึกไฟล์ httpd.conf และรีสตาร์ท Apache โดยใช้ Apache Monitor หรือใช้คำสั่ง apache –k restart บนบรรทัดคำสั่ง การตั้งค่าโฟลเดอร์รูทของไซต์เสร็จสมบูรณ์

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

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

หาก Internet Explorer ที่โด่งดังในกรณีเช่นนี้กำหนดการเข้ารหัสจากหน้านั้นเอง ตัวอย่างเช่น มอซซิลา ไฟร์ฟอกซ์และ Opera ไม่มีความโน้มเอียงสำหรับการกระทำดังกล่าวอย่างแน่นอนและวิธีการตั้งค่าการเข้ารหัสด้วยตนเองในเบราว์เซอร์นั้นแทบจะไม่สะดวกเลย ดังนั้นคุณต้องกำหนดค่า Apache ให้ส่งคืนการเข้ารหัสที่จำเป็นตามค่าเริ่มต้น

ค้นหาบรรทัดในไฟล์ httpd.conf ที่ขึ้นต้นด้วย AddDefaultCharset เป็นไปได้มากว่าการเข้ารหัสจะเป็น ISO-8859-1 ซึ่งไม่มีอักขระซีริลลิก เปลี่ยน ISO-8859-1 เป็น windows-1251 บันทึกไฟล์และรีสตาร์ท Apache ตอนนี้การแสดงภาษารัสเซียที่ถูกต้องบนเว็บไซต์ของคุณจะทำงานได้ในทุกเบราว์เซอร์

เซิร์ฟเวอร์ Apache นั้นค่อนข้างง่ายในการตั้งค่าให้ทำงานกับหลาย ๆ ไซต์ ที่อยู่ที่สามารถใช้สำหรับพวกเขาคือ 127.0.0.2, 127.0.0.3 เป็นต้น ในกรณีนี้ เฉพาะไซต์เริ่มต้น (127.0.0.1) เท่านั้นที่จะมองเห็นได้บนเครือข่าย แต่สำหรับ งานท้องถิ่นนี่ไม่สำคัญ ส่วนของไฟล์ httpd.conf ซึ่งมีการกำหนดค่าทุกสิ่งที่จำเป็นสำหรับสิ่งนี้อยู่ที่ส่วนท้ายสุดและเรียกว่า VirtualHosts

ก่อนหน้านี้ในซีรีส์ของเราเรื่อง พื้นฐานของลินุกซ์เราดูพื้นฐานของการทำงานกับเว็บเซิร์ฟเวอร์ Apache เป็นเว็บเซิร์ฟเวอร์ที่ใช้กันอย่างแพร่หลายมากที่สุดในโลกบนอินเทอร์เน็ต (ณ เดือนกรกฎาคม 2558 Apache มีส่วนแบ่ง 38%, IIS มี 26% และ Nginx มี 15%) ดังนั้น ยิ่งคุณรู้และเข้าใจวิธีการทำงานมากเท่าไร คุณจะประสบความสำเร็จในการแฮ็กมันมากขึ้นเท่านั้น

วันนี้เราจะมาดูพื้นฐานของการตั้งค่าเซิร์ฟเวอร์ Apache ดังที่เราเขียนไว้ก่อนหน้านี้ การกำหนดค่าและการกำหนดค่าของแอปพลิเคชันเกือบทั้งหมดใน Linux หรือ Unix ดำเนินการผ่านไฟล์การกำหนดค่าซึ่งก็คือ ข้อความธรรมดา- Apache ก็ไม่มีข้อยกเว้นที่นี่ ดังนั้นในบทความนี้เราจะเน้นที่ไฟล์คอนฟิกูเรชัน apache2.conf ซึ่งอยู่ในไดเร็กทอรี /etc/apache2

ขั้นตอนที่ 1: เริ่ม Apache2

เริ่มต้นด้วยการเริ่มต้น Apache2 มาทำสิ่งนี้ผ่านเชลล์กราฟิก Kali โดยไปที่ Applications -> กาลี ลินุกซ์-> บริการระบบ -> HTTP -> apache2 เริ่มต้นดังที่แสดงในภาพหน้าจอด้านล่าง

หรือรันผ่านบรรทัดคำสั่งโดยพิมพ์คำสั่งต่อไปนี้ในเทอร์มินัล

กาลี > บริการ apache2 เริ่มต้น

สิ่งนี้จะเริ่มต้น Apache2 daemon และต่อจากนี้เว็บเซิร์ฟเวอร์ควรให้บริการเนื้อหาของเราบนอินเทอร์เน็ต

ขั้นตอนที่ 2: ตรวจสอบความสมบูรณ์ของเซิร์ฟเวอร์

หากต้องการตรวจสอบว่าเซิร์ฟเวอร์ Apache ของเราทำงานอยู่หรือไม่ ให้ไปที่ localhost หรือ 127.0.0.1 ในเบราว์เซอร์ หากคุณเห็นหน้าเว็บแบบในภาพหน้าจอด้านล่าง แสดงว่าเซิร์ฟเวอร์ทำงานได้ดี!

ขั้นตอนที่ 3: เปิดไฟล์การกำหนดค่า

ในการกำหนดค่า Apache เราจำเป็นต้องไปที่ไดเร็กทอรี /etc/apache2

กาลี > cd /etc/apache2

มาแสดงรายการไฟล์ทั้งหมดในไดเร็กทอรีนี้:

กาลี > ls -l

อย่างที่คุณเห็น มีไฟล์และไดเร็กทอรีย่อยหลายไฟล์ในไดเร็กทอรีนี้ ตอนนี้เราสนใจเฉพาะไฟล์ apache2.conf เท่านั้น แต่โปรดทราบว่าเรามีไฟล์ ports.conf และโฟลเดอร์ sites_available ที่เราจำเป็นต้องใช้ในภายหลัง และยังมีไฟล์และโฟลเดอร์การกำหนดค่าอื่นๆ อีกหลายไฟล์ที่นี่เช่นกัน .

เราสามารถเปิด apache2.conf ได้ทุกที่ โปรแกรมแก้ไขข้อความแต่ที่นี่เราจะใช้ Leafpad สามารถเปิดไฟล์ได้โดยพิมพ์ลงในคอนโซล:

กาลี > leafpad /etc/apache2/apache2.conf

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

ขั้นตอนที่ 4: เซิร์ฟเวอร์รูท

เลื่อนลงโดยข้ามความคิดเห็นทั้งหมดแล้วค้นหาบรรทัดที่ #70 ซึ่งส่วนการตั้งค่าส่วนกลางเริ่มต้นขึ้น ที่นี่เราเห็นการตั้งค่า ServerRoot นี่คือด้านบนสุดของแผนผังไดเร็กทอรีที่เซิร์ฟเวอร์ Apache เก็บไฟล์ที่เกี่ยวข้องกับเซิร์ฟเวอร์ทั้งหมด บรรทัด #84 กำหนด ServerRoot เราสามารถยกเลิกการใส่เครื่องหมายข้อคิดเห็นบรรทัดนี้ได้หากเราต้องการตั้งค่า /etc/apache2 เป็น ServerRoot เราขอแนะนำให้คุณทำเช่นนี้

ขั้นตอนที่ 5 หมดเวลา

ในส่วนถัดไป เรามีตัวแปรที่กำหนดค่าของพารามิเตอร์: Timeout, KeepAlive, MaxKeepAliveRequests และ KeepAliveTimeout

  • หมดเวลา: นี่คือเวลาที่เซิร์ฟเวอร์จะต้องตอบสนองคำขอของผู้ใช้ ค่าเริ่มต้นคือ 300 ซึ่งหมายความว่าเซิร์ฟเวอร์ต้องประมวลผลแต่ละคำขอภายใน 300 วินาทีหรือ 5 นาที สิ่งนี้ยาวเกินไปอย่างแน่นอนและสามารถตั้งค่าเป็น 30 วินาทีได้
  • ให้มีชีวิตอยู่: ซึ่งหมายความว่าเซิร์ฟเวอร์ยังคงมีชีวิตอยู่ (รักษาการเชื่อมต่อ) สำหรับคำขอหลายรายการจากไคลเอนต์เดียวกัน ค่าเริ่มต้นคือเปิด ซึ่งหมายความว่าลูกค้าไม่จำเป็นต้องสร้างการเชื่อมต่อใหม่สำหรับแต่ละคำขอไปยังเซิร์ฟเวอร์ของเรา วิธีนี้ช่วยให้คุณประหยัดทรัพยากรเซิร์ฟเวอร์
  • คำขอ MaxKeepAlive: ค่านี้ระบุจำนวนวินาทีสูงสุดที่อนุญาตระหว่างคำขอที่ได้รับจากการเชื่อมต่อที่สร้างขึ้นไปยังไคลเอนต์เดียวกัน หากเราตั้งค่านี้เป็น 0 ระยะเวลาจะไม่จำกัด
  • KeepAliveTimeout: นี่คือระยะเวลาระหว่างคำขอเพื่อพิจารณาว่าการเชื่อมต่อยังคงมีอยู่ (สร้างขึ้น)

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

ขั้นตอนที่ 6: ผู้ใช้และกลุ่ม Apache2

ลองเลื่อนลงมาอีกสองสามบรรทัดอีกครั้งในไฟล์ apache2.conf จนกระทั่งถึงบรรทัด #177 ที่นี่เราสามารถตั้งค่าผู้ใช้และกลุ่ม Apache2 ได้ โปรดสังเกตความคิดเห็นในบรรทัด #177 โดยระบุว่าเราสามารถตั้งค่าตัวแปรเหล่านี้ในไฟล์ envvars ( ตัวแปรสภาพแวดล้อม- เราจะทิ้งคำถามนี้ไว้สำหรับบทความในอนาคต แต่ตอนนี้โปรดจำไว้ว่าทั้ง User และ Group เป็นตัวแปรที่มีค่าที่นำมาจากไฟล์ /etc/apache2/envvars

และสุดท้าย ส่วนสุดท้ายซึ่งมีผลกระทบด้านความปลอดภัยอย่างมากสำหรับ Apache เริ่มต้นที่บรรทัดที่ #193 ส่วนนี้ช่วยให้แน่ใจว่าเว็บไคลเอ็นต์ไม่สามารถเข้าถึงไฟล์ .htaccess และ .htpasswd

ขั้นตอนที่ 7 การบันทึก

ส่วนถัดไปจะอธิบายวิธีที่ Apache จัดการบันทึก

ในส่วนย่อยแรก เราจะกล่าวถึงพารามิเตอร์ HostNameLookups คำสั่งนี้จะบอก Apache2 ว่าควรทำการค้นหา DNS เมื่อเขียนลงในบันทึกหรือไม่ การเชื่อมต่อที่จัดตั้งขึ้น- ด้วยค่าเริ่มต้น "ปิด" Apache2 ทำงานได้ดีกว่ามาก

ขั้นตอนที่ 8: ไซต์ที่มีอยู่

ตอนนี้เรามาดูไดเร็กทอรี site_available (ไซต์ที่มีอยู่) และที่สำคัญที่สุดคือไฟล์ที่อยู่ในนั้นตามค่าเริ่มต้น ซึ่งมักเรียกว่าไฟล์ Virtual Hosts เริ่มต้น เปิดไฟล์นี้โดยพิมพ์ในคอนโซล:

กาลี > leafpad /etc/apache2/site_available/default

อย่างที่คุณเห็น ไฟล์นี้มีประเด็นสำคัญสามส่วน บรรทัดแรกระบุว่าพอร์ตใดที่เว็บเซิร์ฟเวอร์กำลังรับฟังอยู่ ที่นี่ถูกกำหนดให้ฟังอินเทอร์เฟซใด ๆ บนพอร์ต 80 (*:80) บรรทัดที่สองระบุที่อยู่อีเมลที่ควรส่งการแจ้งเตือนในกรณีที่เกิดปัญหากับเซิร์ฟเวอร์ โดยค่าเริ่มต้นจะมีที่อยู่หากคุณเป็น ผู้ดูแลระบบจากนั้นคุณสามารถป้อนที่อยู่อีเมลของคุณได้ที่นี่ องค์ประกอบที่สามอาจสำคัญที่สุด - DocumentRoot โดยจะกำหนดตำแหน่งเนื้อหาสำหรับโฮสต์เสมือนนี้ โดยค่าเริ่มต้นจะเป็นไดเร็กทอรี /var/www เราขอแนะนำให้คุณปล่อยทุกอย่างไว้ตามที่นักพัฒนากำหนดไว้

ขั้นตอนที่ 9 พอร์ต

สุดท้ายนี้ เราสามารถลดระดับลงในไฟล์ apache2.conf ไปที่บรรทัด #248 - “include port.conf” ได้ คำสั่งนี้เพียงบอกให้ Apache เข้าไปในไฟล์ port.conf เพื่อค้นหาพอร์ตที่ควรรับฟัง

ตอนนี้ถ้าเราเปิดไฟล์ port.conf เราจะเห็นว่ามันถูกกำหนดค่าให้ฟังบนพอร์ต 80 (บรรทัด #9) ส่วนถัดไปซึ่งเริ่มต้นที่บรรทัดที่ 11 จะตรวจสอบว่า mod_ssl.c เปิดใช้งานอยู่หรือไม่ และหากเปิดใช้งานอยู่ จะเปิดพอร์ต 443 (บรรทัดที่ 17)

Apache เป็นเว็บเซิร์ฟเวอร์ที่ได้รับความนิยมสูงสุดบนอินเทอร์เน็ต โดยให้บริการไซต์ที่ใช้งานมากกว่าครึ่งหนึ่ง

ในบทความนี้เราจะดูไฟล์การกำหนดค่าทั่วไปและไฟล์พื้นฐาน พารามิเตอร์ของอาปาเช่บนระบบ Ubuntu/Debian

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

การติดตั้ง Apache บน Ubuntu/Debian

หากยังไม่ได้ติดตั้งเว็บเซิร์ฟเวอร์ Apache ให้ใช้คำสั่ง:

อัปเดต sudo apt-get
sudo apt-get ติดตั้ง apache2

เพื่อตรวจสอบว่าการติดตั้งสำเร็จ ให้เปิดเบราว์เซอร์ของคุณไปยังที่อยู่ IP ของเซิร์ฟเวอร์ของคุณ หน้าต้อนรับของ Apache ควรปรากฏบนหน้าจอของคุณ:

มันได้ผล!
นี่คือค่าเริ่มต้น หน้าเว็บสำหรับเซิร์ฟเวอร์นี้
ที่ เว็บเซิร์ฟเวอร์ซอฟต์แวร์กำลังทำงานแต่ยังไม่มีการเพิ่มเนื้อหา

ลำดับชั้นของไฟล์ Apache

ใน Ubuntu และ เดเบียน อาปาเช่เก็บไฟล์การกำหนดค่าไว้ในโฟลเดอร์ /etc/apache2

ซีดี /etc/apache2.cd
ลส -F
apache2.conf envvars magic mods-enabled/sites-available/
conf.d/ httpd.conf mods-available/ ports.conf ไซต์ที่เปิดใช้งาน/

โฟลเดอร์นี้มีจำนวนไฟล์ธรรมดา ไฟล์ข้อความและไดเร็กทอรีย่อย ที่สำคัญที่สุด:

  • apache2.conf: ไฟล์กำหนดค่าเซิร์ฟเวอร์หลัก การกำหนดค่าเกือบทั้งหมดสามารถทำได้
  • ports.conf: ไฟล์นี้ระบุพอร์ตที่โฮสต์เสมือนรับฟัง ตรวจสอบไฟล์นี้เมื่อตั้งค่า SSL
  • conf.d/: ไดเร็กทอรีนี้ควบคุมลักษณะบางอย่าง การกำหนดค่าอาปาเช่- ตัวอย่างเช่น มักใช้เพื่อกำหนดการกำหนดค่า SSL และนโยบายความปลอดภัยมาตรฐาน
  • sites-available/: ไดเร็กทอรีนี้จัดเก็บโฮสต์เสมือนที่มีอยู่ทั้งหมด ซึ่งกำหนดเนื้อหาที่จะแสดงบนไซต์ โฮสต์เหล่านี้ไม่ได้ใช้งานอยู่
  • sites-enabled/: ไดเร็กทอรีนี้กำหนดโฮสต์เสมือนที่ใช้งานอยู่ โดยทั่วไปจะมีลิงก์สัญลักษณ์ไปยังไฟล์ที่กำหนดไว้ในไดเร็กทอรีที่พร้อมใช้งานของไซต์
  • mods-/: ไดเร็กทอรีเหล่านี้ทำงานในลักษณะเดียวกับที่ไซต์พร้อมใช้งานและไซต์ที่เปิดใช้งาน พวกเขาเก็บโมดูล

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

ไฟล์คอนฟิกูเรชัน Apache

การตั้งค่าพื้นฐานของ Apache จะถูกเก็บไว้ใน /etc/apache2/apache2.conf

ไฟล์นี้ประกอบด้วยสามส่วนหลัก: การตั้งค่าส่วนกลางของ Apache การตั้งค่าเซิร์ฟเวอร์เริ่มต้น และการกำหนดค่าโฮสต์เสมือน

บน Ubuntu และ Debian ไฟล์ส่วนใหญ่มีไว้สำหรับการตั้งค่าส่วนกลางโดยเฉพาะ และการกำหนดค่าเซิร์ฟเวอร์เริ่มต้นและการตั้งค่าโฮสต์เสมือนจะได้รับการจัดการที่ส่วนท้ายของไฟล์โดยใช้คำสั่งรวม

ในตอนท้ายของไฟล์คุณจะพบการตั้งค่ารวมมากมาย พวกเขากำหนดโมดูล เพิ่มเอกสาร ports.conf ไฟล์บางไฟล์จากไดเร็กทอรี conf.d/ และการตั้งค่าโฮสต์เสมือนจากไดเร็กทอรี sites-enabled/

มาดูการตั้งค่าส่วนกลางของเว็บเซิร์ฟเวอร์ Apache กัน

การตั้งค่าส่วนกลางของ Apache

ส่วนนี้ครอบคลุมถึงตัวเลือกการตั้งค่าส่วนกลางของ Apache ที่สำคัญ

หมดเวลา

ตามค่าเริ่มต้น พารามิเตอร์นี้ถูกตั้งค่าเป็น 300 ซึ่งหมายความว่าเซิร์ฟเวอร์มีเวลาสูงสุด 300 วินาทีในการดำเนินการตามคำขอแต่ละรายการ ในกรณีส่วนใหญ่ ค่านี้มีขนาดใหญ่มากและแนะนำให้ลดเหลือ 30-60 วินาที

ให้มีชีวิตอยู่

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

คำขอ MaxKeepAlive

การตั้งค่านี้ช่วยให้คุณกำหนดจำนวนคำขอสูงสุดต่อการเชื่อมต่อได้ สิ่งนี้ช่วยให้คุณเพิ่มประสิทธิภาพ Apache ได้

ค่า 0 จะทำให้เว็บเซิร์ฟเวอร์ประมวลผลคำขอได้ไม่จำกัดจำนวนภายในการเชื่อมต่อเดียว

KeepAliveTimeout

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

การตั้งค่า MPM

หากต้องการทราบว่าโมดูลใดที่ Apache คอมไพล์ด้วย ให้เปิดเทอร์มินัลแล้วพิมพ์:

อาปาเช่2 -ล
เรียบเรียงเป็นโมดูล:
core.c
mod_log_config.c
mod_logio.c
พรีฟอร์ค.ซี
http_core.c
mod_so.c

อย่างที่คุณเห็นใน ในกรณีนี้เว็บเซิร์ฟเวอร์ถูกคอมไพล์ด้วยโมดูล prefork.c และไฟล์ apache2.conf

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

มาตรฐาน โฮสต์เสมือนอยู่ในไฟล์เริ่มต้นในไดเร็กทอรีไซต์ที่มีอยู่

หากต้องการดูรูปแบบโฮสต์เสมือนทั่วไป ให้เปิดไฟล์นี้:

sudo nano /etc/apache2/sites-available/default

ผู้ดูแลเซิร์ฟเวอร์ เว็บมาสเตอร์@localhost
DocumentRoot /var/www

ตัวเลือก FollowSymLinks
AllowOverride ไม่มี


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

. . .

ตามค่าเริ่มต้น โฮสต์เสมือนจะประมวลผลคำขอบนพอร์ต 80

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

การตั้งค่าโฮสต์เสมือนระดับบนสุด

การตั้งค่าเหล่านี้ได้รับการตั้งค่าในส่วนโฮสต์เสมือนและนำไปใช้กับโฮสต์เสมือนทั้งหมด

พารามิเตอร์ ServerAdmin ระบุที่อยู่อีเมลผู้ติดต่อที่จะใช้หากเกิดปัญหาบนเซิร์ฟเวอร์ ที่อยู่นี้สามารถวางลงในหน้าข้อผิดพลาดได้ เมื่อต้องการทำเช่นนี้ พารามิเตอร์ ServerSignature (ในไฟล์ /etc/apache2/conf.d/security) จะต้องตั้งค่าเป็นอีเมล

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

พารามิเตอร์ ServerAlias ​​​​ช่วยให้คุณสามารถเพิ่มนามแฝงของไซต์ - ชื่อและเส้นทางอื่นที่นำไปสู่เนื้อหาเดียวกัน ตัวอย่างเช่น ชื่อแทนโดเมนมักถูกตั้งค่าเป็น www

DocumentRoot ระบุไดเร็กทอรีที่เว็บเซิร์ฟเวอร์จัดเก็บเนื้อหาของโฮสต์เสมือนนี้ บน Ubuntu ค่าเริ่มต้นคือ /var/www.

การตั้งค่าไดเรกทอรี

การกำหนดค่าโฮสต์เสมือนมี ส่วนพิเศษเพื่อกำหนดค่าการประมวลผลไดเร็กทอรีระบบไฟล์แต่ละรายการ การตั้งค่าเหล่านี้ยังสามารถแทนที่ได้

ขั้นแรก โฮสต์เสมือนเสนอชุดกฎสำหรับไดเร็กทอรี / (ไดเร็กทอรีราก) ส่วนนี้จะแสดงการกำหนดค่าโฮสต์เสมือนขั้นพื้นฐานที่เกี่ยวข้องกับไฟล์ทั้งหมดที่ให้บริการบนระบบไฟล์

ตามค่าเริ่มต้น Ubuntu จะไม่กำหนดข้อจำกัดใดๆ ระบบไฟล์- Apache แนะนำให้เพิ่มหลายรายการ ข้อ จำกัด มาตรฐานการเข้าถึง เช่น:


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

การดำเนินการนี้จะบล็อกการเข้าถึงเนื้อหาทั้งหมด เว้นแต่คำจำกัดความของไดเร็กทอรีที่ตามมาจะระบุเป็นอย่างอื่น

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

การตั้งค่านามแฝงและสคริปต์นามแฝง

บางครั้งส่วน Directory นำหน้าด้วยพารามิเตอร์ Alias ​​​​และ ScriptAlias

คำสั่ง Alias ​​​​อนุญาตให้เพิ่มไดเร็กทอรีภายนอก DocumentRoot ลงในเนื้อหาที่ให้บริการ

ScriptAlias ​​​​ทำงานในลักษณะเดียวกัน แต่มีเส้นทางไปยังไดเร็กทอรีที่มีไฟล์ปฏิบัติการ

ตัวอย่างเช่น บรรทัดดังกล่าวในโฮสต์เสมือนสำหรับ example.com จะอนุญาตให้เข้าถึงเนื้อหาในไดเร็กทอรี /path/to/content/ เมื่อร้องขอ example.com/content/

นามแฝง /content/ /path/to/content/

โปรดจำไว้ว่าเมื่อเปิดการเข้าถึงไดเร็กทอรีเพิ่มเติม คุณจะต้องกำหนดสิทธิ์ที่จำกัดให้กับไดเร็กทอรีเหล่านั้น

การเปิดใช้งานไซต์และโมดูลใน Apache

เมื่อคุณสร้างไฟล์โฮสต์เสมือนแล้ว คุณสามารถเปิดใช้งานได้ ในการทำเช่นนี้คุณต้องสร้าง ลิงค์สัญลักษณ์ไปยังไฟล์ในไดเร็กทอรีที่เปิดใช้งานไซต์:

sudo a2ensite ไฟล์โฮสต์เสมือน

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

บริการ sudo apache2 โหลดซ้ำ

หากต้องการปิดใช้งานโฮสต์เสมือน คุณต้องลบออก ลิงค์สัญลักษณ์จากไซต์ที่เปิดใช้งาน:

sudo a2dissite ไฟล์โฮสต์เสมือน

หลังจากนี้คุณจะต้องรีสตาร์ทเว็บเซิร์ฟเวอร์อีกครั้ง:

บริการ sudo apache2 โหลดซ้ำ

เปิดใช้งานและปิดใช้งาน โมดูลอาปาเช่สามารถทำได้โดยใช้คำสั่งต่อไปนี้ (ตามลำดับ):

a2enmod
a2dismod

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

บทสรุป

บทความนี้ครอบคลุมเฉพาะ การตั้งค่าพื้นฐานไฟล์เว็บเซิร์ฟเวอร์ Apache ชุดคุณลักษณะของ Apache สามารถขยายได้อย่างมากโดยใช้โมดูล

หากคุณต้องการ ข้อมูลเพิ่มเติมเกี่ยวกับเว็บเซิร์ฟเวอร์ กรุณาติดต่อ

จะตั้งค่าเซิร์ฟเวอร์ Apache ได้อย่างไร? ไฟล์ httpd.conf คืออะไร ในบทช่วยสอนนี้ ฉันจะตอบคำถามเหล่านี้และแสดงคำสั่งพื้นฐานสำหรับการตั้งค่าเซิร์ฟเวอร์

ไฟล์การกำหนดค่าเซิร์ฟเวอร์

เซิร์ฟเวอร์ Apache มีไฟล์การกำหนดค่าสามไฟล์: httpd.conf, srm.conf, เข้าถึง.conf- โดยทั่วไปแล้วไฟล์เหล่านี้จะอยู่ในไดเร็กทอรี /etc/httpd/conf(ลินุกซ์). การตั้งค่าเซิร์ฟเวอร์ทั้งหมดประกอบด้วยการแก้ไขไฟล์ทั้งสามนี้ มาดูกันว่าไฟล์เหล่านี้ทำหน้าที่อะไร:

  1. ไฟล์ httpd.conf- นี่คือไฟล์กำหนดค่าเซิร์ฟเวอร์หลัก ประกอบด้วย คำอธิบายทางเทคนิคการทำงานของเซิร์ฟเวอร์
  2. ในไฟล์ srm.confมีการระบุพารามิเตอร์ของเอกสารที่โฮสต์บนเซิร์ฟเวอร์
  3. ไฟล์ เข้าถึง.confมีพารามิเตอร์การเข้าถึงเซิร์ฟเวอร์

ไฟล์ httpd.conf

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

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

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

ประเภทเซิร์ฟเวอร์แบบสแตนด์อโลน

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

รูทเซิร์ฟเวอร์ "D:/MyFolder/usr/local/Apache"

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

บันทึก PidFile/httpd.pid

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

หมดเวลา 300

ให้มีชีวิตอยู่ - อนุญาตการเชื่อมต่อแบบถาวร นั่นคือ การเชื่อมต่อที่มีการร้องขอมากกว่าหนึ่งรายการในแต่ละครั้ง

ให้มีชีวิตอยู่ต่อไป

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

คำขอ MaxKeepAlive 100

KeepAliveTimeout - กำหนดการหมดเวลาสำหรับการเชื่อมต่อแบบถาวร

KeepAliveTimeout 15

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

ผู้ดูแลระบบเซิร์ฟเวอร์ root@localhos

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

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

เซิร์ฟเวอร์ขั้นต่ำ 8

MaxSpareServers – ระบุจำนวนสูงสุดของกระบวนการย่อยที่ไม่ได้ใช้งานที่กำลังรอรับคำขอ ขอย้ำอีกครั้งว่าหากมีการสร้างกระบวนการเพิ่มเติมจำนวนมาก ระบบจะถูกโหลดจำนวนมากแม้ว่าจะมีจำนวนไคลเอ็นต์ขั้นต่ำก็ตาม

MaxSpareServers20

เซิร์ฟเวอร์จำกัด – คำสั่งนี้กำหนดขึ้น ค่าสูงสุด MaxClients. ขอแนะนำให้ตั้งค่านี้เท่ากับค่าในคำสั่ง Maxclients

MaxClients - โปรดทราบว่านี่คือสิ่งที่สำคัญที่สุด พารามิเตอร์ที่สำคัญการตั้งค่าพรีฟอร์ก MPM คำสั่งนี้จะกำหนดจำนวนสูงสุดของกระบวนการแบบขนานที่สร้างขึ้นเพื่อประมวลผลคำขอ ยิ่งค่ามากขึ้นเท่าใด คำขอก็ยิ่งสามารถประมวลผลพร้อมกันได้มากขึ้นเท่านั้น และหน่วยความจำก็จะยิ่งถูกใช้มากขึ้นด้วย เมื่อใช้เพจไดนามิกกับ PHP สามารถจัดสรร 16-32MB ต่อกระบวนการได้ หากต้องการระบุให้แม่นยำยิ่งขึ้น คุณต้องรันคำสั่ง ‘ ผ่านการเชื่อมต่อ SSH PS -ylC httpd --sort:rss- ที่เอาต์พุตเราจะได้รับเพลตซึ่งจะพบค่าที่ต้องการในคอลัมน์ RSS หน่วยความจำที่ใช้แล้วหากต้องการรับค่าเป็นเมกะไบต์จะต้องหารด้วย 1,024 เพื่อให้ได้ ข้อมูลทั่วไปเกี่ยวกับหน่วยความจำ คุณสามารถรันคำสั่ง 'free -m' ตอนนี้คุณสามารถคำนวณค่าโดยประมาณของพารามิเตอร์ได้โดยใช้สูตรใดก็ได้:

MaxClientsµ (RAM – size_of_loaded_applications)/(size_of_process) หรือ
MaxClientsµRAM* 70% / Max_memory_size_per_process

MaxRequestsPerChild – ตั้งค่าจำนวนคำขอที่กระบวนการลูกสามารถดำเนินการได้ก่อนที่จะรีสตาร์ท ค่าควรมีขนาดใหญ่พอที่จะหลีกเลี่ยงการสร้างกระบวนการใหม่ตลอดเวลา แต่ก็ยังแนะนำให้จำกัดไว้ (0 – ไม่จำกัด) เป็นเวลานานๆ อาปาเช่ทำงานในกรณีที่ "หน่วยความจำรั่ว" กระบวนการถูกบังคับให้ยุติ