0 votes

Comment exécuter httpd sur macOS sans Apache

Je suis en train de construire une application BCHS. J'ai un serveur distant qui exécute OpenBSD, mais la latence du réseau me tue, donc j'ai décidé de développer sur mon MacBook Air et de déployer plus tard sur le serveur OpenBSD.

Je n'ai pas encore installé Apache (et je ne pense pas en avoir besoin), mais httpd semble être une utilité intégrée à macOS.

~
 httpd -v
Version du serveur: Apache/2.4.28 (Unix)
Serveur construit le:   9 octobre 2017 19:54:20

J'ai essayé de démarrer httpd avec les méthodes suivantes, mais elles n'ont pas fonctionné:

 launchctl enable httpd
Spécificateur de cible non reconnu.  prend la forme de /.
Veuillez vous référer à `man launchctl` pour une explication des spécificateurs de .
Utilisation: launchctl enable 

~
 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
aucune prise d'écoute disponible, arrêt en cours
AH00015: Unable to open logs

TL;DR

Je veux lancer httpd en tant que démon. Comment puis-je faire cela?

0 votes

Ma "réponse" n'est pas une réponse "centrée sur les pommes", donc je la mets en commentaire. Ce que j'ai trouvé le plus utile, c'est d'allumer une machine virtuelle (VirtualBox est plus que suffisant), de la configurer avec un réseau en pont pour qu'elle obtienne une adresse IP sur votre réseau, et d'installer BSD et Apache comme vous le feriez normalement. Cela fonctionnera comme votre serveur distant avec l'avantage supplémentaire que le "nettoyage" consiste simplement à supprimer la machine virtuelle, sans désinstaller les serveurs dont vous n'avez plus besoin.

0 votes

Marqué comme non clair! La question n'a pas beaucoup de sens à la lumière de httpd -v Version du serveur: Apache/2.4.28 (Unix). La commande commune pour démarrer httpd est sudo apachectl start pour httpd lié aux ports <1024>.

0 votes

@klanomath Je suis confus sur ce qui te confond. Ta réponse ne devrait-elle pas simplement être "Exécute sudo apachectl start"?

2voto

Sera H Points 1428

Il existe un service LaunchDaemon pour Apache dans /System/Library/LaunchDaemons, org.apache.httpd.plist. Vous pouvez le charger en utilisant :

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

Évidemment, vous devrez d'abord configurer httpd.conf de manière appropriée.

Le -w devrait définir la clé Disabled de .plist sur false pour qu'il démarre au démarrage.

REMARQUE : load est classé comme une sous-commande obsolète de launchctl mais fonctionne toujours dans High Sierra. J'ai essayé de démarrer Apache avec sudo launchctl enable system/org.apache.httpd mais cela ne semblait pas avoir d'effet, peut-être parce que je ne sais pas comment utiliser enable. :P

DOUBLE REMARQUE : Apache a besoin de privilèges élevés, donc rien ne se passe lorsque vous exécutez simplement httpd. sudo httpd fonctionnera mais encore une fois, configurez-le d'abord.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X