Foto-Knipser.eu schöne Feiertage und einen guten Start ins Neue Jahr!

Der Fahrplan zum eigenen MacOS Webserver (MAMP)

Ich habe bereits über meinen Workflow in Puncto bloggen berichtet. Heute ergänze ich das ganze um das Thema eigenes Hosting! Im nachfolgenden Artikel berichte ich, was man alles benötigt, um einen eigenen Webserver auf seinem Mac zu hosten Der Bericht enthält einen Fahrplan mit allen nötigen Schritten und verweise auf detaillierte How-Tos. Diese Links sind gute Einstiegspunkte, um sich jeweils bei bestimmten Fragen zu vertiefen. Der eine braucht Unterstützung beim Thema MySQL - der nächste benötigt gar keine SQL Datenbank ...

Vorüberlegungen

Die Zielgruppe dieses Artikels hat mit überwiegender Wahrscheinlichkeit bereits eine eigene Webseite bei einem Provider gehostet oder in der Vergangenheit bereits einen Webserver auf Linux laufen lassen. Stellt sich die Frage, wieso die Webseite auf einem Mac? Was spricht dafür und was dagegen.

Bevor man seine eigene Webseite selbst hostet, sollte man ein paar grundsätzliche Vorfragen für sich klären und sich fragen: Ist es überhaupt sinnvoll?

  • Zum einen macht ein Webserver Arbeit, er will gewartet werden, benötigt Updates. Auch aus ökologischen Gründen ist es nicht unbedingt sinnvoll einen eigenen Webserver zu betreiben: denn er benötigt Strom, verschleißt die Hardware und nicht jeder Mensch möchte 24h am Stück seinen Rechner laufen lassen. Bei kleineren Installationen, z.B. im lokalen Intranet kann man den Webserver auch nur eingeschränkt eingeschaltet lassen. Auch ist es möglich. den Rechner bei Netzwerkzugriff aus dem Ruhezustand aufwachen zu lassen. Das schlägt allerdings auf die Verfügbarkeit der Webseite und ist nicht wirklich Sinn und Zweck. Vollständigkeitshalber sei es aber erwähnt.

  • Nicht zuletzt spricht dagegen, dass man je nach dem, welche Internetanbindung man hat, man auch mit Geschwindkeitsnachteilen rechnen muss.

  • MacOS Server sind auch bei weitem nicht soweit verbreitet wie vergleichbare Installationen auf Linux (LAMP). Zum einen ist die Dokumentation grundsätzlich bei Linux besser, zum anderen muss man auch beachten, dass manche Konstellationen grundsätzlich sich schwierig erweisen können. Prominentes Beispiel sei hier etwa Nextcloud genannt. Offiziell wird dies auf einem MacOS Server nicht supportet.

  • Auf der anderen Seite, spricht für mich nichts dagegen einen Mac zu verwenden, wenn MacOS sowieso das OS der Wahl ist. Grundsätzlich läuft das ganze genauso gut, wie bei Installationen auf anderen Betriebsystem, ist schließlich im Kern auch nur ein BSD.

  • Nicht zuletzt gilt hier das alt bekannte Motto: Es gibt keine CLOUD - es gibt nur Computer von Anderen.

... das wird benötigt

  • eigene Domain
  • Internetanbindung mit genügend Bandbreite
  • feste IP (wahlweise Dienst wie dyndns.org)
  • Mac
  • Terminal / SSH Zugriff nebst Berechtigung
  • Zugang zum Router
  • xcode
  • homebrew
  • certbot
  • feel comfortabel with console and vim :-)

... und so wirds gemacht

Webserver

  • Als erstes richten wir uns lokal einen Webserver ein. Benutzt wird hier grundsätzlich Apache (einfach, weil ich schon immer Apache benutze).

Apache startet man mit

sudo apachectl start mit

sudo apachectl configtest testet ihr die Syntax Eurer Konfiguationsdateien.

