Dit artikel is gericht op webontwikkelaars die een Apache webserver willen installeren als onderdeel van de setup van hun ontwikkelomgeving op hun Mac.

Als u een PHP-ontwikkelaar bent, dan is dit artikel een eerste vereiste voor het volgende artikel, dat u door de installatie van PHP met Homebrew en PECL zal leiden. Een link naar dat artikel vind je onderaan deze pagina.

Als ontwikkelaar vertrouwde ik op de versie van Apache die voorgeïnstalleerd was met het OS op mijn MacBook Pro. Met de steeds veranderende beveiligingsregels in macOS, heb ik besloten om mijn hele aanpak te veranderen en in plaats daarvan de gedistribueerde versie van Apache uit te schakelen en een setup te gebruiken die volledig uit Homebrew komt. Deze nieuwe aanpak geeft meer flexibiliteit voor versiebeheer en zal blijven werken op alle macOS versies.

Deze instructies werken hetzelfde voor macOS 10.13 High Sierra en 10.14 Mojave. Ik heb niet getest op eerdere versies van macOS, maar het zou op dezelfde manier moeten werken. Je hoeft niet te beginnen met een verse OS installatie om dit artikel te gebruiken, maar ik heb een aantal vreemde dingen zien gebeuren bij het upgraden naar Mojave vs een verse installatie (bijv. het volledig missen van het mod_deflate.so module extensie bestand na de upgrade). Ik raad een verse installatie aan, maar als je in plaats daarvan een upgrade trotseert, wees dan bereid om wat bestanden en paden na te lopen.

Laten we beginnen!

Get the Latest OS Updates

Als je net een verse OS installatie hebt gedaan, hoef je dit waarschijnlijk niet te doen.

Installeer Xcode

Als je niet geïnteresseerd bent in het installeren van de volledige Xcode app is dat prima, het Homebrew install commando installeert de basis Xcode Command Line Tools die het nodig heeft. Ik raad echter de volledige installatie aan, vooral als je Mojave gebruikt. Om dit te doen kunt u het volgende commando vanaf terminal uitvoeren.

xcode-select --install

Install Homebrew

Het volgende commando zal Homebrew installeren.

(Let op: het volgende commando is een enkele regel die is ingepakt als gevolg van de beperkte paginabreedte in Medium. Zorg ervoor dat u de hele regel kopieert).

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Maak Apache Log Bestand Directories

Apache komt voorgeconfigureerd met zijn eigen log directories, maar we gaan onze eigen “/usr/local/log/” map maken, zodat we ze gemakkelijk kunnen vinden als dat nodig is. Als je naar het volgende artikel gaat om PHP te installeren, zullen we deze zelfde log-bestand locatie ook gebruiken voor de PHP logs, en hebben we alle logs op één plaats.

Volg deze stappen om de juiste mappen aan te maken en hun rechten in te stellen. Negeer eventuele “bestaat al” berichten die u zou kunnen krijgen.

$ sudo mkdir /usr/local/log$ sudo mkdir /usr/local/log/httpd$ sudo chgrp -R staff /usr/local/log/httpd$ sudo chmod -R ug+w /usr/local/log/httpd/

Installeer en configureer Apache

macOS 10.13 High Sierra en 10.14 Mojave worden geleverd met Apache vooraf geïnstalleerd. Maar in plaats van de meegeleverde versie te gebruiken, gaan we Apache installeren via Homebrew en het dan configureren om op poort 80 te draaien.

Als je de voorgeïnstalleerde Apache al hebt draaien, moet deze eerst worden afgesloten en alle automatisch ladende scripts verwijderd. Het kan geen kwaad om beide volgende commando’s uit te voeren, zelfs op een nieuwe installatie.

(Let op: het tweede commando is een enkele regel die is ingepakt vanwege de beperkte paginabreedte in Medium. Zorg ervoor dat u de hele regel kopieert).

$ sudo apachectl stop
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null

Installeer nu de nieuwe versie van Apache die door Homebrew wordt geleverd.

$ brew install httpd

Als dat klaar is, voert u het volgende commando uit om de Apache service te starten en ervoor te zorgen dat deze automatisch herstart bij het inloggen.

$ brew services start httpd

U hebt nu Homebrew’s versie van Apache geïnstalleerd en geconfigureerd om automatisch te herstarten bij het herstarten. Hij zou al moeten draaien, dus je zou je browser moeten kunnen richten op http://localhost:8080 en een eenvoudige header zien die zegt, “Het werkt!”.

