เซิร์ฟเวอร์ Apache มีความสามารถอะไรบ้าง? การติดตั้งเว็บเซิร์ฟเวอร์ Apache การใช้งานเซิร์ฟเวอร์และการสำรองข้อมูล

อาปาเช่ HTTP-server คือสิ่งที่เรียกว่าเว็บเซิร์ฟเวอร์ฟรี ซึ่งเป็นซอฟต์แวร์ข้ามแพลตฟอร์ม Apache รองรับระบบปฏิบัติการต่อไปนี้: BSD, ไมโครซอฟต์ วินโดวส์, ลินุกซ์, Mac OS, BeOS, โนเวลล์ เน็ตแวร์.

วิธีกำหนดค่า Apache อย่างถูกต้อง?

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

เปลี่ยนเส้นทางอัตโนมัติจากหน้าหนึ่งไปอีกหน้าหนึ่ง

  • เปลี่ยนเส้นทางจาก http://www.site.com ไปยัง http://site.com
  • ย้อนกลับการเปลี่ยนเส้นทางจาก http://site.com ไปยัง http://www.site.com
  • การย้ายจากโดเมนเก่าไปยังโดเมนใหม่
  • site.com/page หรือ site.com/page/ เปลี่ยนเส้นทางไปที่ site.com/page.html
  • ย้อนกลับจาก site.com/page.html เป็น site.com/page
  • เราลบเครื่องหมายทับที่ส่วนท้ายของ URL (ซึ่งก็คือ site.com/page/ และกลายเป็น site.com/page)
  • เปลี่ยนเส้นทางทุกหน้าของส่วนหนึ่ง site.com/razdel-1/razdel-2/page ไปยังหน้าของอีกส่วนหนึ่ง site.com/razdel-1/page

การจัดการข้อผิดพลาด

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

การตั้งค่าความปลอดภัยของไซต์

  • ป้องกันการฉีด
  • การป้องกันการโจรกรรมภาพ
  • การบล็อกผู้ใช้ด้วย IP
  • ปกป้องไฟล์และโฟลเดอร์
  • การทำงานกับตัวแทนผู้ใช้

การเข้ารหัสหน้าเว็บไซต์

  • ทำงานกับการเข้ารหัสหน้าเว็บไซต์ในระดับเซิร์ฟเวอร์

การเพิ่มประสิทธิภาพเว็บไซต์

  • เร่งไซต์
  • การทำงานกับแคช
  • การเปลี่ยนหน้าหลักของเว็บไซต์

การตั้งค่า PHP

ข้อมูลเกี่ยวกับอาปาเช่

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

ตั้งแต่เดือนเมษายน 1996 จนถึงปัจจุบัน Apache เป็นเซิร์ฟเวอร์ HTTP ที่แพร่หลายและได้รับความนิยมมากที่สุดบนอินเทอร์เน็ต ตามสถิติในเดือนสิงหาคม 2550 เซิร์ฟเวอร์ HTTP ทำงานบนเว็บเซิร์ฟเวอร์ 51% ในเดือนพฤษภาคม 2552 ตัวเลขนี้ลดลงเหลือ 46% และในเดือนมกราคม 2554 เพิ่มขึ้นเป็น 59% ปัจจุบัน มากกว่า 59% ของจำนวนเว็บไซต์ทั้งหมดให้บริการโดยเว็บเซิร์ฟเวอร์ Apache Apache ได้รับการพัฒนาและสนับสนุนโดยผู้เชี่ยวชาญจากชุมชนนักพัฒนาแบบเปิดภายใต้การอุปถัมภ์ของ ซอฟต์แวร์อาปาเช่พื้นฐาน. Apache รวมอยู่ในผลิตภัณฑ์ซอฟต์แวร์ส่วนใหญ่ รวมถึง ไอบีเอ็ม เว็บสเฟียร์และ ออราเคิล DBMS.

