- Teil eins einer zweiteiligen Serie zur Einrichtung einer Apache/PHP-Entwicklungsumgebung unter macOS
- Hole dir die neuesten Betriebssystem-Updates
- Xcode installieren
- Install Homebrew
- Anlegen von Apache-Logdateiverzeichnissen
- Apache installieren und konfigurieren
- Ändern Sie den lauschenden Port
- Nützliche Apache-Module aktivieren
- Ändern Sie die Apache-Benutzer- und -Gruppeneinstellungen
- Set Apache Server Admin and Server Name
- Ändern Sie den Dokumentstamm, das Verzeichnis und die Überschreibungen
- Set Apache Error Log Location
- Erstellen Sie einen Sites-Ordner
- Starten Sie Apache neu
Teil eins einer zweiteiligen Serie zur Einrichtung einer Apache/PHP-Entwicklungsumgebung unter macOS
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.