อาปาเช่ 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
- ทำงานกับ พารามิเตอร์ 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 แต่โมดูลที่มีอยู่ส่วนใหญ่ได้รับการพัฒนาโดยนักพัฒนาโอเพ่นซอร์สบุคคลที่สาม
โมดูลสามารถรวมอยู่ในเซิร์ฟเวอร์ ณ เวลารวบรวมหรือโหลดแบบไดนามิกผ่านคำสั่งไฟล์การกำหนดค่า
การใช้โมดูลคุณสามารถปรับใช้สิ่งต่อไปนี้:
- การขยายภาษาการเขียนโปรแกรมที่รองรับ
- ส่วนที่เพิ่มเข้าไป ฟังก์ชั่นเพิ่มเติมหรือแก้ไขหลักๆ
- แก้ไขข้อบกพร่อง
- ความปลอดภัยที่เพิ่มขึ้น
เว็บแอปพลิเคชันบางตัว เช่น แผงควบคุม 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 และ ระบบเซิร์ฟเวอร์โคมไฟ:
- ต้นทุนต่ำเนื่องจากไม่จำเป็นต้องซื้อลิขสิทธิ์ซอฟต์แวร์
- การเขียนโปรแกรมที่ยืดหยุ่นด้วยโค้ดโอเพ่นซอร์ส
- ความปลอดภัยที่ดีขึ้น เนื่องจาก Apache ได้รับการพัฒนาสำหรับระบบปฏิบัติการที่ไม่ใช่ Windows (และมัลแวร์ส่วนใหญ่เขียนขึ้นสำหรับ Microsoft OS) จึงมีชื่อเสียงมาโดยตลอดว่ามีความเป็นมากกว่า ระบบรักษาความปลอดภัยกว่า IIS ของ Microsoft
ประโยชน์ของบริการข้อมูลทางอินเทอร์เน็ต (IIS):
- Microsoft รองรับ Windows และ IIS ในขณะที่ Apache รองรับโดยชุมชนผู้ใช้เท่านั้น
- IIS รองรับแพลตฟอร์ม .NET และสคริปต์ ASPX ของ Microsoft
- โมดูลช่วยให้คุณสามารถเปิดใช้งานได้ สตรีมมิ่งเนื้อหาเสียงและวิดีโอ
เมื่อเปรียบเทียบข้อดีของเซิร์ฟเวอร์ทั้งสองนี้ ก็สามารถสรุปได้หลายประการ ประการแรกหากค่าลิขสิทธิ์เป็นเกณฑ์หลักในการเลือกเซิร์ฟเวอร์ ก็คุ้มค่าที่จะเลือกชุดค่าผสม 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 เป็นเว็บเซิร์ฟเวอร์ที่พบบ่อยที่สุด ซึ่งติดตั้งบนโฮสต์มากกว่าครึ่งหนึ่งบนอินเทอร์เน็ต สาเหตุหลักมาจาก:
- ใบอนุญาตฟรีซึ่งช่วยให้ทั้งผู้เริ่มต้นและผู้เชี่ยวชาญด้านอุตสาหกรรมเว็บสามารถทำงานได้
- ข้ามแพลตฟอร์ม (ซึ่งเป็นหนึ่งในข้อได้เปรียบหลักเมื่อเปรียบเทียบกับคู่แข่งตลอดกาล - เว็บเซิร์ฟเวอร์ IIS)
- ความเปิดกว้างของโค้ดซึ่งผู้เชี่ยวชาญหลายคนสามารถเสริมและปรับปรุงการทำงานของ 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 ด้วยตนเองซึ่งเราไปตามเส้นทาง: "เริ่ม" → "แผงควบคุม" → "เครื่องมือการดูแลระบบ" → "บริการ" บริการ") ในหน้าต่างการจัดการบริการที่เปิดขึ้น เลือกบรรทัด "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
ลองคิดดูสิ เซิร์ฟเวอร์รูท- เส้นทางที่ติดตั้งเว็บเซิร์ฟเวอร์ของเรา ให้ความสนใจกับเครื่องหมายทับ ผู้ฟัง- ระบุหมายเลขพอร์ตที่เว็บเซิร์ฟเวอร์จะ "ฟัง" รวมถึงที่อยู่ IP หากจำเป็น (หากคอมพิวเตอร์ของคุณมีการเชื่อมต่อหลายรายการและคุณต้องยอมรับการเชื่อมต่อผ่านหนึ่งในนั้นเท่านั้น) เราระบุพอร์ต 80 ซึ่งเป็นมาตรฐานสำหรับเว็บเซิร์ฟเวอร์ โหลดโมดูลโหลดโมดูลเว็บเซิร์ฟเวอร์ โมดูลช่วยให้คุณได้รับ คุณสมบัติเพิ่มเติม- ไฟล์การกำหนดค่าของเราประกอบด้วยรายการโมดูลมาตรฐาน เพิ่มDefaultCharset- การเข้ารหัสเริ่มต้น ตั้งค่าเป็น Unicode (UTF-8) ที่เหลือเป็นกังวลเล็กน้อยสำหรับเราในตอนนี้
และตอนนี้สิ่งที่สำคัญที่สุด คุณลืมไปแล้วหรือว่าทำไมเราถึงติดตั้งเว็บเซิร์ฟเวอร์? ถูกต้อง เพื่อทำงานในไซต์ในอนาคตของเรา มีแนวคิดคือ ไดเรกทอรีราก- นี่คือไดเร็กทอรีที่มีเนื้อหาของไซต์นั่นคือไฟล์ที่ประกอบด้วย ตามค่าเริ่มต้นใน Apache ของเรา ไดเรกทอรีรากคือไดเรกทอรี - เมื่อไปที่นั่นคุณจะพบไฟล์เดียวภายใต้ชื่อ ดัชนี.html- นี่เป็นไฟล์เดียวกับที่มีหน้าหลักพร้อมข้อความว่า "ใช้งานได้" ที่ http://localhost- ความจริงก็คือหากคำขอ (ซึ่งเรียกว่า url) ไม่มีชื่อไฟล์แสดงว่าเว็บเซิร์ฟเวอร์จะค้นหาไฟล์ที่มีชื่อมาตรฐานชื่อใดชื่อหนึ่ง ชื่อเหล่านี้ (แม่นยำยิ่งขึ้นชื่อเดียว - ดัชนี.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
สามช่วงตึก โฮสต์เสมือนอธิบายทั้งสามของเรา โฮสต์เสมือน- แต่ละอันจะได้รับไดเร็กทอรีรูทของตัวเอง - DocumentRoot, เส้นทางไปยังบันทึกข้อผิดพลาด - บันทึกข้อผิดพลาดและบันทึกการเข้าถึง - บันทึกแบบกำหนดเอง.
ในไดเรกทอรีรากของแต่ละโดเมน ให้สร้างไฟล์ ดัชนี.htmlด้วยเนื้อหา "Hello from test-domain1", "Hello from test-domain2" และ ""Hello from test-domain3" เพื่อให้การเปลี่ยนแปลงการกำหนดค่ามีผล คุณต้องรีสตาร์ท Apache (คลิกซ้ายที่ไอคอนจอภาพ Apache -> รีสตาร์ท ) หากไม่มีข้อผิดพลาด ทุกอย่างควรจะใช้ได้:
ขอแสดงความยินดี ขณะนี้คุณมีเว็บเซิร์ฟเวอร์ที่กำหนดค่าด้วยโฮสต์ภายในเครื่องสามเครื่องแล้ว ขยายขอบเขตสำหรับเว็บมาสเตอร์ :) ถึงเวลาที่จะเริ่มเรียนรู้พื้นฐานการสร้างเว็บแล้ว