Dieser Artikel richtet sich an Webentwickler, die einen Apache-Webserver als Teil ihrer Entwicklungsumgebung auf dem Mac installieren wollen.

Wenn Sie ein PHP-Entwickler sind, dann ist dieser Artikel eine Voraussetzung für den nächsten Artikel, der Sie durch die Installation von PHP mit Homebrew und PECL führen wird. Einen Link zu diesem Artikel finden Sie am Ende dieser Seite.

Als Entwickler habe ich mich früher auf die Apache-Version verlassen, die mit dem Betriebssystem meines MacBook Pro ausgeliefert wurde. Aufgrund der sich ständig ändernden Sicherheitsregeln in macOS habe ich mich entschlossen, meine gesamte Herangehensweise zu ändern und stattdessen die verteilte Version von Apache zu deaktivieren und ein Setup zu verwenden, das vollständig aus Homebrew stammt. Diese neue Herangehensweise erlaubt mehr Flexibilität bei der Versionierung und wird auch weiterhin über alle macOS-Versionen hinweg funktionieren.

Diese Anweisungen funktionieren genauso für macOS 10.13 High Sierra und 10.14 Mojave. Ich habe sie nicht mit früheren Versionen von macOS getestet, aber es sollte ähnlich funktionieren. Du musst auch nicht mit einer Neuinstallation des Betriebssystems beginnen, um diesen Artikel zu verwenden, aber ich habe einige seltsame Dinge gesehen, die beim Upgrade auf Mojave im Vergleich zu einer Neuinstallation passiert sind (z.B. das komplette Fehlen der mod_deflate.so Modul-Erweiterungsdatei nach dem Upgrade). Ich empfehle eine Neuinstallation, aber wenn du stattdessen ein Upgrade wagst, sei darauf vorbereitet, dass du einige Dateien und Pfade suchen musst.

Lasst uns anfangen!

Hole dir die neuesten Betriebssystem-Updates

Wenn du gerade eine Neuinstallation des Betriebssystems durchgeführt hast, wirst du das wahrscheinlich nicht tun müssen.

Xcode installieren

Wenn Sie nicht daran interessiert sind, die gesamte Xcode-Anwendung zu installieren, ist das in Ordnung, der Homebrew-Installationsbefehl installiert die grundlegenden Xcode-Befehlszeilen-Tools, die benötigt werden. Ich empfehle jedoch die vollständige Installation, besonders wenn Sie Mojave verwenden. Um dies zu tun, können Sie den folgenden Befehl vom Terminal aus ausführen.

xcode-select --install

Install Homebrew

Der folgende Befehl wird Homebrew installieren.

(Bitte beachten Sie, dass der folgende Befehl eine einzelne Zeile ist, die aufgrund der Seitenbreitenbeschränkungen in Medium umbrochen wurde. Stellen Sie sicher, dass Sie die gesamte Zeile kopieren).

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

Anlegen von Apache-Logdateiverzeichnissen

Apache wird mit eigenen Logverzeichnissen vorkonfiguriert, aber wir werden unseren eigenen „/usr/local/log/“-Ordner anlegen, damit wir sie leicht finden können, wenn wir sie brauchen. Wenn Sie mit dem nächsten Artikel zur Installation von PHP fortfahren, werden wir denselben Speicherort für die PHP-Protokolle verwenden, um alle Protokolle an einem Ort zu haben.

Befolgen Sie diese Schritte, um die entsprechenden Verzeichnisse zu erstellen und ihre Berechtigungen festzulegen. Ignorieren Sie etwaige „bereits existierende“ Meldungen, die Sie erhalten.

$ 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/

Apache installieren und konfigurieren

macOS 10.13 High Sierra und 10.14 Mojave werden mit vorinstalliertem Apache geliefert. Anstatt jedoch die mitgelieferte Version zu verwenden, werden wir Apache über Homebrew installieren und dann so konfigurieren, dass er auf Port 80 läuft.

Wenn Sie den vorinstallierten Apache bereits laufen haben, müssen Sie ihn zuerst herunterfahren und alle automatisch ladenden Skripte entfernen. Es schadet nicht, die beiden folgenden Befehle auszuführen, selbst bei einer Neuinstallation.

(Bitte beachten Sie, dass der zweite Befehl eine einzelne Zeile ist, die aufgrund der Beschränkungen der Seitenbreite in Medium umbrochen wurde. Stellen Sie sicher, dass Sie die gesamte Zeile kopieren).

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

Installieren Sie nun die neue Version von Apache, die von Homebrew zur Verfügung gestellt wird.

$ brew install httpd

Nachdem dies abgeschlossen ist, führen Sie den folgenden Befehl aus, um den Apache-Dienst zu starten und sicherzustellen, dass er bei der Anmeldung automatisch neu gestartet wird.

$ brew services start httpd

Sie haben nun die Homebrew-Version von Apache installiert und so konfiguriert, dass er beim Neustart automatisch startet. Er sollte bereits laufen, so dass Sie in der Lage sein sollten, Ihren Browser auf http://localhost:8080 zu richten und eine einfache Kopfzeile zu sehen, die besagt: „Es funktioniert!“.