Apache มีกลไกโฮสต์เสมือนในตัว ด้วยเหตุนี้ คุณจึงสามารถให้บริการบนที่อยู่ IP เดียวได้ จำนวนมากโครงการเว็บ (ชื่อโดเมน) ในขณะที่แสดงเนื้อหาของตัวเองสำหรับแต่ละโครงการ สำหรับโฮสต์เสมือนแต่ละโฮสต์ คุณสามารถระบุการตั้งค่าโมดูลและเคอร์เนลของคุณเอง รวมถึงกำหนดข้อจำกัดในการเข้าถึงไซต์ทั้งหมดหรือบางไฟล์ได้ เมื่อใช้ Apache-ITK คุณสามารถเริ่มกระบวนการ httpd ด้วยตัวระบุ gid และ uid สำหรับแต่ละโฮสต์เสมือน นอกจากนี้ยังมีโมดูลที่ช่วยให้คุณสามารถจำกัดและคำนึงถึงทรัพยากรเซิร์ฟเวอร์ (การรับส่งข้อมูล, RAM, CPU) แยกกันสำหรับแต่ละโฮสต์เสมือน

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

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

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

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

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

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

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

Apache เป็นมาตรฐานเว็บเซิร์ฟเวอร์ชนิดหนึ่งบนอินเทอร์เน็ต คู่แข่งหลักคือ IIS (Internet Information Server) จาก Microsoft ซึ่งทำงานบน Windows Apache แม้ว่าจะมีหลายเวอร์ชันสำหรับ Windows แต่ส่วนใหญ่ติดตั้งบนระบบปฏิบัติการที่คล้าย Unix - Linux และ FreeBSD ควรสังเกตว่าโฮสต์ส่วนใหญ่ใช้ Apache ไม่ใช่ IIS โดยปกติแล้ว IIS จะถูกติดตั้งบน เซิร์ฟเวอร์ขององค์กรทำงานภายใต้ Windows

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

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

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

ประวัติความเป็นมาของการทรงสร้าง

Apache Server ได้รับการพัฒนาและดูแลโดย Apache Project

เดิมทีเป็นรูปแบบของเว็บเซิร์ฟเวอร์ NCSA ที่พัฒนาขึ้นที่ National Supercomputing Development Center ที่มหาวิทยาลัยอิลลินอยส์ แต่ในปี 1994 ผู้พัฒนาหลักของ NCSA ก็ออกจากโปรเจ็กต์นี้ ปล่อยให้ผู้ติดตามของเขาค้นหาเซิร์ฟเวอร์ของเขาเอง เมื่อเวลาผ่านไป การแก้ไขและการเพิ่มเติมในเซิร์ฟเวอร์ NCSA เริ่มปรากฏขึ้น - สิ่งที่เรียกว่าแพตช์ (แพตช์ แปลจากภาษาอังกฤษว่า "แพตช์") และในเดือนเมษายน พ.ศ. 2538 เซิร์ฟเวอร์ Apache เวอร์ชันแรกได้เปิดตัวซึ่งใช้เวอร์ชัน 1.3 ของเซิร์ฟเวอร์ NCSA Apache เวอร์ชันแรกรวมเอาการแก้ไขที่รู้จักทั้งหมดของเซิร์ฟเวอร์ NCSA ไว้ด้วยกัน และชื่อ Apache นั้นมาจากสิ่งนี้ – “A PatCHy”

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

เดิมทีเซิร์ฟเวอร์ Apache ได้รับการพัฒนาสำหรับระบบปฏิบัติการ Linux และ Unix แต่เมื่อเวลาผ่านไป เวอร์ชันของเซิร์ฟเวอร์ก็ได้รับการเผยแพร่สำหรับ Windows และ OS/2

ในขณะนี้ การพัฒนาดำเนินการในสาขา 2.2 และในเวอร์ชัน 1.3 และ 2.0 มีการแก้ไขข้อบกพร่องด้านความปลอดภัยเท่านั้น วันนี้ เวอร์ชันล่าสุดของสาขา 2.4 คือเวอร์ชัน 2.4.3 ซึ่งเผยแพร่เมื่อวันที่ 21 สิงหาคม 2555 สำหรับเวอร์ชันแรก การแก้ไขล่าสุดจะมีป้ายกำกับว่า 1.3.42

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

