โฮสต์เสมือน Apache2 ฝึกฝนกับโฮสต์เสมือน

ขอให้มีความสุขผู้อ่านที่รักไปที่บล็อก "การเขียนโปรแกรมเว็บจาก A ถึง Z" วันนี้เราได้ดูการเขียนโปรแกรมบนเว็บกันมาบ้างแล้ว และเรามาพูดถึงเครื่องมือสำหรับร้านค้าปลีกบนเว็บกัน เพื่อให้แม่นยำยิ่งขึ้นเรากำลังพูดถึง โฮสต์เสมือนสำหรับ apache2 . ผู้ค้าปลีกจำนวนมากทำงานและสนับสนุนโครงการต่างๆ ตัวอย่างเช่น ฉันมีโปรเจ็กต์บน Joomla โปรเจกต์อื่นบน WordPress และโปรเจกต์ทดสอบอีกสองสามโปรเจ็กต์ที่ฉันทำอยู่ และที่นี่เราตำหนิอาหาร: "แล้วคุณเผาไพร่พลในเครื่องเดียวได้อย่างไร" จากนั้นผมจะพยายามทำความเข้าใจเกี่ยวกับห่วงโซ่อาหารให้มากที่สุด
ความเคารพเล็กน้อยสำหรับเครื่องทำงานของฉันคือระบบปฏิบัติการ Ubuntu เซิร์ฟเวอร์ apache2 นั่นเป็นเหตุผลที่ฉันตั้งค่า virtualhost เพื่อวัตถุประสงค์ในการสื่อสาร ความแตกต่างระหว่างการกำหนดค่า virtualhost บน Ubuntu ไม่มีส่วนเกี่ยวข้องกับการกำหนดค่า virtualhost บน Windows หรือเป็นระบบปฏิบัติการอื่น สิ่งหนึ่งคือการเปลี่ยนไฟล์คอนฟิกูเรชันสำหรับ virtualhost และตอนนี้มาเริ่มกันเลย ...

ฉันอยากจะชี้ให้เห็นว่าคุณได้ติดตั้ง apache2 แล้ว ติดตั้ง Ubuntu apache จากที่เก็บ สำหรับ Windows ให้ใช้แพ็คเกจ Denver และ XAMPP
ตอนนี้เรามาทำความเข้าใจกับแนวคิดของ virtualhost Virtualhost คือการกระจายโฮสต์จำนวนหนึ่งในเครื่องเดียว

ไฟล์การกำหนดค่า apache2 ใน Ubuntu อยู่ใน /etc/apache2
ไฟล์ apache2.conf เป็นไฟล์การกำหนดค่าหลัก
และโฮสต์เสมือนจะอยู่ที่ /etc/apache2/sites-available
สำหรับโฮสต์เสมือนของสกิน มีไฟล์คอนฟิกูเรชันอยู่ในโฟลเดอร์ของฉัน
Ale ce єเกี่ยวข้องกับ Ubuntu สำหรับระบบปฏิบัติการอื่น ให้ตั้งค่า virtualhost ในไฟล์คอนฟิกูเรชัน apache2 apache2.conf ในไฟล์แยกต่างหาก .
คำอธิบายใดๆ ของโฮสต์เสมือนเริ่มต้นด้วย และสิ้นสุด. Tse obov'yazkovo!!!
คุณยังสามารถผูก virtualhost กับที่อยู่ IP และพอร์ตเดียว Tse ต่อสู้เช่นนี้:

:> ตั้งค่า virtualhost

หรือผูก virtualhost หนึ่งอันกับที่อยู่ IP จำนวนหนึ่ง:

:> ตั้งค่า virtualhost

มาวางเมาส์เหนือก้นของ virtualhost:

ผู้ดูแลระบบเซิร์ฟเวอร์ [ป้องกันอีเมล]ชื่อเซิร์ฟเวอร์ kohana ServerAlias ​​kohana DocumentRoot /var/www/kohana ScriptAlias ​​/cgi-bin/ /usr/lib/cgi-bin/ ErrorLog /var/www/kohana/error.log # ค่าที่เป็นไปได้ ได้แก่ debug, info, notice, warning, error, crit, # alert, emerg LogLevel เตือน CustomLog /var/www/kohana/access.log รวมนามแฝง /doc/ "/usr/share/doc/"

