4 votes

Changement de la version par défaut d'Apache sur MacOS Sierra

Un balayage du réseau par le DHS a montré que l'un des Macs des chercheurs utilise une version non sécurisée d'Apache (2.4.25) et qu'ils aimeraient qu'il fasse une mise à jour vers au moins 2.4.27.

Il a des difficultés à faire en sorte que MacOS utilise la nouvelle version d'Apache plutôt que celle installée par défaut avec Sierra. Ses problèmes sont les suivants :

Mac OS X 10.12.6 Sierra

  1. J'ai installé httpd 2.4.27 . . . /usr/local/apache2/bin/

  2. mais le httpd qui tourne par défaut est situé dans /usr/sbin/

  3. Je ne peux pas installer un nouveau httpd dans /usr/sbin/ - pas de droits d'écriture pour sudo.

  4. J'ai rendu actif un utilisateur Root - mais "Root" n'a pas non plus les droits d'écriture pour /usr/sbin/.

Je ne trouve aucune source sur le web qui décrit comment changer le chemin d'accès à httpd de la version système par défaut (/usr/sbin/httpd) à une nouvelle version installée par l'UTILISATEUR, comme /usr/local/apache2/bin/httpd.

Quelles sont les étapes que je manque ?

1voto

Tom Points 415

Pour utiliser une nouvelle version d'Apache, vous devez désactiver la version intégrée d'Apache :

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

Vous devez disposer d'un accès Root (un utilisateur et un mot de passe admin par exemple) pour désactiver cette fonction. Vous pouvez alors faire tourner votre propre apache - quelle que soit la source, l'emplacement et la version que vous voulez. C'est mieux que de remplacer la version d'origine car chaque mise à jour de MacOS peut et va changer la version intégrée. Le chargement latéral de votre source préférée d'apache garantit qu'elle durera en dehors du processus de mise à jour d'Apple. Le seul inconvénient est que vous devez appliquer des correctifs et sécuriser cette version chargée en parallèle.

Une excellente façon de charger latéralement une version robuste et facilement corrigée d'apache https est de le faire avec https://brew.sh le gestionnaire de paquets homebrew.

$ brew info httpd
httpd : stable 2.4.37 (bottled) Serveur HTTP Apache
https://httpd.apache.org/
Non installé
De : https://github.com/Homebrew/homebrew-core/blob/master/Formula/httpd.rb
\==> Dépendances requises : apr , apr-util , brotli , nghttp2 , openssl , pcre .
\==> Caveats DocumentRoot est /usr/local/var/www.

Les ports par défaut ont été fixés dans /usr/local/etc/httpd/httpd.conf à 8080 et dans /usr/local/etc/httpd/extra/httpd-ssl.conf à 8443 afin que httpd puisse fonctionner sans sudo.

Pour que launchd démarre httpd maintenant et le redémarre à la connexion :
brew services start httpd
Ou, si vous ne voulez pas ou n'avez pas besoin d'un service d'arrière-plan, vous pouvez simplement exécuter :
apachectl start

L'autre avantage est que vous pouvez utiliser brew services pour configurer le démon à lancer au démarrage et il respawn sans que vous ayez besoin de faire votre propre launchd / launchctl script ou utiliser crontab ou équivalent.

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