ตั้งแต่เดือนเมษายน พ.ศ. 2539 จนถึงปัจจุบัน เป็นเซิร์ฟเวอร์ HTTP ที่ได้รับความนิยมมากที่สุดบนอินเทอร์เน็ต ประสิทธิภาพสูงสุดประสบความสำเร็จในปี 2555 - Apache ทำงานบนเซิร์ฟเวอร์ 67% ทั่วโลก ในปี 2554 ส่วนแบ่งอยู่ที่ 59% ในปี 2552 – 46% และในปี 2550 – 51%

แผนภาพภายใน การโทรของระบบอาปาเช่

สถาปัตยกรรมอาปาเช่

แกน Apache ประกอบด้วยแกนหลัก ฟังก์ชั่นเช่นการประมวลผลไฟล์การกำหนดค่า โปรโตคอล HTTP และระบบการโหลดโมดูล แกนหลัก (ตรงข้ามกับโมดูล) ได้รับการพัฒนาทั้งหมดโดย Apache Software Foundation โดยไม่ต้องมีส่วนร่วมของโปรแกรมเมอร์บุคคลที่สาม

ตามทฤษฎีแล้ว เคอร์เนล Apache สามารถทำงานได้ในรูปแบบบริสุทธิ์โดยไม่ต้องใช้โมดูล อย่างไรก็ตาม ฟังก์ชันการทำงานของโซลูชันดังกล่าวมีจำกัดอย่างมาก

แกน Apache ถูกเขียนด้วยภาษาโปรแกรม C ทั้งหมด

ระบบการกำหนดค่าของ Apache ขึ้นอยู่กับไฟล์การกำหนดค่าแบบข้อความ มีการกำหนดค่าแบบมีเงื่อนไขสามระดับ:

  • การกำหนดค่าเซิร์ฟเวอร์ (httpd.conf)
  • การกำหนดค่าโฮสต์เสมือน (httpd.conf ตั้งแต่เวอร์ชัน 2.2, extra/httpd-vhosts.conf)
  • การกำหนดค่าระดับไดเรกทอรี (.htaccess)

มีภาษาของไฟล์การกำหนดค่าของตัวเองตามบล็อกคำสั่ง พารามิเตอร์เคอร์เนลเกือบทั้งหมดสามารถเปลี่ยนแปลงได้ผ่านไฟล์คอนฟิกูเรชัน รวมถึงการควบคุม MPM โมดูลส่วนใหญ่มีพารามิเตอร์ของตัวเอง บางโมดูลใช้ไฟล์การกำหนดค่าในการทำงาน ระบบปฏิบัติการ(เช่น /etc/passwd และ /etc/hosts) นอกจากนี้ พารามิเตอร์สามารถระบุได้ผ่านสวิตช์บรรทัดคำสั่ง

สำหรับ เว็บเซิร์ฟเวอร์อาปาเช่การประมวลผลหลายตัวแบบสมมาตรมีหลายรุ่น Apache HTTP Server ยังรองรับโมดูลาร์อีกด้วย มีมากกว่า 500 โมดูลที่ดำเนินการ ฟังก์ชั่นต่างๆ- แม้ว่าบางส่วนจะได้รับการพัฒนาโดยตรงโดยทีมงาน Apache Software Foundation แต่โมดูลที่มีอยู่ส่วนใหญ่ได้รับการพัฒนาโดยนักพัฒนาโอเพ่นซอร์สบุคคลที่สาม

โมดูลสามารถรวมอยู่ในเซิร์ฟเวอร์ ณ เวลารวบรวมหรือโหลดแบบไดนามิกผ่านคำสั่งไฟล์การกำหนดค่า

การใช้โมดูลคุณสามารถปรับใช้สิ่งต่อไปนี้:

  1. การขยายภาษาการเขียนโปรแกรมที่รองรับ
  2. ส่วนที่เพิ่มเข้าไป ฟังก์ชั่นเพิ่มเติมหรือแก้ไขหลักๆ
  3. แก้ไขข้อบกพร่อง
  4. ความปลอดภัยที่เพิ่มขึ้น

เว็บแอปพลิเคชันบางตัว เช่น แผงควบคุม ISPmanager และ VDSmanager ถูกนำมาใช้เป็นโมดูล Apache

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