Die Konfiguration findet unter Catalina in /etc/apache2/ statt. Dort konfiguriert man die httpd.conf (Bitte vorher ein Backup up machen), indem ihr die entsprechend benötigten Module entkommentiert (# entfernen).

sudo cp httpd.conf httpd.conf-backup

Eine gute ausführliche Anleitung für alle Module wie PHP und MYSQL findet hier auf der Seite von J. Mccreary

  • Bisher haben wir lediglich Apache gestartet. Eure Webseite unterstützt bislang nur http Zugriff. Wünschenswert ist aber SSL https//

Testen kann man das dann schonmal unter http://localhost bzw. http://localhost/Sites/

SSL / https / Zertifikate usw.

  • Für https bzw. SSl verschlüsselte Seiten benötigt Ihr ein Zertifikat. Welches Ihr entweder selbst signieren könnt. Dazu würde ich allenfalls bei kleinen Installationen raten. Firefox wird beim Aufrufen Eurer Seite ansonsten nämlich ein Sicherheitsrisiko feststellen und darauf hinweisen, dass das Zertifikat lediglich self signed ist. Das ist unschön. Wer trotzdem sein eigenes Zertifikat nehmen will, findet eine gute Anleitung hier.

Besser ist ihr holt Euch ein Zertifikat von einem Anbieter. Ich empfehle Letsencrypt. Die entsprechende Anleitung, wie man ein Zertifikat kostenlos erhält und sich installiet, findet Ihr hier.

Ich würde hier das Zertifikat mit Certbot erstellen. Hierzu geht ihr am Mac wie folgt vor. Falls Ihr noch kein Homebrew installiert habe, holt dies bitte nach. Ihr installiert xcode (über den Apple App Store). Anschliessend installiert ihr homebrew wie folgt: /bin/bash -c „$(curl -fsSL https://raw.githubusercontent.com/Homebrew/ Als normaler User (!=root) installiert ihr anschließend certbot mit dem Befehl: brew install certbot

Nach der Installation folgt Ihr den Anweisungen von certbot, die hier gefunden werden und installiert die Zertifikate mit certbot -apache.

Virtuelle hosts

in /etc/hosts ergänzt Ihr Eure domains in /etc/apache2/extra/httpd/httpd-vhosts.conf legt Ihr virtuelle hosts an, die auf Eure jeweilige Installationen unter ~/Sites/ führen.

die vhosts.conf ist gut dokumentiert

Testet die Syntax mit sudo apachetcl configtest

Einstellungen beim Provider

  • Als dritten Schritt solltet ihr die IPs in den A/AAAA Records bei Eurem Domainanbieter auf Eure feste IP setzen. Euer Provider unterstützt Euch ggf. bei den DNS Einstellungen und leistet Support bei Fragen. Stellt sicher, dass hier die Einstellungen später zurücksetzen könnt, falls ihr was falsch macht.

Den Router konfigurieren

  • Am eigenen Router solltet ihr die Ports 80 (für http) und 443 (https) auf Euren Server umleiten. Auf der fritzbox geschieht dies z.B. unter Internet/Freigabe/Portfreigabe

.htaccess

  • Im Verzeichnis Eurer Webseiteninstallationen, z.B. ~/Sites/ solltet ihr noch eine .htaccess anlegen, dort könnt Ihr z.B. Verzeichnisschutz anlegen, oder einstellen, dass http Anfragen automatisch auf https umgeleitet wird. Dazu tragt ihr in die .htaccess folgendes ein:

RewriteEngine On

RewriteCond %{SERVER_PORT} !^443$

RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]

Apache hat meist ein Upload Limit vor drin. Damit Ihr grössere Webfiles später hochladen könnt, empfehle ich die .htacces auch durch folgende Zeilen zu ergänzen: php_value upload_max_filesize 20M

php_value post_max_size 20M

In diesem Beispiel wären dann Dateien á 20MB erlaubt

done.

Viel Spass mit Eurem eigenen MAMP. Es sollte nun alles laufen. Testet Eure Installation indem ihr https://www.euredomain.de ider http://euredomain aufruft. Ihr solltet in jedemfall in der Adresszeile Eures Browsers ein kleines Schloss sehen. Wenn Ihr dort drauf klickt, könnt Ihr Euer Zertifikat ansehen. Dieses sollte von Letsencrypt.org ausgestellt worden sein.

htop

zurück