เซิร์ฟเวอร์อาปาเช่ 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
สถาปัตยกรรมอาปาเช่
แกน 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 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
ข้อถกเถียงเกี่ยวกับการเลือก Apache หรือ IIS นั้นเก่าแก่เท่ากับข้อถกเถียงเกี่ยวกับการเลือกระบบปฏิบัติการ - Linux หรือ Windows ดังนั้นก่อนตัดสินใจเลือกขั้นสุดท้ายจึงควรประเมินข้อดีและข้อเสียของทั้งสองอย่างเพียงพอ
ข้อได้เปรียบหลักของระบบเซิร์ฟเวอร์ Apache และ LAMP:
- ต้นทุนต่ำเนื่องจากไม่จำเป็นต้องซื้อลิขสิทธิ์ซอฟต์แวร์
- การเขียนโปรแกรมที่ยืดหยุ่นด้วยโค้ดโอเพ่นซอร์ส
- ความปลอดภัยที่ได้รับการปรับปรุง เนื่องจาก Apache ได้รับการออกแบบมาสำหรับระบบปฏิบัติการที่ไม่ใช่ Windows (และมัลแวร์ส่วนใหญ่เขียนขึ้นสำหรับระบบปฏิบัติการของ Microsoft) จึงมีชื่อเสียงในด้านความปลอดภัยมากกว่า IIS ของ Microsoft มาโดยตลอด
ประโยชน์ของบริการข้อมูลทางอินเทอร์เน็ต (IIS):
- Microsoft รองรับ Windows และ IIS ในขณะที่ Apache รองรับโดยชุมชนผู้ใช้เท่านั้น
- IIS รองรับแพลตฟอร์ม .NET และสคริปต์ ASPX ของ Microsoft
- โมดูลช่วยให้คุณสามารถเปิดใช้งานการสตรีมเนื้อหาเสียงและวิดีโอได้
เมื่อเปรียบเทียบข้อดีของเซิร์ฟเวอร์ทั้งสองนี้ ก็สามารถสรุปได้หลายประการ ประการแรกหากค่าลิขสิทธิ์เป็นเกณฑ์หลักในการเลือกเซิร์ฟเวอร์ ก็คุ้มค่าที่จะเลือกชุดค่าผสม LAMP เนื่องจากไม่มีค่าลิขสิทธิ์ ประการที่สองตามเกณฑ์ความปลอดภัย Apache เป็นผู้นำอีกครั้ง - ระบบค่อนข้างมีประสิทธิภาพมากกว่า ประการที่สาม IIS ทำงานบน Windows OS เท่านั้น และการเปลี่ยนแปลงใด ๆ ในการเลือกระบบปฏิบัติการจะนำไปสู่ Apache อีกครั้ง
ตัวเลือกเดียวที่ IIS บนแพลตฟอร์ม Windows จะเป็นตัวเลือกที่ดีที่สุดคือเกณฑ์หลักโดยใช้เครื่องมือการดูแลระบบที่ใช้งานง่ายที่สุด นอกจากนี้ สคริปต์ที่กำลังดำเนินการจะต้องอาศัย ASPX เพียงอย่างเดียว
อย่างไรก็ตาม เป็นไปได้ที่จะพัฒนาโซลูชันที่จะสนับสนุนการทำงานบนเซิร์ฟเวอร์ทั้งสองเครื่อง
บทความนี้อธิบายการติดตั้ง Apache 2.4 + PHP 5.6 + MySQL 5.6 บนระบบปฏิบัติการ Windows 7/8 / 8.1 / 10
ก่อนที่คุณจะอ่านต่อ โปรดใส่ใจว่าคุณจำเป็นต้องติดตั้งและกำหนดค่าทั้งหมดนี้ใน Windows หรือไม่ บางทีคุณควรใส่ใจและไม่ต้องเสียเวลาและกังวลในการตั้งค่าสิ่งเดียวกันใน Windows โดยตรงหรือไม่ ไม่ว่าในกรณีใดให้อ่านบทความเกี่ยวกับ บางทีมันอาจช่วยคุณไม่เพียงแต่เวลา แต่ยังรวมถึงสุขภาพด้วย
คำแนะนำนี้จะมีประโยชน์สำหรับนักพัฒนาเว็บมือใหม่ที่จะติดตั้งเซิร์ฟเวอร์ Apache WEB ด้วยล่าม PHP เวอร์ชันล่าสุดบนพีซี Windows แน่นอนว่าการติดตั้งชุดประกอบเช่น Denwer ทำได้ง่ายกว่ามากหรือใช้โปรแกรมติดตั้งและไม่ต้องกังวลกับการตั้งค่า อย่างไรก็ตามนักพัฒนาเว็บทุกคน จำเป็นต้องเข้าใจกระบวนการดำเนินงานของเว็บเซิร์ฟเวอร์ กระบวนการติดตั้งและการกำหนดค่า
หากคุณต้องการติดตั้ง PHP 7 โปรดดูบทความ
หากในกระบวนการประกอบเซิร์ฟเวอร์ตามคำแนะนำเหล่านี้ คุณพบปัญหาและยังถือว่าตัวเองเป็นนักพัฒนาเว็บ มันจะเป็นขั้นตอนที่ถูกต้องในการทำความเข้าใจปัญหาที่เกิดขึ้น และไม่เขียนความคิดเห็นว่าคำแนะนำนั้นไร้สาระ คำแนะนำกำลังทำงาน ผ่านการทดสอบตามเวลาและการติดตั้งหลายร้อยครั้ง ระมัดระวังเมื่อทำตามขั้นตอนง่ายๆ การทำตามขั้นตอนด้วยตนเองและวิเคราะห์สถานการณ์ หากไม่ได้ผล จะเพิ่มทักษะให้กับคุณในฐานะนักพัฒนา หากคุณไม่ใช่นักพัฒนาเว็บและไม่ได้วางแผนที่จะเป็นนักพัฒนาเว็บ ให้มองหาวิธีการติดตั้งแบบง่าย ๆ บนอินเทอร์เน็ต - คำแนะนำเหล่านี้ไม่เหมาะกับคุณ
โปรดทราบว่าภายใต้ Windows XP เวอร์ชันเหล่านี้ VC11มันจะเป็นไปไม่ได้ (หรือยากมาก) ที่จะเปิดตัว
งานเตรียมการ
ตรวจสอบให้แน่ใจว่าคุณมี Windows 7 หรือใหม่กว่า หากคุณมี Windows XP คำแนะนำเหล่านี้จะไม่ช่วยคุณ เนื่องจากเวอร์ชันของ Apache ที่อธิบายไว้ที่นี่ใช้ไม่ได้กับ Windows XP
ลบเว็บเซิร์ฟเวอร์ทั้งหมดที่คุณติดตั้งไว้ก่อนหน้านี้ ไปที่บริการ และตรวจสอบให้แน่ใจว่าไม่มีบริการ Apache หรือ IIS อยู่ที่นั่น หากคุณติดตั้งเว็บเซิร์ฟเวอร์ไว้แล้ว เซิร์ฟเวอร์ตัวที่สองที่ทำงานพร้อมกันนั้นมักจะไม่ทำงานเลย
หากคุณมี Skype อย่าลืมปิดการใช้งานพอร์ต 80 ในการตั้งค่า ท้ายที่สุด คุณต้องตรวจสอบให้แน่ใจว่าไม่มีบริการใดใช้พอร์ต 80
ในการทำงาน เป็นที่พึงปรารถนาอย่างยิ่งที่จะมีตัวจัดการไฟล์ที่ให้คุณสร้างไฟล์ที่มีนามสกุลใด ๆ หรือที่ดียิ่งกว่านั้นคือตัวแก้ไขโค้ดเช่น Sublime Text หรือ Notepad++ หรือ IDE ที่มีคุณสมบัติครบถ้วน
โครงสร้างโฟลเดอร์อาจแตกต่างกัน แต่คำสั่งนี้เขียนขึ้นสำหรับโครงสร้างเฉพาะและหากคุณปฏิบัติตาม ทุกอย่างรับประกันว่าจะใช้งานได้
ก่อนที่คุณจะเริ่ม ให้สร้างบนดิสก์ ดีโฟลเดอร์ ล้าหลังภายในซึ่งสร้าง 5 โฟลเดอร์ย่อย: อาปาเช่, PHP, ทีเอ็มพี, www, บันทึก- ถูกต้องแล้ว โดยไม่ต้องระบุหมายเลขเวอร์ชัน
ในแค็ตตาล็อก wwwสร้างไฟล์ดัชนี (โดยใช้ตัวจัดการไฟล์หรือโปรแกรมแก้ไขโค้ด) ที่จำเป็นในการตรวจสอบว่าทุกอย่างใช้งานได้:
- ดัชนี.htmlมีเนื้อหา: มันได้ผล!
- ดัชนี.phpมีเนื้อหา:
หากคุณไม่มีตัวจัดการไฟล์/ตัวแก้ไขโค้ด/IDE ให้ดาวน์โหลดไฟล์เก็บถาวรด้วยสองไฟล์นี้ แต่ถ้าคุณคิดว่าตัวเองเป็นนักพัฒนาเว็บ คุณจะต้องมีเครื่องมือเหล่านี้
เพิ่มตัวแปรระบบ PATH:
;D:\USR\apache;D:\USR\apache\bin;D:\USR\php;
หมายเหตุ!
หมายเลขบรรทัดที่ระบุในไฟล์การกำหนดค่าตัวอย่างอาจแตกต่างกันสำหรับ apache และ php เวอร์ชันอื่น
คำสั่งทั้งหมด รวมถึงการแก้ไขไฟล์ จะต้องดำเนินการในฐานะผู้ดูแลระบบ
การติดตั้งอาปาเช่ 2.4
แม้ว่าสำหรับการพัฒนาอย่างง่ายใน PHP นั้นไม่จำเป็นต้องมีเว็บเซิร์ฟเวอร์แยกต่างหาก (PHP มีเว็บเซิร์ฟเวอร์ของตัวเองในตัวซึ่งเกือบจะเพียงพอสำหรับการพัฒนาโครงการเดียวเสมอ) แต่ก็ยังแนะนำให้ติดตั้งและกำหนดค่าเซิร์ฟเวอร์ Apache WEB ถ้าเพียงเพราะโปรแกรมเมอร์ต้องรู้รายละเอียดปลีกย่อยเหล่านี้ ท้ายที่สุดแล้ว คุณจะต้องทำงานกับเว็บเซิร์ฟเวอร์และต้องจัดการกับการกำหนดค่าของมัน มาเริ่มกันเลย
- กำลังโหลด Apache 2.4 ไบนารี VC11สำหรับระบบของคุณที่ลิงค์ http://www.apache lounge.com/download/VC11/ ส่วนใหญ่แล้วคุณจะมีระบบปฏิบัติการ 64 บิต ดังนั้นคุณจะต้องมีไฟล์ที่มีชื่อเช่น httpd-2.4 xx-win64-VC11.zip
- หากคุณต้องการโมดูลเพิ่มเติม คุณสามารถดาวน์โหลดได้จากที่นั่น (ไม่จำเป็นสำหรับการติดตั้งขั้นพื้นฐาน)
- คลายซิปเนื้อหาของโฟลเดอร์ อาปาเช่24จากไฟล์เก็บถาวรที่ดาวน์โหลดไปที่ D:\USR\apache- โปรดทราบว่าใน D:\USR\apache คุณไม่ต้องใส่โฟลเดอร์ Apache24 จากไฟล์เก็บถาวร แต่ต้องใส่เนื้อหาในนั้น ไม่จำเป็นต้องติดตั้งอะไรเลย
- เปลี่ยนค่าในไฟล์ เซิร์ฟเวอร์รูทถึง "d:/USR/apache" ( บรรทัดที่ 37) และค่า DocumentRoot(และ ผู้อำนวยการ) ถึง "d:/USR/www" ( บรรทัดที่ 242 และ 243- คุณควรยกเลิกการใส่เครื่องหมายข้อคิดเห็นบรรทัด 218 และเปลี่ยนเป็น: ชื่อเซิร์ฟเวอร์โฮสต์ท้องถิ่น:80
- เราเปลี่ยนพารามิเตอร์การจัดเก็บบันทึกในไฟล์เดียวกัน (ค้นหาพารามิเตอร์และการเปลี่ยนแปลง): ErrorLog "D:/USR/log/apache-error.log" CustomLog "D:/USR/log/apache-access.log" ทั่วไป
- ติดตั้งบริการ Apache (ในนามของผู้ดูแลระบบ) เปิดพรอมต์คำสั่งในฐานะผู้ดูแลระบบและวางบรรทัดต่อไปนี้ที่นั่น: D:\USR\apache\bin\httpd.exe -k install
- เราตรวจสอบข้อความแสดงข้อผิดพลาดระหว่างการติดตั้งบริการ หากทุกอย่างถูกต้องก็ไม่น่าจะมีข้อผิดพลาด หากหลังจากดำเนินการบรรทัดแล้ว บรรทัดคำสั่งไม่ปรากฏขึ้นอีก แสดงว่าคุณทำอะไรผิด เพียงใช้ฟังก์ชันคัดลอกและวางเพื่อหลีกเลี่ยงข้อผิดพลาดในการพิมพ์
- สร้างทางลัดบนเดสก์ท็อปสำหรับ D:\USR\apache\bin\ApacheMonitor.exeและ/หรือวางไว้ในการเริ่มต้น (เพื่อเปิดหน้าต่างเริ่มต้นใน WIN8 ให้กด WIN+R จากนั้น Enter เปลือก: การเริ่มต้นและคลิกตกลง)
- เปิดตัว ApacheMonitor ทางลัดจะปรากฏในถาดระบบ คลิกซ้ายที่มันแล้วเลือก Apache24 -> เริ่ม
- ในเบราว์เซอร์ไปที่ http://localhost/ - คุณควรเห็น มันได้ผล!
- หากคุณไม่เห็นคำจารึกดังกล่าว เราก็จะเข้าใจได้ว่าเกิดอะไรขึ้น (เราอ่านบันทึก, Google, พยายามเข้าใจปัญหาด้วยตัวเองเนื่องจากเราตัดสินใจที่จะเข้าใจความซับซ้อนของเว็บเซิร์ฟเวอร์)
การติดตั้ง PHP 5.6
- ดาวน์โหลดเวอร์ชันล่าสุด VC11x86ด้ายปลอดภัยหรือ VC11x64ด้ายปลอดภัยผ่านลิงค์ http://windows.php.net/download/ โปรดทราบว่าคุณต้องการ VC11และแน่นอน ด้ายปลอดภัย- ความกว้างบิตควรเหมือนกับ Apache ไฟล์ที่คุณต้องการมักจะมีชื่อว่า: php-5.6.11-Win32-VC11-x86.zip หรือ php-5.6.11-Win32-VC11-x64.zip
- แยกเนื้อหาของไฟล์เก็บถาวรออกเป็น ง:\USR\php- เช่นเดียวกับ Apache ไม่จำเป็นต้องติดตั้งอะไรเลย
- หากต้องการไฟล์ D:\USR\apache\conf\httpd.confเพิ่มบรรทัด: LoadModule php5_module "d:/USR/php/php5apache2_4.dll" AddHandler application/x-httpd-php .php # พาธไปยังไฟล์ php.ini PHPIniDir "D:/USR/php"
- และเปลี่ยนค่า ดัชนีไดเรกทอรีบน index.html index.php (บรรทัดที่ 276)
- ใช้ ApacheMonitor เรารีสตาร์ท Apache (Apache24 -> รีสตาร์ท)
- เราไปที่เบราว์เซอร์ http://localhost/index.php และตรวจสอบให้แน่ใจว่า PHP ใช้งานได้
- การทำสำเนาของไฟล์ D:\USR\php\php.ini-การพัฒนามีชื่อ D:\USR\php\php.ini
- เมื่อใช้การค้นหา เราจะค้นหา ไม่แสดงข้อคิดเห็น และเปลี่ยนพารามิเตอร์: extension_dir = "D:/USR/php/ext" sys_temp_dir = "D:/USR/tmp" extension=php_mysql.dll extension=php_mysqli.dll extension=php_openssl.dll date.timezone = ยุโรป/ซาโปโรซเย
- ดำเนินการบนบรรทัดคำสั่ง PHP -มเพื่อดูรายการโมดูลที่เชื่อมต่อ
- รีสตาร์ท Apache โดยใช้ ApacheMonitor
โฮสต์เสมือนใน Apache
- หากคุณกำลังแก้ไขหลายโครงการบนคอมพิวเตอร์ของคุณ คุณอาจจำเป็นต้องมีโฮสต์เสมือน (ไซต์) เป็นตัวอย่าง เราจะพิจารณาโฮสต์เสมือนสองโฮสต์: s1.localhostและ s2.localhost- เพื่อความสะดวก เราจะสร้างโฟลเดอร์ที่มีชื่อเดียวกันซึ่งไม่จำเป็นเลยในระบบจริง
- โปรดทราบว่าเมื่อใช้โฮสต์เสมือนพารามิเตอร์ DocumentRootไฟล์การกำหนดค่า Apache ไม่สมเหตุสมผลอีกต่อไป โฮสต์หลักของเซิร์ฟเวอร์ (ซึ่งจะสามารถเข้าถึงได้ที่ http://localhost/) ขณะนี้ โฮสต์เสมือนเครื่องแรกในไฟล์คอนฟิกูเรชันโฮสต์เสมือน!
- ขั้นแรก คุณต้องเพิ่มบรรทัดต่อไปนี้ลงในไฟล์ c:\Windows\System32\drivers\etc\hosts: 127.0.0.1 s1.localhost 127.0.0.1 s2.localhost
สิ่งนี้จะต้องกระทำในนามของผู้ดูแลระบบ ขอแนะนำให้รีบูตหลังจากนี้ แต่ในทางปฏิบัติก็ไม่จำเป็น หากคุณไม่สามารถเปลี่ยนไฟล์ (สิทธิ์) คุณสามารถคัดลอกไฟล์ไปยังเดสก์ท็อปของคุณ เปลี่ยนไฟล์ แล้วคัดลอกกลับได้
- การสร้างโฟลเดอร์สำหรับโฮสต์เสมือน D:\USR\www\s1.localhostและ D:\USR\www\s2.localhostซึ่งไฟล์ต่างๆ จะถูกบรรจุอยู่ สร้างไฟล์ในแต่ละโฟลเดอร์ ดัชนี.htmlมีเนื้อหา S1และ เอส2ตามนั้น (เพื่อตรวจสอบว่าทุกอย่างทำงานได้ตามปกติ)
- จากนั้นเราสร้างโฟลเดอร์สำหรับบันทึก: D:\USR\log\s1.localhostและ D:\USR\log\s2.localhost- บันทึกสำหรับแต่ละไซต์จะถูกเก็บไว้ที่นี่ จริงๆ แล้ว บันทึกสามารถเก็บไว้ในโฟลเดอร์เดียวได้ แต่ฉันคุ้นเคยกับการทำเช่นนี้ - สะดวกกว่าสำหรับฉัน
- ถัดไป คุณต้องเปิดใช้งานการสนับสนุนสำหรับโฮสต์เสมือน ในไฟล์ D:\USR\apache\conf\httpd.confยกเลิกการใส่เครื่องหมายข้อคิดเห็นบรรทัด รวม conf/extra/httpd-vhosts.conf
- ต่อไปเราจะแก้ไขไฟล์ d:\USR\apache\conf\extra\httpd-vhosts.conf— ควรมีลักษณะเช่นนี้ (แต่ละโฮสต์เสมือนมีบล็อก VirtualHost ของตัวเอง):
ผู้ดูแลระบบเซิร์ฟเวอร์ [ป้องกันอีเมล] DocumentRoot "D:/USR/www/s1.localhost" ชื่อเซิร์ฟเวอร์ s1.localhost ServerAlias www.s1.localhost ErrorLog "D:/USR/log/s1.localhost/error.log" CustomLog "D:/USR/log /s1 .localhost/access.log" ทั่วไป ผู้ดูแลระบบเซิร์ฟเวอร์ [ป้องกันอีเมล] DocumentRoot "D:/USR/www/s2.localhost" ชื่อเซิร์ฟเวอร์ s2.localhost ServerAlias www.s2.localhost ErrorLog "D:/USR/log/s2.localhost/error.log" CustomLog "D:/USR/log /s2 .localhost/access.log" ทั่วไป - โฮสต์เสมือนเครื่องแรก s1.localhostตอนนี้จะเป็นโฮสต์หลักของระบบเพราะว่า บล็อกของมันมาก่อนในไฟล์คอนฟิกูเรชัน เช่น จะสามารถใช้ได้เมื่อเข้าสู่
Apache (เซิร์ฟเวอร์ Apache HTTP) ชื่อของเว็บเซิร์ฟเวอร์ที่มีชื่อเสียงและแพร่หลายที่สุดซึ่งรองรับโปรโตคอล HTTP/1.1 โดยพื้นฐานแล้ว เว็บเซิร์ฟเวอร์เป็นโปรแกรมที่มีประสิทธิภาพซึ่งออกแบบมาเพื่อประมวลผลคำขอ http จากแถบที่อยู่ของเบราว์เซอร์ และส่งคืนไฟล์ที่จำเป็นตามคำขอนี้ เพื่อให้ง่ายขึ้น เว็บเซิร์ฟเวอร์อนุญาตให้คุณสร้างการสื่อสารระหว่างเบราว์เซอร์และเซิร์ฟเวอร์ตามรูปแบบต่อไปนี้: เบราว์เซอร์ขอให้มอบไฟล์ไซต์ตามที่อยู่ และเว็บเซิร์ฟเวอร์จะมอบให้ นี่เป็นเรื่องง่ายมาก “การสื่อสาร” เกิดขึ้นผ่านโปรโตคอล HTTP
เว็บเซิร์ฟเวอร์ รวมถึง Apache ได้รับการพัฒนาเป็นพิเศษเพื่อวัตถุประสงค์เหล่านี้ และไม่ใช่เซิร์ฟเวอร์เดียวหรือซอฟต์แวร์โฮสติ้งเดียวที่จะสามารถทำงานได้หากไม่มีเว็บเซิร์ฟเวอร์ที่ทำงานโดยใช้โปรโตคอล HTTP
ไม่นานมานี้ Apache มีการผูกขาดเสมือนในการแก้ปัญหา ขณะนี้เว็บเซิร์ฟเวอร์ Nignix หมดเวลาแล้ว มีการใช้ symbiosis ของ Apache และ Nignix เพิ่มมากขึ้น
คุณไม่สามารถทำได้หากไม่มีเว็บเซิร์ฟเวอร์และสร้างเซิร์ฟเวอร์ภายในเครื่อง ในปัจจุบัน สถานการณ์คือมีการใช้ Apache และยิ่งไปกว่านั้น ยังมีอิทธิพลเหนือบิลด์เซิร์ฟเวอร์ภายในเครื่องทั้งหมด ทั้งสำหรับ Windows และ Linux
การจัดการอาปาเช่
หากต้องการทำความคุ้นเคยกับเว็บเซิร์ฟเวอร์ Apache ควรทำความคุ้นเคยกับวิธีจัดการบริการ Apache จากฝั่งไคลเอ็นต์
มีแนวโน้มว่าความง่ายในการจัดการภายนอกของบริการเว็บ Apache คือสิ่งที่ทำให้ได้รับความนิยมอย่างมาก (หรือนี่คือหนึ่งในเหตุผล) ในการจัดการบริการเว็บ Apache จะมีไฟล์พิเศษชื่อ .htaccess (มีจุดอยู่ที่จุดเริ่มต้น) ในแง่ของฟังก์ชันการทำงาน จะคล้ายกับไฟล์ robots.txt สำหรับโรบ็อตการค้นหา ด้วยคำสั่งพิเศษที่เขียนไว้ในไฟล์นี้ คุณในฐานะผู้ใช้สามารถควบคุมการส่งเพจบนเว็บไซต์ของคุณ สร้างการเปลี่ยนเส้นทาง ฯลฯ โดยไม่ต้องเจาะลึกซอฟต์แวร์เซิร์ฟเวอร์ นอกจากไฟล์ .htaccess แล้ว สำหรับการจัดการ Apache ยังมีไฟล์ htpasswd (มีจุดที่เริ่มต้นด้วย) และโมดูล mod_auth และ mod_access
แต่กลับมาที่เซิร์ฟเวอร์ภายในเครื่องกันหากต้องการติดตั้ง (สร้าง) เซิร์ฟเวอร์ภายในเครื่องบนคอมพิวเตอร์ของคุณ คุณไม่สามารถทำได้หากไม่มี Apache ฉันขอเตือนคุณอีกครั้งว่าในตัวย่อและ LAMP ตัวอักษร [A] คือเว็บเซิร์ฟเวอร์ Apache
ในแอสเซมบลีทั้งหมดของเซิร์ฟเวอร์ภายในเครื่อง เช่น Denver, Open-server, XAMPP ฯลฯ เว็บเซิร์ฟเวอร์ Apache มีความสำคัญอย่างยิ่ง หากเราประกอบเซิร์ฟเวอร์ด้วยตัวเองซึ่งเป็นสิ่งที่เรากำลังทำอยู่ จะต้องติดตั้ง Apache อย่างอิสระ
ฉันควรติดตั้ง Apache เวอร์ชันใด
Apache พัฒนาในสองสาขา (เวอร์ชัน): Apache 1.3 และ Apache 2.x ไม่จำเป็นต้องติดตั้งเวอร์ชันเก่า 1.3 ดังนั้นเราจึงทำงานกับเวอร์ชัน 2.x
ตอนนี้ส่วนที่สับสนที่สุด คุณทราบดีว่าเกือบทุกโปรแกรมสามารถติดตั้งได้สองวิธี:
- การใช้ตัวติดตั้งอัตโนมัติ (ตัวติดตั้ง) ไฟล์ ;
- โดยตรงโดยการอัพโหลดไดเร็กทอรีและไฟล์โปรแกรมไปยังไดเร็กทอรีที่ต้องการบนดิสก์
ด้วย Apache สถานการณ์จะเป็นดังนี้:
- Apache 2.4.26 เวอร์ชันล่าสุด (เปิดตัว 19-06-2560) มีเฉพาะในตัวเลือกการติดตั้งด้วยตนเองเท่านั้น (ลิงก์ด้านล่าง)
- เวอร์ชันตัวติดตั้งประกอบด้วย Apache 2.2.25 เวอร์ชันล่าสุด
นั่นคือทั้งหมด! ความใกล้ชิดครั้งแรกกับ Apache เกิดขึ้น ในบทความต่อไปนี้ ฉันจะแสดงวิธีการติดตั้ง Apache ทั้งสองเวอร์ชันบนคอมพิวเตอร์ของคุณ
ในที่สุด ลิงค์ที่จำเป็น
การนำทางบนเว็บไซต์เว็บเซิร์ฟเวอร์ Apache (http) ค่อนข้างสับสน ดังนั้นฉันจะให้ลิงก์ที่จำเป็น:
- เว็บไซต์เซิร์ฟเวอร์ Apache (http://httpd.apache.org/)
- ดาวน์โหลดเว็บเซิร์ฟเวอร์ Apache ( http://httpd.apache.org/download.cgi)
- ดาวน์โหลดเวอร์ชันเสถียร - เวอร์ชันล่าสุด: 2.4.26 (เผยแพร่ 2017-06-19) (สำหรับ Windows)
- ดาวน์โหลดฉบับที่ล้าสมัย - ซีรี่ส์ 2.2 2.2.32 (เผยแพร่เมื่อ 13-01-2017)
- เวอร์ชันไบนารี่: https://archive.apache.org/dist/httpd/binaries/win32/ (2013-07-10)
อาปาเช่คืออะไร? อี จากนั้นซอฟต์แวร์โอเพ่นซอร์ส เว็บเซิร์ฟเวอร์ซึ่งขับเคลื่อนประมาณ 46% ของเว็บไซต์ทั่วโลก ชื่ออย่างเป็นทางการคือ Apache HTTP Server ดูแลและพัฒนาโดย Apache Software Foundation
เว็บเซิร์ฟเวอร์อนุญาตให้เจ้าของเว็บไซต์ให้บริการเนื้อหาของตนบนอินเทอร์เน็ต ดังที่ชื่อ "เว็บเซิร์ฟเวอร์" สื่อถึง Apache เป็นหนึ่งในเว็บเซิร์ฟเวอร์ที่เก่าแก่และน่าเชื่อถือที่สุด โดยมีเวอร์ชันแรกที่เปิดตัวเมื่อกว่า 20 ปีที่แล้วในปี 1995
เมื่อมีคนต้องการเข้าชมเว็บไซต์ พวกเขาจะป้อนชื่อโดเมนลงในแถบที่อยู่ของเบราว์เซอร์ เว็บเซิร์ฟเวอร์จะส่งไฟล์ที่ร้องขอเสมือนผู้ส่งสารเสมือน
ที่ Hostinger โครงสร้างพื้นฐานของเราใช้ Apache ควบคู่ไปกับ NGINX ซึ่งเป็นเว็บเซิร์ฟเวอร์ยอดนิยมอีกตัวหนึ่ง การรวมกันนี้ทำให้เราสามารถใช้ประโยชน์จากทั้งสองอย่างได้อย่างเต็มที่ สิ่งนี้ช่วยปรับปรุงประสิทธิภาพอย่างมากโดยการชดเชยจุดอ่อนของสิ่งหนึ่งกับจุดแข็งของอีกสิ่งหนึ่ง
การประมวลผลไฟล์ การประมวลผลฐานข้อมูล เมลและเว็บเซิร์ฟเวอร์ใช้ซอฟต์แวร์เซิร์ฟเวอร์ประเภทต่างๆ แต่ละแอปพลิเคชันเหล่านี้สามารถเข้าถึงไฟล์ที่จัดเก็บไว้ในเซิร์ฟเวอร์จริงและใช้เพื่อวัตถุประสงค์ที่แตกต่างกัน
หน้าที่ของเว็บเซิร์ฟเวอร์คือการให้บริการเว็บไซต์บนอินเทอร์เน็ต เมื่อต้องการทำเช่นนี้ จะทำหน้าที่เป็นสื่อกลางระหว่างคอมพิวเตอร์เซิร์ฟเวอร์และคอมพิวเตอร์ไคลเอนต์ ใช้เนื้อหาจากเซิร์ฟเวอร์สำหรับคำขอของผู้ใช้แต่ละรายและส่งไปยังเครือข่าย
ความท้าทายที่ใหญ่ที่สุดของเว็บเซิร์ฟเวอร์คือการตอบสนองคำขอต่างๆ จากผู้ใช้จำนวนมากไปพร้อมๆ กัน เว็บเซิร์ฟเวอร์ประมวลผลไฟล์ที่เขียนด้วยภาษาการเขียนโปรแกรมที่แตกต่างกัน เช่น PHP, Python, Java และอื่นๆ
โดยจะเปลี่ยนให้เป็นไฟล์ HTML แบบคงที่และให้บริการแก่เบราว์เซอร์ของผู้ใช้ เมื่อคุณได้ยินคำว่าเว็บเซิร์ฟเวอร์ ให้คิดว่ามันเป็นเครื่องมือในการสื่อสารระหว่างเซิร์ฟเวอร์และไคลเอนต์
เว็บเซิร์ฟเวอร์ Apache ทำงานอย่างไร?
แม้ว่า Apache จะถูกเรียกว่าเว็บเซิร์ฟเวอร์ แต่จริงๆ แล้วไม่ใช่เซิร์ฟเวอร์ แต่เป็นโปรแกรมที่ทำงานบนเซิร์ฟเวอร์ หน้าที่คือสร้างการเชื่อมต่อระหว่างเซิร์ฟเวอร์และเบราว์เซอร์ของผู้เยี่ยมชม (Firefox, Google Chrome, Safari ฯลฯ ) ในขณะที่ส่งไฟล์ไปมาระหว่างพวกเขา (โครงสร้างไคลเอนต์ - เซิร์ฟเวอร์) Apache เป็นซอฟต์แวร์ข้ามแพลตฟอร์ม ซึ่งหมายความว่าทำงานได้ดีบนเซิร์ฟเวอร์ Unix และ Windows
เมื่อผู้เยี่ยมชมต้องการโหลดหน้าบนเว็บไซต์ของคุณ เช่น หน้าแรกของคุณหรือหน้า "เกี่ยวกับเรา" เบราว์เซอร์ของพวกเขาจะส่งคำขอไปยังเซิร์ฟเวอร์ของคุณและ Apache จะตอบกลับด้วยไฟล์ที่ร้องขอทั้งหมด (ข้อความ รูปภาพ ฯลฯ) . เซิร์ฟเวอร์และไคลเอนต์สื่อสารโดยใช้ HTTP และ Apache รับผิดชอบการเชื่อมต่อที่ราบรื่นและปลอดภัยระหว่างทั้งสองเครื่อง
Apache สามารถปรับแต่งได้สูงเนื่องจากมีโครงสร้างแบบโมดูลาร์ โมดูลช่วยให้ผู้ดูแลระบบเซิร์ฟเวอร์เปิดหรือปิดฟังก์ชันการทำงานเพิ่มเติมได้ Apache มีโมดูลสำหรับการรักษาความปลอดภัย การแคช การแก้ไข URL การตรวจสอบรหัสผ่าน และอื่นๆ คุณสามารถตั้งค่าของคุณเองได้ผ่านไฟล์ .htaccess ซึ่งเป็นไฟล์การตั้งค่าสำหรับ Apache และได้รับการสนับสนุนจากแผน Hostinger ทั้งหมด
Apache และเว็บเซิร์ฟเวอร์อื่นๆ
นอกจาก Apache แล้ว ยังมีเว็บเซิร์ฟเวอร์อื่นๆ อีกจำนวนไม่น้อย แอปพลิเคชันเว็บเซิร์ฟเวอร์แต่ละรายการถูกสร้างขึ้นเพื่อวัตถุประสงค์ที่แตกต่างกัน แม้ว่า Apache จะใช้กันอย่างแพร่หลายที่สุด แต่ก็มีทางเลือกและคู่แข่งมากมาย
เขาอยู่ที่นี่ - ยิ่งใหญ่และแย่มาก ในช่วงชีวิตของมัน ได้ทำลายนักพัฒนาเว็บมือใหม่จำนวนมากที่เสียชีวิตในการตั้งค่าไฟล์การกำหนดค่า 🙂 แต่คุณและฉันเป็นคนที่มีจิตใจเข้มแข็งและท้องแข็ง - ไปกันเลย
การติดตั้งและการตั้งค่าเบื้องต้น
แตกไฟล์เก็บถาวรการแจกจ่ายลงในไดเร็กทอรี C:\Apache2
เปิดไฟล์ “C:\Apache2\conf\httpd.conf” ในโปรแกรมแก้ไขข้อความ ซึ่งเป็นไฟล์การกำหนดค่าหลักสำหรับเซิร์ฟเวอร์ Apache
เอาล่ะเดี๋ยวก่อน ขอความร่วมมือสตรี ผู้สูงอายุ และเด็กอย่าอ่านต่อ ผู้เขียนจะไม่รับผิดชอบต่อสภาพจิตใจของผู้ที่อ่านบทความจนจบ
การแก้ไขไฟล์ httpd.conf
- หากต้องการโหลดโมดูล mod_rewrite ให้ค้นหาและยกเลิกการใส่เครื่องหมายข้อคิดเห็น (ลบสัญลักษณ์ “#” ที่จุดเริ่มต้นของบรรทัด) บรรทัดนี้:
LoadModule โมดูล rewrite_module/mod_rewrite.so - หากต้องการโหลดล่าม PHP คุณต้องเพิ่มบรรทัดที่ส่วนท้ายของบล็อกการโหลดโมดูล:
LoadModule php5_module "C:/php/php5apache2_2.dll" - กำหนดไดเร็กทอรีที่มีไฟล์คอนฟิกูเรชัน PHP โดยเพิ่มบรรทัดต่อไปนี้:
PHPIniDir "C:/php" - ค้นหาและยกเลิกการใส่เครื่องหมายข้อคิดเห็นบรรทัด:
ชื่อเซิร์ฟเวอร์ www.example.com:80
แก้ไขดังนี้โดยตั้งชื่อเซิร์ฟเวอร์เดิม:
ชื่อเซิร์ฟเวอร์โฮสต์ท้องถิ่น:80 - ค้นหาบรรทัด:
DocumentRoot "c:/Apache2/htdocs"
กำหนดไดเรกทอรีการจัดการไซต์รูท (เราจะสร้างใหม่ในภายหลัง):
DocumentRoot "C:/apache" - ค้นหาบล็อกนี้:
ตัวเลือก FollowSymLinks
AllowOverride ไม่มี
คำสั่งปฏิเสธอนุญาต
ปฏิเสธจากทั้งหมด
และแทนที่ด้วยสิ่งต่อไปนี้:
ตัวเลือกรวมถึงดัชนี FollowSymLinks
อนุญาตแทนที่ทั้งหมด
อนุญาตจากทั้งหมด
- ลบหรือใส่ความคิดเห็นในบล็อกควบคุมไดเร็กทอรีดั้งเดิม (เราไม่ต้องการมัน) ซึ่งหากไม่มีความคิดเห็นจะมีลักษณะดังนี้:
ตัวเลือกดัชนี FollowSymLinks
AllowOverride ไม่มี
คำสั่งอนุญาต, ปฏิเสธ
อนุญาตจากทั้งหมด
- ค้นหาบล็อก:
DirectoryIndexดัชนี.html
แทนที่ด้วย:
DirectoryIndex index.html index.htm index.shtml index.php
- ค้นหาบรรทัด:
ErrorLog "บันทึก/error.log"
แทนที่ด้วยสิ่งต่อไปนี้ (ในกรณีนี้ จะสะดวกกว่าในการดูไฟล์ข้อผิดพลาดเซิร์ฟเวอร์ส่วนกลาง):
บันทึกข้อผิดพลาด "C:/apache/error.log" - ค้นหาบรรทัด:
CustomLog "logs/access.log" ทั่วไป
แทนที่ด้วย:
CustomLog "C:/apache/access.log" ทั่วไป - ในการใช้งาน SSI (การเปิดใช้งานฝั่งเซิร์ฟเวอร์) บรรทัดต่อไปนี้จะอยู่ในบล็อก
คุณต้องค้นหาและไม่แสดงข้อคิดเห็น:
เพิ่มประเภทข้อความ/html .shtml
AddOutputFilter ประกอบด้วย .shtml - เพิ่มด้านล่างในบล็อกเดียวกัน
สองบรรทัด:
แอปพลิเคชัน AddType/x-httpd-php .php
แอปพลิเคชัน AddType/x-httpd-php-source .phps - สุดท้าย ค้นหาและไม่ใส่เครื่องหมายข้อคิดเห็นบรรทัด:
รวม 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:\Apache2\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 ในรูปภาพ
เปิดบรรทัดคำสั่งและป้อน “C:\Apache2\bin\httpd.exe -k install”
นี่คือสิ่งที่เราควรเห็นเมื่อติดตั้งบริการ Apache2.2 สำเร็จแล้ว
หากทุกอย่างเป็นไปด้วยดีเราจะดำเนินการต่อไป - ตั้งค่าการเปิดตัวบริการ Apache2.2 ด้วยตนเองซึ่งเราปฏิบัติตามเส้นทาง: "เริ่ม" → "แผงควบคุม" → "เครื่องมือการดูแลระบบ" → "บริการ" ในการจัดการบริการ หน้าต่างที่เปิดขึ้นเลือกบรรทัด "Apache2.2" แล้วดับเบิลคลิกที่มันจากนั้นในแท็บ "ทั่วไป" เลือกการเริ่มต้นบริการด้วยตนเอง - "ประเภทการเริ่มต้น: ด้วยตนเอง" "(ประเภทการเริ่มต้น: คู่มือ) สิ่งนี้จะต้องทำเพื่อป้องกันไม่ให้บริการที่ไม่จำเป็นโหลดระบบ เมื่อพิจารณาว่าคอมพิวเตอร์ที่บ้านใช้ไม่เพียงแต่สำหรับการพัฒนาเว็บเท่านั้น แต่ยังรวมถึงความต้องการอื่นๆ ด้วย การเริ่มและหยุดบริการที่ใช้เป็นระยะๆ ด้วยตนเองนั้นเหมาะสมที่สุด
การสร้างโครงสร้างไดเร็กทอรีโฮสต์เสมือน
ในรูทของดิสก์คุณต้องสร้างไดเร็กทอรี "apache" ซึ่งจะมีโฮสต์เสมือนของคุณ (โดเมน) ไฟล์บันทึกข้อผิดพลาดระดับโลก "error.log" (สร้างโดยโปรแกรมเมื่อคุณเริ่มใช้งานครั้งแรกโดยอัตโนมัติ) ไฟล์การเข้าถึงทั่วโลก "access.log" (สร้างขึ้นโดยอัตโนมัติ) ในไดเรกทอรี "apache" เราสร้างโฟลเดอร์ว่างอีกโฟลเดอร์ - "localhost" ซึ่งในทางกลับกันเราจะสร้างโฟลเดอร์ "www" ซึ่งในส่วนหลังเราจะต้องเก็บเนื้อหาของเราไว้ในรูปแบบของสคริปต์ในเครื่อง โครงสร้างไดเร็กทอรีที่ดูแปลกนี้ถูกกำหนดโดยโครงสร้างไดเร็กทอรีที่คล้ายกันในระบบ Unix และมีจุดมุ่งหมายเพื่อทำให้การทำความเข้าใจและการใช้งานง่ายขึ้น
ตัวอย่างการสร้างโฮสต์เสมือน
หากคุณต้องการติดตั้งโฮสต์เสมือนของคุณเอง ให้ทำดังต่อไปนี้:
เปิดไฟล์ “httpd-vhosts.conf” และสร้างบล็อกในนั้นโดยมีเนื้อหาโดยประมาณต่อไปนี้:
# โฟลเดอร์ที่จะรูทของโฮสต์ของคุณ
DocumentRoot "C:/apache/test.ru/www"
# โดเมนที่คุณสามารถเข้าถึงโฮสต์เสมือนได้
ชื่อเซิร์ฟเวอร์ test.ru
# นามแฝง (ชื่อเพิ่มเติม) ของโดเมน
เซิร์ฟเวอร์นามแฝง www.test.ru
# ไฟล์ที่จะเขียนข้อผิดพลาด
บันทึกข้อผิดพลาด "C:/apache/test.ru/error.log"
# ไฟล์บันทึกการเข้าถึงโฮสต์
CustomLog "C:/apache/test.ru/access.log" ทั่วไป
จากนั้นในไดเรกทอรี "apache" ให้สร้างโฟลเดอร์ "test.ru" (เช่นเดียวกับที่มีจุด) ซึ่งในทางกลับกันจะสร้างโฟลเดอร์ "www"
ขั้นตอนต่อไปในการสร้างโฮสต์เสมือนคือการแก้ไขไฟล์ C:\WINDOWS\system32\drivers\etc\hosts ของระบบปฏิบัติการ เปิดไฟล์นี้และเพิ่มสองบรรทัดเข้าไป:
127.0.0.1 ทดสอบ.ru
127.0.0.1 www.test.ru
ตอนนี้เริ่มต้นเซิร์ฟเวอร์ Apache โดยดำเนินการ “C:\Apache2\bin\httpd.exe -k start” บนบรรทัดคำสั่ง เปิดเบราว์เซอร์ ป้อน “test.ru” หรือ “www.test.ru” ในแถบที่อยู่ และ คุณจะพบว่าตัวเองอยู่ในโฮสต์เสมือนของคุณ เพียงระวังตอนนี้คุณสามารถไปที่ไซต์ดั้งเดิมด้วยชื่อของโฮสต์เสมือน (“ www.test.ru” ถ้ามี) โดยการใส่ความคิดเห็นหรือลบบรรทัด:“ 127.0.0.1 www.test.ru ” ในไฟล์ที่กล่าวถึงข้างต้น“ เจ้าภาพ"
เอกสารประกอบของ Apache ขณะที่เซิร์ฟเวอร์ทำงานอยู่ มีอยู่ที่ http://localhost/manual/
คุณสามารถหยุด Apache ได้โดยการรัน “C:\Apache2\bin\httpd.exe -k stop” บนบรรทัดคำสั่ง หากคุณต้องการรีสตาร์ท Apache ให้รัน “C:\Apache2\bin\httpd.exe -k restart” ที่บรรทัดคำสั่ง
การติดตั้งและกำหนดค่าเว็บเซิร์ฟเวอร์ Apache เสร็จสมบูรณ์
การสร้างไฟล์แบตช์เพื่อเริ่มและหยุดบริการ
ยอมรับว่าการแก้ไขไฟล์ "โฮสต์" ด้วยตนเองทุกครั้งที่คุณเริ่มบริการนั้นไม่สะดวก ดังนั้นเพื่อให้สะดวกยิ่งขึ้นในการเริ่มบริการ Apache, MySQL และการเปลี่ยนไฟล์ "โฮสต์" เราจะสร้างไฟล์แบตช์สองไฟล์: สำหรับการเริ่มต้นและ หยุดซึ่งจะทำงานประจำทั้งหมดโดยอัตโนมัติ
เมื่อใช้โฮสต์เสมือน คุณจะต้องสร้างไฟล์สองไฟล์ในไดเร็กทอรี C:\apache: vhosts-off.txt ซึ่งมีเนื้อหาเริ่มต้นของไฟล์ “hosts” และ vhosts-on.txt ซึ่งมีโฮสต์เสมือนทั้งหมด โปรดทราบว่าเมื่อสร้างโฮสต์เสมือนใหม่ คุณจะต้องเพิ่มโฮสต์เหล่านั้นลงในไฟล์ vhosts-on.txt ไม่ใช่เพิ่มลงใน C:\WINDOWS\system32\drivers\etc\hosts ดูตัวอย่างด้านล่าง
ไฟล์ vhosts-off.txt (สามารถมีบรรทัดเดียวได้):
127.0.0.1 โลคัลโฮสต์
ตัวอย่างไฟล์ vhosts-on.txt ที่มีโฮสต์เสมือน www.test.ru และ test.ru:
127.0.0.1 โลคัลโฮสต์
127.0.0.1 www.test.ru
127.0.0.1 ทดสอบ.ru
ในไดเรกทอรีเดียวกัน C:\apache ให้สร้างไฟล์แบตช์สองไฟล์: start-webserver.bat – เพื่อเริ่มบริการและแทนที่ไฟล์ “hosts” และ stop-webserver.bat – เพื่อหยุดบริการและล้างไฟล์ “hosts”
เปิดไฟล์ start-webserver.bat:
@echo ปิดเสียงสะท้อน หากไม่มี C:\apache\vhosts-on.txt ไปที่ no_vhosts echo สร้างโฮสต์เสมือน: copy /v /y C:\apache\vhosts-on.txt C:\WINDOWS\system32\drivers\etc\hosts echo :no_vhosts NET เริ่ม Apache2.2 NET เริ่ม MySQL
หยุดไฟล์ stop-webserver.bat:
@echo ปิดเสียงสะท้อน หากไม่มี C:\apache\vhosts-off.txt ไปที่ no_vhosts echo Restore ไฟล์โฮสต์: คัดลอก /v /y C:\apache\vhosts-off.txt C:\WINDOWS\system32\drivers\etc\hosts echo :no_vhosts NET หยุด Apache2.2 NET หยุด MySQL
หากคุณไม่ได้ใช้โฮสต์เสมือนหรือต้องการเริ่มบริการโดยไม่ต้องแทนที่ไฟล์ “hosts” เพียงลบไฟล์ vhosts-on.txt และ vhosts-off.txt ออกจากไดเร็กทอรี C:\apache
พร้อมกับบริการต่างๆ จะสะดวกในการเรียกใช้โปรแกรม Apache Monitor ซึ่งแสดงสถานะของเซิร์ฟเวอร์ Apache ในซิสเต็มเทรย์ซึ่งคุณสามารถสร้างไฟล์แบตช์อื่น“ start-webserver-monitor.bat” ซึ่งมีเนื้อหาที่ คล้ายกับไฟล์ “start-webserver.bat” โดยมีการเพิ่มส่วนท้ายของบรรทัดถัดไป:
เริ่ม "" "C:\Apache2\bin\ApacheMonitor.exe"
ในการรันชุดเครื่องมือทั้งหมด คุณจะต้องเรียกใช้ไฟล์ “start-webserver-monitor.bat” หรือ “start-webserver.bat” และเพื่อหยุดไฟล์ “stop-webserver.bat” หากต้องการ คุณสามารถเปลี่ยนชื่อไฟล์เหล่านี้ ย้ายไปยังตำแหน่งอื่นจากโฟลเดอร์ “C:\apache” หรือสร้างทางลัดไปยังไฟล์เหล่านี้ เช่น บนเดสก์ท็อป
บทความต้นฉบับ: http://php-myadmin.ru/learning/instrument-apache.html