คุณสามารถระบุสำหรับแต่ละโฮสต์เสมือนได้ การตั้งค่าของตัวเองเคอร์เนลและโมดูล จำกัดการเข้าถึงทั้งไซต์หรือ แยกไฟล์- MPM บางตัว เช่น Apache-ITK อนุญาตให้คุณเรียกใช้กระบวนการ httpd สำหรับโฮสต์เสมือนแต่ละโฮสต์ด้วย uid และ guid แยกกัน

นอกจากนี้ยังมีโมดูลที่ให้คุณคำนึงถึงและจำกัดทรัพยากรเซิร์ฟเวอร์ (CPU, RAM, การรับส่งข้อมูล) สำหรับแต่ละโฮสต์เสมือน

บูรณาการกับซอฟต์แวร์และภาษาการเขียนโปรแกรมอื่น ๆ

หากต้องการรวมเซิร์ฟเวอร์เข้ากับซอฟต์แวร์ต่างๆ รวมถึงภาษาการเขียนโปรแกรมได้สำเร็จ จึงมีโมดูลเพิ่มเติม:

  • PHP (mod_php)
  • หลาม (mod หลาม, mod wsgi)
  • ทับทิม (apache-ruby)
  • เพิร์ล (mod perl)
  • ASP (อาปาเช่-ASP)
  • Tcl (หมุดย้ำ)

Apache รองรับกลไก CGI และ FastCGI ซึ่งช่วยให้คุณสามารถรันโปรแกรมในทุกภาษาการเขียนโปรแกรม รวมถึง C, C++, Lua, sh, Java

ความปลอดภัย

การรักษาความปลอดภัยใน Apache ดำเนินการโดยใช้กลไกต่าง ๆ ที่จำกัดการเข้าถึงข้อมูล สิ่งสำคัญคือ:

  • การจำกัดการเข้าถึงไดเร็กทอรีหรือไฟล์บางอย่าง
  • กลไกในการอนุญาตให้ผู้ใช้เข้าถึงไดเร็กทอรีตามการตรวจสอบสิทธิ์ HTTP (mod_auth_basic) และการตรวจสอบสิทธิ์แบบแยกส่วน (mod_auth_digest)
  • การจำกัดการเข้าถึงบางไดเร็กทอรีหรือเซิร์ฟเวอร์ทั้งหมดตามที่อยู่ IP ของผู้ใช้
  • ปฏิเสธการเข้าถึง บางประเภทสำหรับผู้ใช้ทั้งหมดหรือบางส่วน เช่น การปฏิเสธการเข้าถึงไฟล์การกำหนดค่าและไฟล์ฐานข้อมูล
  • มีโมดูลที่ใช้การอนุญาตผ่าน DBMS หรือ PAM

โมดูล MPM บางตัวมีความสามารถในการรันแต่ละกระบวนการของ Apache โดยใช้ uid และ gid ที่แตกต่างกันซึ่งสอดคล้องกับผู้ใช้และ/หรือกลุ่มผู้ใช้เหล่านั้น

นอกจากนี้ยังมีกลไก suexec ที่ใช้ในการเรียกใช้สคริปต์และแอปพลิเคชัน CGI ด้วยสิทธิ์ผู้ใช้และข้อมูลรับรอง

ในการใช้การเข้ารหัสข้อมูลที่ส่งระหว่างไคลเอนต์และเซิร์ฟเวอร์ จะใช้กลไก SSL ใช้งานผ่านไลบรารี OpenSSL ใบรับรอง X.509 ใช้เพื่อตรวจสอบสิทธิ์เว็บเซิร์ฟเวอร์

มีเครื่องมือรักษาความปลอดภัยภายนอก เช่น mod_security

ภาษา

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

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

การจัดการเหตุการณ์

ผู้ดูแลระบบสามารถตั้งค่าได้ หน้าของตัวเองและตัวจัดการสำหรับข้อผิดพลาด HTTP และเหตุการณ์ทั้งหมด เช่น 404 ( ไม่พบ) หรือ 403 (ต้องห้าม) สามารถรันสคริปต์และแสดงข้อความในภาษาต่างๆ ได้

รวมฝั่งเซิร์ฟเวอร์

ในเวอร์ชัน 1.3 และเก่ากว่า มีการใช้กลไกเซิร์ฟเวอร์ ด้านข้างประกอบด้วยซึ่งช่วยให้คุณสร้างเอกสาร HTML แบบไดนามิกบนฝั่งเซิร์ฟเวอร์ได้