Note, we zijn momenteel gericht op poort 8080. We gaan dat veranderen in de volgende stappen. Nu we een werkende webserver hebben, willen we een paar configuratie wijzigingen maken, zodat het meer naar onze zin werkt … of eigenlijk gewoon naar mijn zin ;-).

Open het Apache configuratie bestand:

$ open -e /usr/local/etc/httpd/httpd.conf

Verander de Listening Port

Scroll naar beneden en zoek de regel die zegt, “Listen 8080” en verander het in;

Listen 80

Enable Useful Apache Modules

Naar aanleiding hiervan kunt u de volgende twee handige Apache modules inschakelen. U kunt zoeken naar de volgende twee regels en ze uitcommentariëren door de hashtag “#” te verwijderen.

Hint: de deflate regel staat in het midden van de LoadModule sectie en de rewrite regel staat helemaal onderaan de LoadModule sectie.

LoadModule deflate_module lib/httpd/modules/mod_deflate.so
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

Wijzig Apache Gebruiker en Groep Instellingen

Aangezien Apache standaard draait als de gebruiker _www en groep _www. Straks gaan we onze standaard document directory instellen op een “Sites” directory in onze Home directory, en deze gebruiker en groep instellingen zullen problemen veroorzaken wanneer u bestanden in uw home directory probeert te benaderen.

Scroll ongeveer een derde van de weg naar beneden in uw httpd.conf bestand en u zult twee regels vinden die de gebruiker en groep instellen waaronder Apache zal draaien. Verander deze zodat ze overeenkomen met uw gebruikersaccount. Vervang your_username door de gebruikersnaam van uw MacBook en gebruik de groepsnaam staff.

User your_username
Group staff

Set Apache Server Admin and Server Name

Vind de regel “ServerAdmin” en schakel deze in door de voorloop hashtag “#” te verwijderen (indien nodig) en verander vervolgens het emailadres in uw eigen:

ServerAdmin [email protected]

Inschakel de Apache server naam in de configuratie door het voorloop hashtag “#” te verwijderen en verander het in localhost:

ServerName localhost

Verander de Document Root, Directory en Overrides

Volgende gaan we de document root voor Apache veranderen. Dit is de map waar Apache bestanden vandaan haalt. Standaard is de document root geconfigureerd als /usr/local/var/www. Omdat we een ontwikkelomgeving maken en zoveel mogelijk map permissie problemen willen vermijden, veranderen we de document root in een map in onze Home directory (die we zo gaan aanmaken).

Ga verder naar beneden en vind de DocumentRoot regel. Verander deze in:

DocumentRoot "/Users/your_username/Sites"

Volgende, je moet ook de tag referentie veranderen direct onder de DocumentRoot regel. Deze moet ook naar de nieuwe document root wijzen:

<Directory "/Users/your_username/Sites">;

In datzelfde blok vind je een AllowOverride instelling. Deze moet veranderd worden van Geen om “Alle” overschrijvingen toe te staan:

AllowOverride All

Set Apache Error Log Location

Ten slotte gaan we de Apache error log lokatie instellen op de map die we eerder hebben gemaakt. Scroll iets verder naar beneden en zoek de regel voor “ErrorLog” en verander deze als volgt:

ErrorLog "/usr/local/log/httpd/error_log"

Bewaar en sluit de tekst editor af.

Maak een Sites map

Gebruik de volgende twee regels om een “Sites” map te maken en voeg een index.html bestand toe te voegen om ons op weg te helpen:

(Let op: het tweede commando is een enkele regel die is ingepakt vanwege de beperkte paginabreedte in Medium. Zorg ervoor dat u de hele regel kopieert).

$ mkdir ~/Sites
$ echo "<h1>It Works in my Sites Folder</h1>;" > ~/Sites/index.html

Herstart Apache

Nu starten we opnieuw om er zeker van te zijn dat onze configuratie-instellingen correct zijn:

$ sudo apachectl -k restart

Probeer te surfen naar uw localhost op de nieuwe locatie: http://localhost

Als dit werkt en u ziet het bericht “Het werkt in mijn map Sites”, dan gefeliciteerd! U hebt een nieuwe webserver-instance die draait op poort 80.

Als u een foutmelding krijgt, kunnen de dubbele aanhalingstekens rond directoryvermeldingen in uw httpd.conf-bestand een mogelijke oorzaak zijn. Soms zetten tekst editors deze om naar latijnse aanhalingstekens. Deze aanhalingstekens zijn optioneel en kunnen verwijderd worden. Probeer de dubbele aanhalingstekens te verwijderen en Apache opnieuw te starten.

admin

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.

lg