І razberemo แถวหนัง:

  1. — แท็กนี้หมายถึงสิ่งที่ควรปรับโฮสต์เสมือน โฮสต์เสมือน spratsovuvatim เมื่อพิมพ์ไปยังที่อยู่พอร์ต 80
  2. ServerAdmin - คำสั่งให้ลบที่อยู่อีเมลของผู้ดูแลระบบของโฮสต์นี้ และจะแสดงในการแจ้งเตือนเกี่ยวกับการให้อภัย จิตใจของเรานั้น [ป้องกันอีเมล]
  3. ชื่อเซิร์ฟเวอร์ - คำสั่งนี้กำหนดชื่อโฮสต์และพอร์ตที่เซิร์ฟเวอร์ระบุตัวเอง จำเป็นสำหรับการสร้าง URL ตัวอย่างเช่น คุณมีโฮสต์ first.example.com และเซิร์ฟเวอร์ยังสามารถเรียกว่า www.example.com และคุณต้องการให้เว็บเซิร์ฟเวอร์กำหนดโฮสต์ของคุณเป็นชื่อ จากนั้นในคำสั่งนี้ คุณสามารถเขียนชื่อเซิร์ฟเวอร์ www .example.com
  4. ServerAlias ​​- คำสั่งนี้ตั้งชื่อโฮสต์สำรอง
  5. DocumentRoot - คำสั่งตั้งค่าไดเรกทอรีที่มีไฟล์สำหรับการประมวลผล apache2 อยู่ โต๊บโต. แค็ตตาล็อกนี้บันทึกไฟล์ไซต์ของคุณ
  6. สำหรับคำสั่งนี้ เราสามารถกำหนดกฎต่างๆ สำหรับแค็ตตาล็อกได้ คำสั่ง Tsya มีความผิดตามแท็ก zakrivatisya. ตัวอย่างเช่น เราจะเขียนกฎสำหรับไดเร็กทอรีหลัก:
AllowOverride ข้อมูลไฟล์

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

  • AllowOverride พารามิเตอร์นี้สามารถมีค่าต่อไปนี้: ไม่มี - ถ้าไฟล์ .htaccess จะถูกเพิกเฉยทั้งหมด, ทั้งหมด - ถ้าไดเรกทอรีทั้งหมดได้รับอนุญาตใน .htaccess
  • ตัวเลือก – ตั้งค่าเฉพาะเซิร์ฟเวอร์สำหรับไดเร็กทอรีนี้ คุณสามารถยอมรับค่าต่อไปนี้: ไม่มี - ยังไม่อนุญาตให้ใช้ตัวเลือก, ทั้งหมด - อนุญาตตัวเลือก MultiViews ทั้งหมด, ExecCGI - อนุญาตให้สคริปต์ CGI ติดตาม, FollowSymLinks - เซิร์ฟเวอร์เพื่อติดตามลิงก์สัญลักษณ์, รวม - เซิร์ฟเวอร์-ไซต์-รวม (SSI) คือ อนุญาต , รวม NOEXEC - อนุญาต SSI แต่คำสั่งสคริปต์ #exec และ #include CGI ถูกบล็อก ดัชนี - หากไม่พบสิ่งใดในแคตตาล็อก เซิร์ฟเวอร์จะถูกเปลี่ยนเป็นไดเร็กทอรี MultiViews - อนุญาต MultiView<каталог_1>/<каталог_2>และแม้แต่แร็ปทอม<каталог_2>ถ้าไม่เช่นนั้นเซิร์ฟเวอร์ก็กระซิบ<каталог_1>ไฟล์<каталог_2>.*), SymLinksIfOwnerMatch - เซิร์ฟเวอร์มีเฉพาะลิงก์สัญลักษณ์ ซึ่งไฟล์หรือไดเร็กทอรีสามารถมีตัวระบุลิงก์เดียวกันได้
  • คำสั่งซื้อ - ด้วยความช่วยเหลือของคำสั่งเราจะกำหนดลำดับการตรวจสอบใหม่ tobto กลับไปที่รั้วและถ้าทุกอย่างผ่านเราไปก็อนุญาต
  • ปฏิเสธ - คำสั่งนี้สามารถระบุการเข้าถึงเซิร์ฟเวอร์ตามโฮสต์หรือที่อยู่ IP ตามคำสั่งนี้ เราได้ป้องกันโฮสต์ใหม่
  • อนุญาต - สำหรับคำสั่งนี้ คุณสามารถระบุการเข้าถึงเซิร์ฟเวอร์ อนุญาตให้โฮสต์ได้รับอนุญาตอีกครั้ง
  1. ErrorLog - สำหรับคำสั่งนี้ เราสามารถระบุพาธไปยังล็อกไฟล์ได้
  2. LogLevel - สำหรับคำสั่งนี้ คุณสามารถเพิ่มระดับซึ่งจะถูกบันทึกไว้ในไฟล์บันทึก ใช้เท่ากับต่อไปนี้:
  • สถานการณ์ฉุกเฉินเหนือหลัก - ระบบไม่เหมาะสำหรับ vikoristannya
  • การแจ้งเตือน - dіyvinnі buti vzhitі negayno
  • วิจารณ์ - จิตใจมีความสำคัญ
  • ข้อผิดพลาด - การแก้ตัวการให้อภัย
  • เตือน - ล่วงหน้า
  • ประกาศ - สตันปกติ
  • ข้อมูล - ข้อมูล
  • แก้ไขข้อบกพร่อง - แจ้งเตือนการแก้ไขข้อบกพร่อง
  1. CustomLog - คำสั่งซึ่งเป็นไปได้ในไฟล์บันทึกการยกเลิกการลงทะเบียนคำขอไปยังเซิร์ฟเวอร์

วุ้ย ด้วยไฟล์คอนฟิกูเรชันสำหรับ virtualhost เราจัดการมันเรียบร้อยแล้ว
ตอนนี้เรามาสร้างโฮสต์เสมือนกัน สำหรับสิ่งนี้ใน Ubuntu ในโฟลเดอร์ /etc/apache2/sites-available/ เราสร้างไฟล์ที่มีชื่อโฮสต์ของเรา เช่น ทดสอบ І วางรหัสต่อไปนี้ที่นั่น:

ผู้ดูแลระบบเซิร์ฟเวอร์ [ป้องกันอีเมล] ServerName ทดสอบ ServerAlias ​​ทดสอบ DocumentRoot /var/www/test ตัวเลือก FollowSymLinks AllowOverride All ตัวเลือก ดัชนี FollowSymLinks MultiViews AllowOverride All Order อนุญาต ปฏิเสธการอนุญาตจากทั้งหมด ScriptAlias ​​/cgi-bin/usr/lib/cgi-bin/ AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all ErrorLog /var/www/test/error.log # ค่าที่เป็นไปได้ ได้แก่: debug, info, notice, warning, error, crit, # alert, emerg LogLevel เตือน CustomLog /var/www/test/access.log รวมนามแฝง /doc/ "/usr/share/doc/" ตัวเลือก ดัชนี MultiViews FollowSymLinks AllowOverride None คำสั่งปฏิเสธ

ตอนนี้เราสร้างโฟลเดอร์ทดสอบที่ /var/www/ โฟลเดอร์ (ที่นี่จะมีไฟล์ของ virtualhost ของเรา)
เราได้สร้างการกำหนดค่าสำหรับโฮสต์ของเราแล้ว ฉันสูญเสียโฮสต์เสมือนของฉัน ที่เราป้อนคำสั่ง:

การทดสอบ Sudo a2ensite

โหลด apache ใหม่:

sudo /etc/init.d apache2 รีสตาร์ท

І virtualhost ทั้งหมดของเราใช้งานได้
มาเพิ่มไฟล์ /etc/hosts ในการทดสอบแถว 127.0.0.1
ตอนนี้โดยพิมพ์ที่อยู่ทดสอบในเบราว์เซอร์ เราจะไปที่ virtualhost บนเซิร์ฟเวอร์ภายในของเรา
การติดตั้ง virtualhost บน apache2 เสร็จสมบูรณ์ หากคุณตำหนิอาหารเขียนความคิดเห็นฉันเป็น obov'yazkovo กับพวกเขา
และอย่าลืมติดตามการอัปเดตในบล็อกของฉัน จ่ายเงินมากเกินไป

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

เราจะขยายโฮสต์เสมือนจำนวนมากที่สุดตามชื่อ (โฮสต์เสมือนตามชื่อ) ซึ่งเชื่อมโยงกับที่อยู่ IP เดียว ด้วยวิธีนี้ คุณสามารถบันทึกไซต์ที่ไม่ระบุตัวตนบน IP เดียว

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

ที่ หมวกสีแดง/เซ็นโอเอส/เฟดอร่า:

/etc/httpd/conf/httpd.conf

เดเบียน/อูบุนตู:

/etc/apache2/apache2.conf

ในอีกทางหนึ่ง เฆี่ยน є vikoristannya vlashnya .confไฟล์, yakіowennіrozmіschuvatsyaโดยค่าใช้จ่าย:

ที่ หมวกสีแดง/เซ็นโอเอส/เฟดอร่า:

/etc/httpd/conf.d/filename.conf,

เดเบียน/อูบุนตู:

/etc/apache2/conf.d/filename.conf.