SSI ได้รับการจัดการโดยโมดูล mod_include ที่รวมอยู่ในการกระจาย Apache พื้นฐาน

อาปาเช่ กับ IIS

ข้อพิพาทเกี่ยวกับ เลือกอาปาเช่หรือ IIS นั้นเก่าพอ ๆ กับการอภิปรายเกี่ยวกับการเลือกระบบปฏิบัติการ - Linux หรือ Windows ดังนั้นก่อนตัดสินใจเลือกขั้นสุดท้ายจึงควรประเมินข้อดีและข้อเสียของทั้งสองอย่างเพียงพอ

ประโยชน์ที่สำคัญของ Apache และ ระบบเซิร์ฟเวอร์โคมไฟ:

  1. ต้นทุนต่ำเนื่องจากไม่จำเป็นต้องซื้อลิขสิทธิ์ซอฟต์แวร์
  2. การเขียนโปรแกรมที่ยืดหยุ่นด้วยโค้ดโอเพ่นซอร์ส
  3. ความปลอดภัยที่ดีขึ้น เนื่องจาก Apache ได้รับการพัฒนาสำหรับระบบปฏิบัติการที่ไม่ใช่ Windows (และมัลแวร์ส่วนใหญ่เขียนขึ้นสำหรับ Microsoft OS) จึงมีชื่อเสียงมาโดยตลอดว่ามีความเป็นมากกว่า ระบบรักษาความปลอดภัยกว่า IIS ของ Microsoft

ประโยชน์ของบริการข้อมูลทางอินเทอร์เน็ต (IIS):

  1. Microsoft รองรับ Windows และ IIS ในขณะที่ Apache รองรับโดยชุมชนผู้ใช้เท่านั้น
  2. IIS รองรับแพลตฟอร์ม .NET และสคริปต์ ASPX ของ Microsoft
  3. โมดูลช่วยให้คุณสามารถเปิดใช้งานได้ สตรีมมิ่งเนื้อหาเสียงและวิดีโอ

เมื่อเปรียบเทียบข้อดีของเซิร์ฟเวอร์ทั้งสองนี้ ก็สามารถสรุปได้หลายประการ ประการแรกหากค่าลิขสิทธิ์เป็นเกณฑ์หลักในการเลือกเซิร์ฟเวอร์ ก็คุ้มค่าที่จะเลือกชุดค่าผสม LAMP เนื่องจากไม่มีค่าลิขสิทธิ์ ประการที่สองตามเกณฑ์ความปลอดภัย Apache เป็นผู้นำอีกครั้ง - ระบบค่อนข้างมีประสิทธิภาพมากกว่า ประการที่สาม IIS ทำงานบน Windows OS เท่านั้น และการเปลี่ยนแปลงใด ๆ ในการเลือกระบบปฏิบัติการจะนำไปสู่ ​​​​Apache อีกครั้ง

ตัวเลือกเดียวที่ชุด IIS เปิดอยู่ แพลตฟอร์มวินโดวส์จะกลายเป็น ทางเลือกที่ดีที่สุดนี่คือเครื่องมือการดูแลระบบที่ใช้งานง่ายที่สุดเป็นเกณฑ์หลัก นอกจากนี้ สคริปต์ที่กำลังดำเนินการจะต้องอาศัย ASPX เพียงอย่างเดียว

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

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

เว็บเซิร์ฟเวอร์นี้ได้รับการพัฒนาในช่วงต้นทศวรรษ 90 และได้รับการออกแบบให้ทำงานบนแพลตฟอร์ม Linux และ Unix OS เมื่อเวลาผ่านไป รายการระบบปฏิบัติการที่รองรับก็มีการขยายตัวอย่างมาก ตอนนี้, เว็บเซิร์ฟเวอร์อาปาเช่ทำงานบนแพลตฟอร์มระบบปฏิบัติการ Windows, Mac OS, BSD, Linux, OS/2 และ Novell NetWare เว็บเซิร์ฟเวอร์มีส่วนขยายมากมายสำหรับการทำงานกับภาษาการเขียนโปรแกรมเว็บหลายภาษา:

  • mod_php สำหรับ PHP;
  • mod_perl สำหรับ Perl;
  • mod_wsgi, mod_python สำหรับหลาม;
  • apache-ruby สำหรับ Ruby;
  • apache-asp สำหรับ ASP

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