Bemerken Sie, dass wir derzeit auf Port 8080 verweisen. Das werden wir in den folgenden Schritten ändern. Jetzt, wo wir einen funktionierenden Webserver haben, wollen wir einige Konfigurationsänderungen vornehmen, damit er mehr nach unserem Geschmack funktioniert … oder eigentlich nur nach meinem Geschmack ;-).

Öffnen wir die Apache-Konfigurationsdatei:

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

Ändern Sie den lauschenden Port

Scrollen Sie nach unten und suchen Sie die Zeile „Listen 8080“ und ändern Sie sie in:

Listen 80

Nützliche Apache-Module aktivieren

Als nächstes können Sie die folgenden zwei nützlichen Apache-Module aktivieren. Sie können nach den folgenden beiden Zeilen suchen und sie auskommentieren, indem Sie das führende Hashtag „#“ entfernen.

Tipp: Die deflate-Zeile befindet sich in der Mitte des LoadModule-Abschnitts und die rewrite-Zeile ganz unten im LoadModule-Abschnitt.

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

Ändern Sie die Apache-Benutzer- und -Gruppeneinstellungen

Standardmäßig läuft Apache unter dem Benutzer _www und der Gruppe _www. In Kürze werden wir unser Standard-Dokumentenverzeichnis auf ein „Sites“-Verzeichnis in unserem Home-Ordner setzen, und diese Benutzer- und Gruppeneinstellungen werden Ihnen Probleme bereiten, wenn Sie versuchen, auf Dateien in Ihrem Home-Verzeichnis zuzugreifen.

Scrollen Sie etwa ein Drittel des Weges nach unten in Ihrer httpd.conf-Datei und Sie werden zwei Zeilen finden, die den Benutzer und die Gruppe festlegen, unter denen der Apache läuft. Ändern Sie diese so, dass sie Ihrem Benutzerkonto entsprechen. Ersetzen Sie your_username durch Ihren MacBook-Benutzernamen und verwenden Sie den Gruppennamen staff.

User your_username
Group staff

Set Apache Server Admin and Server Name

Suchen Sie die „ServerAdmin“-Zeile und aktivieren Sie sie, indem Sie den führenden Hashtag „#“ (falls erforderlich) entfernen und dann die E-Mail in Ihre eigene ändern:

ServerAdmin [email protected]

Aktivieren Sie den Apache-Servernamen in der Konfiguration, indem Sie das führende Hashtag „#“ entfernen und ihn in localhost ändern:

ServerName localhost

Ändern Sie den Dokumentstamm, das Verzeichnis und die Überschreibungen

Als nächstes ändern wir den Dokumentstamm für Apache. Dies ist der Ordner, aus dem der Apache Dateien bereitstellt. Standardmäßig ist das Dokumentenstammverzeichnis als /usr/local/var/www konfiguriert. Da wir eine Entwicklungsumgebung erstellen und so viele Probleme mit Ordnerrechten wie möglich vermeiden wollen, ändern wir das Dokumentenstammverzeichnis in einen Ordner in unserem Home-Verzeichnis (das wir in Kürze erstellen werden).

Scrollen Sie weiter nach unten und suchen Sie die Zeile DocumentRoot. Ändern Sie sie wie folgt:

DocumentRoot "/Users/your_username/Sites"

Als Nächstes müssen Sie auch die Tag-Referenz direkt unter der DocumentRoot-Zeile ändern. Dieser sollte so geändert werden, dass er ebenfalls auf Ihr neues Stammdokument verweist:

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

Im selben Block finden Sie eine AllowOverride-Einstellung. Diese sollte von „None“ auf „All“ overrides geändert werden:

AllowOverride All

Set Apache Error Log Location

Schließlich legen wir den Speicherort des Apache-Fehlerprotokolls auf den Ordner fest, den wir zuvor erstellt haben. Scrollen Sie ein wenig weiter nach unten und suchen Sie die Zeile für „ErrorLog“ und ändern Sie sie wie folgt:

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

Speichern Sie und beenden Sie den Texteditor.

Erstellen Sie einen Sites-Ordner

Erstellen Sie mit den folgenden beiden Zeilen einen „Sites“-Ordner und fügen Sie eine index.html-Datei hinzu:

(Bitte beachten Sie, dass es sich bei dem zweiten Befehl um eine einzelne Zeile handelt, die aufgrund der Beschränkungen der Seitenbreite in Medium umbrochen wurde. Stellen Sie sicher, dass Sie die gesamte Zeile kopieren).

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

Starten Sie Apache neu

Nun starten wir neu, um sicherzustellen, dass unsere Konfigurationseinstellungen korrekt sind:

$ sudo apachectl -k restart

Versuchen Sie, Ihren localhost an seinem neuen Ort aufzurufen: http://localhost

Wenn dies funktioniert und Sie die Meldung „It Works in my Sites Folder“ sehen, dann herzlichen Glückwunsch! Sie haben eine neue Webserver-Instanz, die auf Port 80 läuft.

Wenn Sie eine Fehlermeldung erhalten, könnte eine mögliche Ursache die doppelten Anführungszeichen sein, die um Verzeichniseinträge in Ihrer httpd.conf-Datei herum verwendet werden. Manchmal wandeln Texteditoren diese in lateinische Anführungszeichen um. Diese Anführungszeichen sind optional und können entfernt werden. Versuchen Sie, die doppelten Anführungszeichen zu entfernen und den Apache neu zu starten.

admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

lg