วิธีเรียกใช้ httpd บน macOS โดยไม่ใช้ Apache [ปิด]


0

ฉันกำลังพยายามสร้างแอปพลิเคชันBCHS ฉันมีเซิร์ฟเวอร์ระยะไกลที่ใช้ OpenBSD แต่เวลาแฝงเครือข่ายกำลังฆ่าฉันดังนั้นฉันตัดสินใจที่จะพัฒนาบน MacBook Air ของฉันและปรับใช้กับเซิร์ฟเวอร์ OpenBSD ในภายหลัง

ฉันยังไม่ได้ติดตั้ง Apache (และไม่คิดว่าฉันต้องการ) แต่httpdดูเหมือนจะเป็นยูทิลิตี้ของ macOS ในตัว

~
❯ httpd -v
Server version: Apache/2.4.28 (Unix)
Server built:   Oct  9 2017 19:54:20

ฉันพยายามเริ่มต้นhttpdด้วยวิธีการต่อไปนี้ แต่ไม่ได้ผล:

❯ launchctl enable httpd
Unrecognized target specifier. <service-target> takes a form of <domain-target>/<service-id>.
Please refer to `man launchctl` for explanation of the <domain-target> specifiers.
Usage: launchctl enable <service-target>

~
❯ launchctl start httpd

~
❯ launchctl list | grep httpd

~
❯ httpd
(13)Permission denied: AH00072: make_sock: could not bind to address [::]:80
(13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs

TL; DR

ฉันต้องการที่จะเปิดตัวhttpdเป็นภูต ฉันจะทำอย่างไร


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

ถูกตั้งค่าสถานะไม่ชัดเจน! httpd -v Server version: Apache/2.4.28 (Unix)คำถามไม่ได้ทำให้ความรู้สึกมากในแง่ของ คำสั่งทั่วไปในการเริ่มต้น httpd ใช้sudo apachectl startสำหรับ httpd ผูกกับพอร์ต <1024
klanomath

@ kanomath ฉันสับสนกับสิ่งที่คุณสับสน คำตอบของคุณไม่ควรเป็น "เรียกใช้sudo apachectl start" ใช่หรือไม่
JMY1000

คำตอบ:


2

มีบริการ LaunchDaemon สำหรับ Apache ใน / System / Library / LaunchDaemons, org.apache.httpd.plist คุณสามารถโหลดโดยใช้:

sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist

แน่นอนคุณจะต้องกำหนดค่าhttpd.confอย่างเหมาะสมก่อน

-wควรตั้ง.plistกุญแจพิการเป็นเท็จจึงจะเริ่มต้นในการบูต

หมายเหตุ: loadถูกจัดประเภทเป็นคำสั่งย่อยดั้งเดิมlaunchctlแต่ยังคงใช้งานได้ใน High Sierra ฉันพยายามเริ่ม Apache sudo launchctl enable system/org.apache.httpdแต่ดูเหมือนจะไม่ทำอะไรเลยอาจเป็นเพราะฉันไม่รู้ว่าจะใช้ยังenableไง : P

DOUBLE หมายเหตุ: Apache httpdต้องการยกระดับสิทธิ์จึงไม่มีอะไรเกิดขึ้นเมื่อคุณเพียงแค่วิ่ง sudo httpdจะทำงาน แต่กำหนดค่าอีกครั้งก่อน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.