ข้อดีของอาปาเช่เว็บเซิร์ฟเวอร์

Apache เป็นเว็บเซิร์ฟเวอร์ที่พบบ่อยที่สุด ซึ่งติดตั้งบนโฮสต์มากกว่าครึ่งหนึ่งบนอินเทอร์เน็ต สาเหตุหลักมาจาก:

  1. ใบอนุญาตฟรีซึ่งช่วยให้ทั้งผู้เริ่มต้นและผู้เชี่ยวชาญด้านอุตสาหกรรมเว็บสามารถทำงานได้
  2. ข้ามแพลตฟอร์ม (ซึ่งเป็นหนึ่งในข้อได้เปรียบหลักเมื่อเปรียบเทียบกับคู่แข่งตลอดกาล - เว็บเซิร์ฟเวอร์ IIS)
  3. ความเปิดกว้างของโค้ดซึ่งผู้เชี่ยวชาญหลายคนสามารถเสริมและปรับปรุงการทำงานของ Apache ได้
  4. ความปลอดภัยระดับสูง
  5. ความน่าเชื่อถือและความสะดวกในการใช้งาน
ป.ล. นอกจากนี้ฉันจะให้คำแนะนำที่ไม่เกี่ยวข้องกับโลกของเว็บ หากคุณมีส่วนร่วมในการนวดและมีสถานอาบอบนวดของตัวเองเราขอแนะนำให้คุณให้ความสนใจกับร้านค้าออนไลน์ Massage-chairs-abakan.ru ที่นั่นคุณสามารถ

วันนี้เราจะเปิดตัวเว็บเซิร์ฟเวอร์ 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 ด้วยตนเองซึ่งเราไปตามเส้นทาง: "เริ่ม" → "แผงควบคุม" → "เครื่องมือการดูแลระบบ" → "บริการ" บริการ") ในหน้าต่างการจัดการบริการที่เปิดขึ้น เลือกบรรทัด "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 "ในไฟล์ด้านบน" เจ้าภาพ"
เอกสาร Apache เมื่อใด เซิร์ฟเวอร์ที่ทำงานอยู่ดูได้ที่ http://localhost/manual/
การติดตั้งและกำหนดค่าเว็บเซิร์ฟเวอร์ Apache เสร็จสมบูรณ์

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

ไปที่หน้าดาวน์โหลดโครงการ - http://httpd.apache.org/download.cgi และดาวน์โหลดเวอร์ชันเสถียรล่าสุดสำหรับ Windows ในรูปแบบของตัวติดตั้ง MSI (ในกรณีของฉันคือ apache_2.2.14-win32-x86- no_ssl.msi) มาเริ่มการติดตั้งกันดีกว่า กล่องโต้ตอบแรกที่อาจทำให้เราเข้าใจผิดคือกล่องโต้ตอบสำหรับการป้อนข้อมูลเกี่ยวกับเซิร์ฟเวอร์:

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

ฉันคิดว่าเส้นทางนั้นยาวเกินไป มาย่อให้สั้นลง C:\ไฟล์โปรแกรม\Apache- เราทำการติดตั้งต่อและรอให้เสร็จสิ้น หลังจากปิดโปรแกรมติดตั้ง ไอคอนจอภาพ Apache จะปรากฏในถาด:

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

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

มาเปิดเว็บเบราว์เซอร์แล้วพิมพ์ แถบที่อยู่โดเมนท้องถิ่นโฮสต์:

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

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