ตามกฎแล้วไฟล์การกำหนดค่า httpd.confหรือ apache2.confกระจายการจัดการโฮสต์เสมือนroztashovuєtsya naprikintsi หากต้องการเพิ่มโฮสต์เสมือน คุณจะต้องเปิดไฟล์และแสดงความคิดเห็นในไฟล์ใหม่ (clean # ) คำสั่ง ชื่อโฮสต์เสมือน *:80(การโต้แย้ง * หมายถึง "ชื่อโฮสต์ทั้งหมด") มีวิธีการวางการกำหนดค่าใน คอนเฟิร์มคำสั่งนั้นถูกกำหนดไม่ให้แสดงความคิดเห็น แต่จะถูกกำหนดในไฟล์ที่สร้างมากที่สุด

หลังจาก ชื่อ VirtualHostบล็อกถัดไป โฮสต์เสมือน *:80. บล็อกที่คล้ายกันกับการกำหนดค่าโฮสต์เสมือนของคุณ ทุกอย่างมีลักษณะดังนี้:

ชื่อโฮสต์เสมือน *:80 AllowOverride ตัวเลือกทั้งหมด ทั้งหมด ผู้ดูแลระบบเซิร์ฟเวอร์ [ป้องกันอีเมล] DocumentRoot /var/www/site1.ru ชื่อเซิร์ฟเวอร์ site1.ru ServerAlias ​​www.site1.ru ErrorLog บันทึก/site1.ru-error_log บันทึก CustomLog/site1.ru-access_log ทั่วไป ผู้ดูแลระบบเซิร์ฟเวอร์ [ป้องกันอีเมล] DocumentRoot /var/www/site2.ru ServerName site2.ru ServerAlias ​​www.site2.ru ErrorLog บันทึก/site2.ru-error_log บันทึก CustomLog/site2.ru-access_log ทั่วไป

ที่นี่ คุณสามารถดูการตั้งค่าทั้งหมดของโฮสต์เสมือน ตลอดจนการเชื่อมต่อหรือการรวมตัวเลือกการร้องเพลง

มาดูกันดีกว่าว่าคำสั่งใดถูกกำหนดให้กับผิวหนัง

1. คำสั่ง ผู้ดูแลระบบเซิร์ฟเวอร์ระบุที่อยู่อีเมลของผู้ดูแลระบบเซิร์ฟเวอร์ ซึ่งคุณต้องรับการแจ้งเตือนจากโฮสต์ของผู้ดูแลระบบ

2. คำสั่ง DocumentRootระบุไดเร็กทอรีรูทพร้อมไฟล์ไปยังไซต์ซึ่งเว็บเซิร์ฟเวอร์สามารถมองเห็นได้ไปยังไคลเอนต์ (เบราว์เซอร์)

3. คำสั่ง ชื่อเซิร์ฟเวอร์เมื่อเลือกชื่อโฮสต์ ไฟล์ที่จัดเรียงใน DocumentRoot จะปรากฏในคำขอ

4. คำสั่ง นามแฝงเซิร์ฟเวอร์ทำหน้าที่เป็นชื่อโฮสต์ทางเลือกของโฮสต์ (นามแฝง, นามแฝง) โดยที่ vin ได้รับการตอบสนอง

5. คำสั่ง บันทึกข้อผิดพลาดตั้งค่าไฟล์โปรโตคอลการให้อภัยสำหรับโฮสต์สกินและ บันทึกที่กำหนดเอง- ไฟล์ของโปรโตคอลสำหรับ reshti, krim pardons

ก่อนบล็อกจากโฮสต์เสมือน มีอีกบันทึกหนึ่งอย่างที่คุณจำได้:

AllowOverride ทั้งหมด

มีแท็ก คำสั่งpolkaєperelіk (parametrіv), kakіจะ zastosovuvatisya ไปยังไดเร็กทอรีเฉพาะ, จามรีvkazuєtsyaที่วิทยานิพนธ์, scho vіdkrivaє ที่ก้นมากขึ้น - tse วาร์/www/. ออกคำสั่งแล้ว อนุญาตให้โอเวอร์ไรด์ระบุ ไคบิดไฟล์ .htaccessหากเป็นเช่นนั้น คำสั่งเว็บเซิร์ฟเวอร์ส่วนกลางดังกล่าวสามารถแมปใหม่ในไฟล์ดังกล่าวได้ สำหรับคนชี้มีความสำคัญมากขึ้น อนุญาตให้โอเวอร์ไรด์ใส่เข้าไป ทั้งหมดซึ่งอนุญาตให้ประมวลผลไฟล์ .htaccess และคำสั่งที่ระบุทั้งหมด ความหมายที่เป็นประโยชน์และเป็นไปได้อื่น ๆ :

การกำหนดค่าการตรวจสอบสิทธิ์- อนุญาตคำสั่งการอนุญาตที่กำหนดเอง (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, ต้องการ ฯลฯ)

ข้อมูลไฟล์- อนุญาตให้ปรับแต่งคำสั่งที่ทำเครื่องหมายตามประเภทเอกสาร (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority เป็นต้น)

ดัชนี— อนุญาตคำสั่งแฮ็คสำหรับการสร้างดัชนีไดเร็กทอรี (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName เป็นต้น)

จำกัด- อนุญาตให้แก้ไขคำสั่งควบคุมการเข้าถึง (อนุญาต ปฏิเสธ และสั่งซื้อ)

ตัวเลือก- อนุญาตการปรับแต่งคำสั่งสำหรับความช่วยเหลือซึ่งคุณสามารถแก้ไขคุณสมบัติเฉพาะของไดเร็กทอรี (ตัวเลือกและ XBitHack)

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

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

apachectl configtest apachectl -S apachectl -d

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

หมวกสีแดง/CentOS/Fedora:

บริการ httpd เริ่มต้นใหม่

/etc/init.d/ httpd รีสตาร์ท

เดเบียน/อูบุนตู:

บริการ apache2 เริ่มต้นใหม่

/etc/init.d/apache2 รีสตาร์ท

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

ชื่อเซิร์ฟเวอร์ เริ่มต้น DocumentRoot /var/www/default

ในอันดับนี้การดื่มผิดทั้งหมดจะถูกเอาชนะโดยวิธี var/www/ค่าเริ่มต้นคุณสามารถสร้างหน้าดัชนีเพื่อเตือนความจำเกี่ยวกับคำขอที่ไม่ถูกต้อง

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

เซ็ตเซบูล -P httpd_enable_homedirs 1

เซ็ตเซบูล -P apache2_enable_homedirs 1

เพื่อให้ Apache mav เข้าถึงไดเร็กทอรี sing เช่น เพื่อ /บ้าน/ไมเดียร์คำสั่งชนะถัดไป:

Chcon -R -t httpd_sys_content_t /home/mydir

Chcon -R -t apache2_sys_content_t /home/mydir

ด้วยความช่วยเหลือของ SELinuxเพื่อให้ Apache เข้าถึงโฮมไดเร็กทอรีของไซต์ของคุณ คุณจะต้องแก้ไขไฟล์การกำหนดค่าด้วยตนเอง ( /etc/httpd/conf/httpd.confวี CentOS / Fedoraหรือ /etc/apache2/apache2.confวี เดเบียน/อูบุนตู).

ป้อนไฟล์การกำหนดค่าของเว็บเซิร์ฟเวอร์เพื่อแก้ไข ค้นหาแถว DocumentRoot(ด้วยความช่วยเหลือของโปรแกรมแก้ไข nano її คุณสามารถรู้ได้โดยใช้คีย์ผสมกัน ctrl+w). แทนที่ค่าในอุ้งเท้า /var/www/htmlบนเส้นทางที่แน่นอนไปยังโฮมไดเร็กทอรีของไซต์ (ตัวอย่างเช่น /home/username/site.com). บันทึกการแก้ไขและดูจากเมนูตัวแก้ไข ( Ctrl+Oі Ctrl+X). รีสตาร์ท Apache

คุณติดตั้งระบบปฏิบัติการบน VPS ของคุณได้อย่างไร เดเบียน/อูบุนตูแล้วแก้ไขแถว DocumentRootจำเป็นสำหรับไฟล์ /etc/apache2/sites-available/default. ป้อน yogo เพื่อแก้ไขและแทนที่ค่ามาตรฐาน /var/wwwบนเส้นทางที่แน่นอนไปยังโฮมไดเร็กทอรีของไซต์ รีสตาร์ทเว็บเซิร์ฟเวอร์

บนฐานนี้ การติดตั้งโฮสต์เสมือนจะเสร็จสมบูรณ์

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

เราจะขยายโฮสต์เสมือนจำนวนมากที่สุดตามชื่อ (โฮสต์เสมือนตามชื่อ) ซึ่งเชื่อมโยงกับที่อยู่ IP เดียว ด้วยวิธีนี้ คุณสามารถบันทึกไซต์ที่ไม่ระบุตัวตนบน IP เดียว

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

ที่ หมวกสีแดง/เซ็นโอเอส/เฟดอร่า:

/etc/httpd/conf/httpd.conf

เดเบียน/อูบุนตู:

/etc/apache2/apache2.conf

ในอีกทางหนึ่ง เฆี่ยน є vikoristannya vlashnya .confไฟล์, yakіowennіrozmіschuvatsyaโดยค่าใช้จ่าย:

ที่ หมวกสีแดง/เซ็นโอเอส/เฟดอร่า:

/etc/httpd/conf.d/filename.conf,

เดเบียน/อูบุนตู:

/etc/apache2/conf.d/filename.conf.

ตามกฎแล้วไฟล์การกำหนดค่า httpd.confหรือ apache2.confกระจายการจัดการโฮสต์เสมือนroztashovuєtsya naprikintsi หากต้องการเพิ่มโฮสต์เสมือน คุณจะต้องเปิดไฟล์และแสดงความคิดเห็นในไฟล์ใหม่ (clean # ) คำสั่ง ชื่อโฮสต์เสมือน *:80(การโต้แย้ง * หมายถึง "ชื่อโฮสต์ทั้งหมด") มีวิธีการวางการกำหนดค่าใน คอนเฟิร์มคำสั่งนั้นถูกกำหนดไม่ให้แสดงความคิดเห็น แต่จะถูกกำหนดในไฟล์ที่สร้างมากที่สุด

หลังจาก ชื่อ VirtualHostบล็อกถัดไป โฮสต์เสมือน *:80. บล็อกที่คล้ายกันกับการกำหนดค่าโฮสต์เสมือนของคุณ ทุกอย่างมีลักษณะดังนี้:

ชื่อโฮสต์เสมือน *:80 AllowOverride ตัวเลือกทั้งหมด ทั้งหมด ผู้ดูแลระบบเซิร์ฟเวอร์ [ป้องกันอีเมล] DocumentRoot /var/www/site1.ru ชื่อเซิร์ฟเวอร์ site1.ru ServerAlias ​​www.site1.ru ErrorLog บันทึก/site1.ru-error_log บันทึก CustomLog/site1.ru-access_log ทั่วไป ผู้ดูแลระบบเซิร์ฟเวอร์ [ป้องกันอีเมล] DocumentRoot /var/www/site2.ru ServerName site2.ru ServerAlias ​​www.site2.ru ErrorLog บันทึก/site2.ru-error_log บันทึก CustomLog/site2.ru-access_log ทั่วไป

ที่นี่ คุณสามารถดูการตั้งค่าทั้งหมดของโฮสต์เสมือน ตลอดจนการเชื่อมต่อหรือการรวมตัวเลือกการร้องเพลง

มาดูกันดีกว่าว่าคำสั่งใดถูกกำหนดให้กับผิวหนัง

1. คำสั่ง ผู้ดูแลระบบเซิร์ฟเวอร์ระบุที่อยู่อีเมลของผู้ดูแลระบบเซิร์ฟเวอร์ ซึ่งคุณต้องรับการแจ้งเตือนจากโฮสต์ของผู้ดูแลระบบ

2. คำสั่ง DocumentRootระบุไดเร็กทอรีรูทพร้อมไฟล์ไปยังไซต์ซึ่งเว็บเซิร์ฟเวอร์สามารถมองเห็นได้ไปยังไคลเอนต์ (เบราว์เซอร์)

3. คำสั่ง ชื่อเซิร์ฟเวอร์เมื่อเลือกชื่อโฮสต์ ไฟล์ที่จัดเรียงใน DocumentRoot จะปรากฏในคำขอ

4. คำสั่ง นามแฝงเซิร์ฟเวอร์ทำหน้าที่เป็นชื่อโฮสต์ทางเลือกของโฮสต์ (นามแฝง, นามแฝง) โดยที่ vin ได้รับการตอบสนอง

5. คำสั่ง บันทึกข้อผิดพลาดตั้งค่าไฟล์โปรโตคอลการให้อภัยสำหรับโฮสต์สกินและ บันทึกที่กำหนดเอง- ไฟล์ของโปรโตคอลสำหรับ reshti, krim pardons

ก่อนบล็อกจากโฮสต์เสมือน มีอีกบันทึกหนึ่งอย่างที่คุณจำได้:

AllowOverride ทั้งหมด

มีแท็ก คำสั่งpolkaєperelіk (parametrіv), kakіจะ zastosovuvatisya ไปยังไดเร็กทอรีเฉพาะ, จามรีvkazuєtsyaที่วิทยานิพนธ์, scho vіdkrivaє ที่ก้นมากขึ้น - tse วาร์/www/. ออกคำสั่งแล้ว อนุญาตให้โอเวอร์ไรด์ระบุ ไคบิดไฟล์ .htaccessหากเป็นเช่นนั้น คำสั่งเว็บเซิร์ฟเวอร์ส่วนกลางดังกล่าวสามารถแมปใหม่ในไฟล์ดังกล่าวได้ สำหรับคนชี้มีความสำคัญมากขึ้น อนุญาตให้โอเวอร์ไรด์ใส่เข้าไป ทั้งหมดซึ่งอนุญาตให้ประมวลผลไฟล์ .htaccess และคำสั่งที่ระบุทั้งหมด ความหมายที่เป็นประโยชน์และเป็นไปได้อื่น ๆ :

การกำหนดค่าการตรวจสอบสิทธิ์- อนุญาตคำสั่งการอนุญาตที่กำหนดเอง (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, ต้องการ ฯลฯ)

ข้อมูลไฟล์- อนุญาตให้ปรับแต่งคำสั่งที่ทำเครื่องหมายตามประเภทเอกสาร (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority เป็นต้น)

ดัชนี— อนุญาตคำสั่งแฮ็คสำหรับการสร้างดัชนีไดเร็กทอรี (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName เป็นต้น)

จำกัด- อนุญาตให้แก้ไขคำสั่งควบคุมการเข้าถึง (อนุญาต ปฏิเสธ และสั่งซื้อ)

ตัวเลือก- อนุญาตการปรับแต่งคำสั่งสำหรับความช่วยเหลือซึ่งคุณสามารถแก้ไขคุณสมบัติเฉพาะของไดเร็กทอรี (ตัวเลือกและ XBitHack)

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

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

apachectl configtest apachectl -S apachectl -d

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

หมวกสีแดง/CentOS/Fedora:

บริการ httpd เริ่มต้นใหม่

/etc/init.d/ httpd รีสตาร์ท

เดเบียน/อูบุนตู:

บริการ apache2 เริ่มต้นใหม่

/etc/init.d/apache2 รีสตาร์ท

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

ชื่อเซิร์ฟเวอร์ เริ่มต้น DocumentRoot /var/www/default

ในอันดับนี้การดื่มผิดทั้งหมดจะถูกเอาชนะโดยวิธี var/www/ค่าเริ่มต้นคุณสามารถสร้างหน้าดัชนีเพื่อเตือนความจำเกี่ยวกับคำขอที่ไม่ถูกต้อง

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

เซ็ตเซบูล -P httpd_enable_homedirs 1

เซ็ตเซบูล -P apache2_enable_homedirs 1

เพื่อให้ Apache mav เข้าถึงไดเร็กทอรี sing เช่น เพื่อ /บ้าน/ไมเดียร์คำสั่งชนะถัดไป:

Chcon -R -t httpd_sys_content_t /home/mydir

Chcon -R -t apache2_sys_content_t /home/mydir

ด้วยความช่วยเหลือของ SELinuxเพื่อให้ Apache เข้าถึงโฮมไดเร็กทอรีของไซต์ของคุณ คุณจะต้องแก้ไขไฟล์การกำหนดค่าด้วยตนเอง ( /etc/httpd/conf/httpd.confวี CentOS / Fedoraหรือ /etc/apache2/apache2.confวี เดเบียน/อูบุนตู).

ป้อนไฟล์การกำหนดค่าของเว็บเซิร์ฟเวอร์เพื่อแก้ไข ค้นหาแถว DocumentRoot(ด้วยความช่วยเหลือของโปรแกรมแก้ไข nano її คุณสามารถรู้ได้โดยใช้คีย์ผสมกัน ctrl+w). แทนที่ค่าในอุ้งเท้า /var/www/htmlบนเส้นทางที่แน่นอนไปยังโฮมไดเร็กทอรีของไซต์ (ตัวอย่างเช่น /home/username/site.com). บันทึกการแก้ไขและดูจากเมนูตัวแก้ไข ( Ctrl+Oі Ctrl+X). รีสตาร์ท Apache

คุณติดตั้งระบบปฏิบัติการบน VPS ของคุณได้อย่างไร เดเบียน/อูบุนตูแล้วแก้ไขแถว DocumentRootจำเป็นสำหรับไฟล์ /etc/apache2/sites-available/default. ป้อน yogo เพื่อแก้ไขและแทนที่ค่ามาตรฐาน /var/wwwบนเส้นทางที่แน่นอนไปยังโฮมไดเร็กทอรีของไซต์ รีสตาร์ทเว็บเซิร์ฟเวอร์

บนฐานนี้ การติดตั้งโฮสต์เสมือนจะเสร็จสมบูรณ์

ที่tsіyzamittsі mova pіde pro การตั้งค่าโฮสต์เสมือนของ Apacheภายใต้ Windows ฉันจะบอกคุณว่าโฮสต์เสมือนเป็นอย่างไรและทำไม vikoristovuyutsya ถึงมีกลิ่นเหม็น มีการเพิ่มภาพประกอบโดยละเอียด

โฮสติ้งเสมือนจริง ความเข้าใจเบื้องต้น.

อีกครั้ง จำเป็นต้องเข้าใจว่าการโฮสต์เสมือนเป็นอย่างไร:

โฮสต์เสมือนอิ้ง- เทคโนโลยีนี้สำหรับความช่วยเหลือซึ่งเว็บเซิร์ฟเวอร์สามารถชนะชื่อโดเมนสองสามชื่อในคอมพิวเตอร์เครื่องหนึ่ง

โต๊บโต. คุณอาจมีบางไซต์ในคอมพิวเตอร์ของคุณที่มีชื่อต่างกัน

โฮสต์เสมือนมี 2 ​​ประเภท:

  • โฮสต์เสมือนตามชื่อ ( ตามชื่อ);
  • โฮสต์เสมือนตามที่อยู่ IP ของคอมพิวเตอร์ ( อิงตามไอพี).

เราจะชนะตัวเลือกแรก - โฮสต์เสมือนตามชื่อ

การตั้งค่าโฮสต์เสมือนของ Apache

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

เปิดไฟล์ในแผ่นจดบันทึก Shukaєmo และคุณสามารถเห็นความคิดเห็นที่ด้านหลังแถว ดังที่แสดงด้านล่าง:

# โฮสต์เสมือน
รวม conf/extra/httpd-vhosts.conf

แถวนี้เชื่อมต่อพารามิเตอร์ที่อธิบายไว้ในไฟล์ conf/extra/httpd-vhosts.conf.

ไวยากรณ์สำหรับการพับ โฮสต์เสมือนตามชื่อ:


เส้นทาง DocumentRoot ไปยังไซต์
ชื่อเซิร์ฟเวอร์ของไซต์

ไฟล์ vhosts มีไฟล์แนบ เราไม่ต้องการกลิ่นเหม็น เราเพิ่งเห็นมันและแทนที่การทดสอบที่ไม่เหมาะสม:

#
# โฮสต์เสมือน
#
# คุณสามารถอ่านเพิ่มเติมเกี่ยวกับการปรับแต่งโฮสต์เสมือนได้ที่นี่
#
#

#
# ใช้โฮสติ้งเสมือนตามชื่อ
#
ชื่อโฮสต์เสมือน *:80

# ที่นี่คุณสามารถเขียนเส้นทางไปยังไฟล์ไซต์ (DocumentRoot) และชื่อโฮสต์ (ชื่อเซิร์ฟเวอร์)

DocumentRoot ที่: /www/test
การทดสอบชื่อเซิร์ฟเวอร์

ตอนนี้สร้างในไดรฟ์ C: โฟลเดอร์ wwwฉันไปที่โฟลเดอร์ใหม่ ทดสอบ. ให้ความสนใจกับความจริงที่ว่า Windows มีแบ็กสแลชและไฟล์กำหนดค่ามี /

ตอนนี้จำเป็นต้องใช้ประโยชน์จาก Apache อีกครั้งเพื่อปรับปรุงอัศวิน

ไปข้างหน้าและบอก Windows เกี่ยวกับการสร้างโฮสต์เสมือน สำหรับผู้ที่ทราบไฟล์ C:/Windows/system32/drivers/etc/hosts. Vіdkrivaєmo yogo สำหรับความช่วยเหลือของ notepad ที่ยอดเยี่ยมและเพิ่มแถวที่ก้าวหน้า:

127.0.0.1 คือที่อยู่ IP ของคอมพิวเตอร์ของคุณ เราบอกวินโดวส์เป็นแถว ๆ ว่าไซต์นั้นอยู่บนที่อยู่ IP นี้ ทดสอบ.

ตัวอย่างเช่น หากคุณสร้างโฮสต์เสมือนอีกหนึ่งโฮสต์ คุณก็สามารถเพิ่มอีกหนึ่งแถวได้:

127.0.0.1 ชื่อโฮสต์เสมือนของคุณ

ตอนนี้จำเป็นต้องพิจารณาสิ่งที่ปรับให้ถูกต้องอีกครั้ง เราสร้างเพื่อใครกับพ่อ ค:/www/ทดสอบไฟล์ index.phpและเขียนโค้ดต่อไปนี้ที่นั่น:

เราเขียนที่ URL ของเบราว์เซอร์ http://ทดสอบ. หากคุณทำทุกอย่างถูกต้องแล้วให้ร้องเพลงไปที่ kshtalt:

หากคุณไม่ได้ชนใคร คุณจะไม่ตกลงไป - เราเขียนความคิดเห็น เรามาร่วมกันแก้ปัญหากันเถอะ 😉

ในบทความหน้า เราได้ทราบวิธีการติดตั้ง apache ทีนี้มาดูวิธีสร้างโฮสต์เสมือนบน apache และวิธีกำหนดค่าโฮสต์เสมือนของ apache windows

มาดูกันว่าเราต้องการอะไรสำหรับโฮสต์เสมือน เมื่อติดตั้ง apache แล้ว เราสามารถเริ่มต้นใหม่ได้โดยพิมพ์ localhost ในเบราว์เซอร์ และฉันต้องการ เราจะลองบนเซิร์ฟเวอร์ของบางไซต์และเข้าถึงไซต์เหล่านั้นด้วย url ที่ถูกต้อง ซึ่งสามารถเป็น zrobleno บน apache เพื่อสร้างโฮสต์เสมือน สำหรับ cob เรามาสร้างก้นในโฟลเดอร์ไดรฟ์ C "www.Zametki" โฟลเดอร์ C: Zametki มีสามโฟลเดอร์ conf, htdocs, logs, Errors ที่โฟลเดอร์ conf เราสร้างไฟล์ zametki.conf เปิดไฟล์ С:\www.Zametki\conf\zametki.conf และอธิบายโฮสต์เสมือนของเรา:

#VirtualHost zametki <VirtualHost *:80> #การกำหนดค่าเซิร์ฟเวอร์ ชื่อเซิร์ฟเวอร์ www.zametki ServerAlias ​​zametki ServerAdmin [ป้องกันอีเมล]#บันทึกเซิร์ฟเวอร์ ErrorLog "c:/www.Zametki/logs/error.log" CustomLog "c:/www.Zametki/logs/access.log" Common #DocumentRoot "c:/www.Zametki/htdocs" <Directory " w: /www.Zametki/htdocs"> ดัชนีตัวเลือก FollowSymLinks AllowOverride ปฏิเสธคำสั่งซื้อทั้งหมด อนุญาต Allow จากทั้งหมด </Directory> </VirtualHost>

นำไฟล์ noteki.conf ตอนนี้เราได้สูญเสียการเชื่อมต่อกับไฟล์การกำหนดค่าเซิร์ฟเวอร์หลัก httpd.conf Vin อยู่ที่ C:\Program Files\Apache Software Foundation\Apache2.2\conf Vidkrivaєmoโยคะและสำหรับ cob เพิ่มที่ด้านล่างสุดของไฟล์:

NameVirtualHost *:80 <VirtualHost *:80> ชื่อเซิร์ฟเวอร์ localhost ServerAdmin [ป้องกันอีเมล]</โฮสต์เสมือน>

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

# www.zametki รวม "c:/www.zametki/conf/zametki.conf"

ตอนนี้เราไม่ต้องสร้างรายการเกี่ยวกับโฮสต์ของเราในไฟล์โฮสต์ที่อยู่ C: WINDOWSsystem32driversetc คุณจะแทนที่เซิร์ฟเวอร์ DNS

// รายการล็อคหน้าต่าง 127.0.0.1 localhost // รายการของเรา 127.0.0.1 zametki www.zametki

การสร้างโฟลเดอร์เสมือนของ Apache

สำหรับการสร้างเทคโนโลยีเสมือนจริง เรามีคำสั่งนามแฝง มาสร้างโฟลเดอร์สำหรับบันทึกไฟล์ด้วย Apache กันเถอะ เพิ่มไปยังไฟล์ zametki.conf และคำสั่ง <VirtualHost> ... </VirtualHost> ของโฮสต์เสมือนของเรา ถัดไป:

# โฟลเดอร์พร้อมการแจ้งเตือนเกี่ยวกับการให้อภัย //กำหนดนามแฝง (นามแฝง) สำหรับโฟลเดอร์นามแฝง /err/ "c:/www.Zametki/Errors/" <Directory "c:/www.Zametki/Errors/"> ดัชนีตัวเลือก FollowSymLinks AllowOverride คำสั่งซื้อทั้งหมดถูกปฏิเสธ อนุญาตให้อนุญาตจาก </Directory> ทั้งหมด

สร้างฝ่ายของคุณเองด้วยการให้อภัย Apache

สำหรับข้อมูลเกี่ยวกับการให้อภัย โปรดส่งคำสั่ง ErrorDocument มาสร้างในโฟลเดอร์ c:/www.Notes/Errors/ เช่น 404.html นี่จะเป็นหน้า html ของเรา ซึ่งจะแสดงเมื่อเซิร์ฟเวอร์ 404 ถูกล้าง เราจะเพิ่มแถวถัดไปในไฟล์ zametki.conf:

# ขออภัยคำเตือน ErrorDocument 404 /err/404.html

บทความที่คล้ายกัน