วิธีทำให้ Apache เริ่ม httpd โดยอัตโนมัติเมื่อเริ่มระบบใน Mac OS X
นักพัฒนาเว็บที่ใช้ Mac อาจคุ้นเคยกับการเริ่มและหยุดเว็บเซิร์ฟเวอร์ Apache ใน OS X ด้วยตนเองผ่านบรรทัดคำสั่งแล้ว แต่ถ้าคุณต้องการให้ Apache เริ่มทำงานเองโดยอัตโนมัติเมื่อบูตเครื่องและรีบูตเครื่อง Mac คุณจะต้องก้าวไปอีกขั้นและใช้ launchctl เมื่อทำเช่นนี้ webdevs ไม่จำเป็นต้องรันคำสั่ง apache start ด้วยตนเองเพื่อเริ่ม Apache httpd daemon มันจะเริ่มทำงานเองโดยอัตโนมัติทุกครั้งที่ Mac บูทตามปกติแล้ว เราจะแสดงวิธีหยุด Apache ไม่ให้เริ่มต้นตัวเองเมื่อบูตเช่นกัน
โดยพื้นฐานแล้ว สิ่งที่คำสั่งเหล่านี้ทำคือโหลด apache web server launch daemon เข้าสู่ OS X เมื่อระบบเริ่มทำงาน เนื่องจากใช้ launchctl คุณจะต้องมีสิทธิ์การเข้าถึงของผู้ดูแลระบบผ่าน sudo เพื่อโหลดหรือยกเลิกการโหลด apache โปรดจำไว้ว่า นี่เป็นสิ่งจำเป็นสำหรับ OS X เวอร์ชันใหม่กว่าเท่านั้น ซึ่งไม่มีตัวเลือก 'การแชร์ผ่านเว็บ' ในแผงการกำหนดลักษณะการแชร์อีกต่อไป
หมายเหตุ: ซึ่งจะถือว่าคุณได้กำหนดค่าและตั้งค่า Apache บน Mac แล้ว หากคุณยังไม่ได้ดำเนินการ คุณควรเริ่มต้นจากที่นั่น มิฉะนั้น คุณจะโหลด Apache อัตโนมัติโดยไม่ต้องกำหนดค่าอะไรมากมาย
ตั้งค่า Apache ให้เริ่มโดยอัตโนมัติเมื่อเริ่มระบบใน Mac OS X
จาก Terminal ให้ป้อนคำสั่งต่อไปนี้:
sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
กดย้อนกลับและป้อนรหัสผ่านของผู้ดูแลระบบตามที่ร้องขอเพื่อทำงานให้เสร็จ
ขณะนี้เมื่อ Mac ถูกบูทหรือรีบูต Apache จะเริ่มทำงานโดยอัตโนมัติ ซึ่งตรวจสอบได้ง่ายโดยไปที่เบราว์เซอร์ใดก็ได้และป้อน “localhost” เป็น URL
คุณจะเห็นคำว่า “It Works!” ที่คุ้นเคย ข้อความที่ localhost และไฟล์หลักเหล่านั้นอยู่ใน:
/Library/WebServer/Documents/
ไปต่อ คุณยังสามารถเปิดใช้งานตัวเลือกไซต์ระดับผู้ใช้สำหรับ localhost/~User แต่นั่นอยู่นอกเหนือขอบเขตของบทความนี้ เราจะกล่าวถึงที่นี่
หยุด Apache จากการโหลดเมื่อบูตใน Mac OS X
หากต้องการหยุด Apache ไม่ให้เริ่มต้นเองโดยอัตโนมัติเมื่อระบบเริ่มทำงาน คุณเพียงแค่ต้องลบตัวแทนออกจาก launchd เช่นเดียวกับ daemon อื่นๆ เช่น:
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
อีกครั้ง คุณจะต้องป้อนรหัสผ่านผู้ดูแลระบบเพื่อยืนยันการเปลี่ยนแปลง
ตรวจสอบว่า Apache ถูกโหลดหรือยกเลิกการโหลดใน launchd
หากคุณไม่แน่ใจว่าคุณได้ตั้งค่า Apache ให้โหลดโดยอัตโนมัติหรือไม่ คุณสามารถสอบถาม launchd สำหรับ apache ได้ดังนี้:
launchctl list|grep apache
ไม่เห็น apache.httpd กลับมา? จากนั้น daemon จะไม่ถูกโหลด และจะไม่เริ่มทำงานโดยอัตโนมัติ Apache ยังคงสามารถใช้และเริ่มต้นด้วยตนเองได้ แต่จะไม่เริ่มต้นเองด้วยการรีบูตหรือบูต ค่อนข้างง่าย
หากการกำหนดค่า Apache, PHP และ MySQL ใน OS X ฟังดูซับซ้อนเกินไปหรือถือว่ายุ่งยากเกินไป ทางออกที่ดีอีกวิธีหนึ่งคือการใช้แพ็คเกจเว็บเซิร์ฟเวอร์ที่กำหนดค่าไว้ล่วงหน้า เช่น MAMPMAMP นำเสนอโซลูชันเว็บเซิร์ฟเวอร์ในตัวเช่นกัน ด้วย Apache, PHP และ MySQL ที่รวมอยู่ในแพ็คเกจแอปพลิเคชันเดียว ผู้ใช้เพียงเปิดแอป MAMP และเริ่มบริการที่จำเป็นเพื่อเริ่มและหยุดเว็บเซิร์ฟเวอร์สำหรับการพัฒนาในท้องถิ่น MAMP นั้นทรงพลังและเป็นเครื่องมือที่ยอดเยี่ยมสำหรับนักพัฒนาเว็บที่ใช้ Mac และโดยทั่วไปแล้วมันเกี่ยวข้องกับการซ่อมแซมและความซับซ้อนน้อยกว่าการกำหนดค่าองค์ประกอบแต่ละส่วนด้วยตนเองเพื่อทำงานใน OS X ด้วยตัวเอง วิธีแก้ปัญหาทั้งสองวิธีนั้นยอดเยี่ยม ดังนั้นใช้ตัวเลือกที่เหมาะกับคุณและระดับความสะดวกสบายของคุณ