ServerRoot "C:/Program Files/Apache" ฟัง 80 LoadModule actions_module modules/mod_actions.so LoadModule alias_module modules/mod_alias.so LoadModule asis_module modules/mod_asis.so LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule authn_default_module modules/mod_auth n_default.so LoadModule authn_file_module โมดูล /mod_authn_file.so LoadModule authz_default_module โมดูล/mod_authz_default.so LoadModule authz_groupfile_module โมดูล/mod_authz_groupfile.so LoadModule authz_host_module โมดูล/mod_authz_host.so LoadModule authz_user_module โมดูล/mod_authz_user.so LoadModule autoindex _module โมดูล/mod_autoindex.so LoadModule cgi_module โมดูล/mod_cgi.so LoadModule dir_module modules/ mod_dir.so LoadModule env_module modules/mod_env.so LoadModule include_module modules/mod_include.so LoadModule isapi_module modules/mod_isapi.so LoadModule log_config_module modules/mod_log_config.so LoadModule mime_module modules/mod_mime.so LoadModule allowance_module โมดูล/mod_negotiation.so LoadModule โมดูลเขียนใหม่ /mod_rewrite .so LoadModule setenvif_module modules/mod_setenvif.so ServerName localhost AccessFileName .htaccess ServerTokens prod LogLevel error ErrorLog "logs/error.log" DefaultType ข้อความ/ธรรมดา AddDefaultCharset UTF-8 DirectoryIndexดัชนี.html คำสั่งอนุญาต ปฏิเสธ ปฏิเสธจากทั้งหมด พอใจทั้งหมด TypesConfig conf/mime.types แอปพลิเคชัน AddType/x-compress .Z แอปพลิเคชัน AddType/x-gzip .gz .tgz LogFormat "\nclient=%h\ntime=%(%d.%m.%Y %H:%M:%S)t\npage=%U%q\nผู้อ้างอิง=%(ผู้อ้างอิง)i\nreqmethod=%m \nhost=%(โฮสต์)i\nagent=%(ตัวแทนผู้ใช้)i\n\n" mylog

ลองคิดดูสิ เซิร์ฟเวอร์รูท- เส้นทางที่ติดตั้งเว็บเซิร์ฟเวอร์ของเรา ให้ความสนใจกับเครื่องหมายทับ ผู้ฟัง- ระบุหมายเลขพอร์ตที่เว็บเซิร์ฟเวอร์จะ "ฟัง" รวมถึงที่อยู่ IP หากจำเป็น (หากคอมพิวเตอร์ของคุณมีการเชื่อมต่อหลายรายการและคุณต้องยอมรับการเชื่อมต่อผ่านหนึ่งในนั้นเท่านั้น) เราระบุพอร์ต 80 ซึ่งเป็นมาตรฐานสำหรับเว็บเซิร์ฟเวอร์ โหลดโมดูลโหลดโมดูลเว็บเซิร์ฟเวอร์ โมดูลช่วยให้คุณได้รับ คุณสมบัติเพิ่มเติม- ไฟล์การกำหนดค่าของเราประกอบด้วยรายการโมดูลมาตรฐาน เพิ่มDefaultCharset- การเข้ารหัสเริ่มต้น ตั้งค่าเป็น Unicode (UTF-8) ที่เหลือเป็นกังวลเล็กน้อยสำหรับเราในตอนนี้

และตอนนี้สิ่งที่สำคัญที่สุด คุณลืมไปแล้วหรือว่าทำไมเราถึงติดตั้งเว็บเซิร์ฟเวอร์? ถูกต้อง เพื่อทำงานในไซต์ในอนาคตของเรา มีแนวคิดคือ ไดเรกทอรีราก- นี่คือไดเร็กทอรีที่มีเนื้อหาของไซต์นั่นคือไฟล์ที่ประกอบด้วย ตามค่าเริ่มต้นใน Apache ของเรา ไดเรกทอรีรากคือไดเรกทอรี - เมื่อไปที่นั่นคุณจะพบไฟล์เดียวภายใต้ชื่อ ดัชนี.html- นี่เป็นไฟล์เดียวกับที่มีหน้าหลักพร้อมข้อความว่า "ใช้งานได้" ที่ http://localhost- ความจริงก็คือหากคำขอ (ซึ่งเรียกว่า url) ไม่มีชื่อไฟล์แสดงว่าเว็บเซิร์ฟเวอร์จะค้นหาไฟล์ที่มีชื่อมาตรฐานชื่อใดชื่อหนึ่ง ชื่อเหล่านี้ (แม่นยำยิ่งขึ้นชื่อเดียว - ดัชนี.html) เขียนอยู่ในไฟล์กำหนดค่าของเรา:

DirectoryIndexดัชนี.html

ดังนั้นเมื่อถูกถาม http://localhostเว็บเซิร์ฟเวอร์จะค้นหาไฟล์ C:\Program Files\Apache\htdocs\index.htmlตามคำขอ http://localhost/docs - C:\Program Files\Apache\htdocs\docs\index.html(ถ้า เอกสาร- โฟลเดอร์) ตามคำขอ http://localhost/news.html - C:\Program Files\Apache\htdocs\news.htmlและอื่น ๆ

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

ดังนั้น localhost จะจับคู่ที่อยู่ 127.0.0.1 มาสร้างโดเมนภายในอีกสามโดเมน test-domain1, test-domain2 และ test-domain3 ที่จะจับคู่ที่อยู่เดียวกัน เปิดเข้ามา โปรแกรมแก้ไขข้อความไฟล์ C:\WINDOWS\system32\drivers\etc\hosts- ในไฟล์นี้ คุณสามารถตั้งค่าความสอดคล้องระหว่างชื่อโดเมนและที่อยู่ IP ที่นี่เราจะพบการติดต่อ localhost แบบเดียวกันกับที่อยู่ 127.0.0.1 เพิ่มบรรทัดต่อไปนี้ที่ส่วนท้ายของไฟล์:

127.0.0.1 โดเมนทดสอบ 1 127.0.0.1 โดเมนทดสอบ 2 127.0.0.1 โดเมนทดสอบ 3

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

ขั้นตอนต่อไปเป็นสิ่งจำเป็นสำหรับทุกคน ชื่อโดเมนสร้างไดเรกทอรีรากของคุณและแจ้งให้เว็บเซิร์ฟเวอร์ของเราทราบ ลบในโฟลเดอร์ C:\Program Files\Apache\htdocsไฟล์ ดัชนี.htmlและสร้างโฟลเดอร์สามโฟลเดอร์ที่นั่น: ทดสอบโดเมน1, ทดสอบโดเมน2และ ทดสอบโดเมน3ในแต่ละโฟลเดอร์จะมีโฟลเดอร์อยู่ บันทึก- สำหรับบันทึกและโฟลเดอร์ www- จริงๆ แล้วคือไดเร็กทอรีรากสำหรับโดเมน ที่ส่วนท้ายของไฟล์ C:\Program Files\Apache\conf\httpd.confเพิ่มสิ่งต่อไปนี้:

ชื่อ VirtualHost *:80 ชื่อเซิร์ฟเวอร์ test-domain1 DocumentRoot "C:/Program Files/Apache/htdocs/test-domain1/www" ErrorLog "C:/Program Files/Apache/htdocs/test-domain1/log/error.log" CustomLog "C:/Program ไฟล์/Apache/htdocs/test-domain1/log/access.log" mylog ชื่อเซิร์ฟเวอร์ test-domain2 DocumentRoot "C:/Program Files/Apache/htdocs/test-domain2/www" ErrorLog "C:/Program Files/Apache/htdocs/test-domain2/log/error.log" CustomLog "C:/Program ไฟล์/Apache/htdocs/test-domain2/log/access.log" mylog AllowOverride ตัวเลือกทั้งหมด - ดัชนี ชื่อเซิร์ฟเวอร์ test-domain3 DocumentRoot "C:/Program Files/Apache/htdocs/test-domain3/www" ErrorLog "C:/Program Files/Apache/htdocs/test-domain3/log/error.log" CustomLog "C:/Program ไฟล์/Apache/htdocs/test-domain3/log/access.log" mylog AllowOverride ตัวเลือกทั้งหมด - ดัชนี

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

ในไดเรกทอรีรากของแต่ละโดเมน ให้สร้างไฟล์ ดัชนี.htmlด้วยเนื้อหา "Hello from test-domain1", "Hello from test-domain2" และ ""Hello from test-domain3" เพื่อให้การเปลี่ยนแปลงการกำหนดค่ามีผล คุณต้องรีสตาร์ท Apache (คลิกซ้ายที่ไอคอนจอภาพ Apache -> รีสตาร์ท ) หากไม่มีข้อผิดพลาด ทุกอย่างควรจะใช้ได้:

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