Einen Apache-Webserver mit PHP unter Ubuntu 18 aufsetzen
Webserver sind das Portal zur Seele des Internets. Was so geschwollen klingt, ist vermutlich auch so.
Ein Apache-Webserver ist schnell zu installieren, wenn man mal schnell WordPress irgendwo hinklatschen muss. Wir beginnen damit, die nötigen Pakete zu installieren. Übrigens: Unter Ubuntu 18.0 wird im Standard-Repository PHP 7.2 installiert.
sudo apt update sudo apt install -y apache2 php libapache2-mod-php php-cli php-xml php-zip php-mysql php-gd php-imagick php-recode php-tidy php-curl php-mbstring php-xmlrpc
Das installiert eigentlich die nötigsten Dinge, die man so braucht. Alles andere kann nachinstalliert werden.
Als nächstes sollte die Rewrite-Mod aktiviert werden; das wird bei vielen Webseiten vorausgesetzt.
sudo a2enmod rewrite sudo systemctl restart apache2
Als nächstes musst du dir überlegen, wie du die Dateistruktur der Webseite haben möchtest. Da sind die Geschmäcker verschieden; deshalb kann ich dir doch direkt meine Version aufschwatzen!
Die Webseite bekommt einen eigenen User (z.B. bfbfbf
). Im Home-Verzeichnis dieses Users gibt es ein Subfolder namens <DomainnameHierEinfügen>
, in dem wiederum httpdocs
und logs
liegen. Die eigentliche Webseite liegt unter httpdocs
.
Also die folgenden Schritte durchführen:
# User anlegen sudo adduser bfbfbf # Zu User switchen sudo su bfbfbf # Website Verzeichnisse anlegen mkdir ~/bjoern.falszewski.de mkdir ~/bjoern.falszewski.de/httpdocs mkdir ~/bjoern.falszewski.de/logs chmod og-rx ~/bjoern.falszewski.de/logs chmod 777 ~/bjoern.falszewski.de/logs
Als nächstes müssen wir Apache sagen, wo die Webseite liegt und wie sie heißt. Also nochmal als sudo-User einloggen und folgende Datei anlegen. Wie du die Datei nennst, ist eigentlich egal – wichtig ist das .conf
am Ende.
sudo mcedit /etc/apache2/sites-available/bjoern.falszewski.de.conf
Der Inhalt der Datei sieht so aus:
# Host anlegen für einfaches HTTP <VirtualHost *:80> # Name der Website ServerName bjoern.falszewski.de # Verzeichnis des Webroots DocumentRoot /home/bfbfbf/bjoern.falszewski.de/httpdocs # Logfiles: CustomLog /home/bfbfbf/bjoern.falszewski.de/logs/access.log combined ErrorLog /home/bfbfbf/bjoern.falszewski.de/logs/error.log LogLevel warn # Zugriffsrechte festlegen <Directory /home/bfbfbf/bjoern.falszewski.de> Options -Indexes +FollowSymLinks +MultiViews AllowOverride All Require all granted </Directory> </VirtualHost>
Datei speichern und in Apache aktivieren; der Name ist der Dateiname vor dem .conf
.
sudo a2ensite bjoern.falszewski.de
Anschließend die Config neu laden:
sudo systemctl reload apache2
Wenn du jetzt eine Datei in den httpdocs-Ordner legst, sollte diese erreichbar sein. Vergiss nicht, Domain und IP in deinem externen DNS-Dienst einzutragen!
SSL einrichten
Im Moment läuft deine Seite nur unter http und ist nicht verschlüsselt. Das ist nicht nur ultra-uncool, sondern datenschutztechnisch sehr bedenklich. Allerdings ist das leicht zu beheben. Anstatt, wie früher, ein paar Euros für ein Zertifikat auszugeben, gibt es mit Let’s Encrypt eine kostenlose und sichere Alternative!
Das muss aber erstmal installiert werden:
sudo apt update sudo apt install -y software-properties-common sudo add-apt-repository universe sudo add-apt-repository ppa:certbot/certbot sudo apt update sudo apt install -y certbot python-certbot-apache
Anschließend reicht ein kleiner Aufruf, um den Wizard zu starten. Hier solltest du dich dazu entscheiden, einfache http Aufrufe direkt umleiten zu lassen – letsencrypt macht den Rest!
sudo certbot --apache
6. Februar 2020
Alle meine Artikel entstehen mit bestem Wissen und Gewissen, sind aber nicht perfekt und sollten immer nur als Ausgangspunkt für deine eigenen Recherchen bilden.
Sollte dir etwas Fehlerhaftes auffallen, freue ich mich über deine Nachricht!