Virtueller Webserver auf Debian-Basis
Als Test- und Entwicklungssystem für Websites bietet sich ein virtueller Server auf der Basis von LAMP an: Linux, Apache, MariaDB und PHP (Perl, Python, …). So bleibt der Server mit all seinen Komponenten vom eigentlichen Arbeitssystem getrennt, kann einzeln gesichert und ggf. auch wiederhergestellt werden und Dank Snapshots kann man eventuell fehlschlagenden Experimenten deutlich entspannter entgegensehen.
Sofern das Betriebssystem bereits entsprechende Mechanismen mitbringt, sollte für die Virtualisierung auf Bordmittel zurückgegriffen werden - unter Linux zum Beispiel auf GNOME Boxes oder den Virtual Machine Manager, unter Windows 10 Professional oder Enterprise stattdessen auf Hyper-V. Ansonsten kann auch eine alternative Lösung wie VMware Workstation Player oder Oracle VirtualBox installiert werden.
Auf Details der Virtualisierungsumgebung wird hier nicht weiter eingegangen, diese können bei Bedarf in der jeweiligen Dokumentation nachgelesen werden.
Konfiguration
Da der virtuelle Server nur sehr wenige Benutzer gleichzeitig bedienen soll, reicht eine spärliche Ausstattung: 2048MB RAM sind genug und sofern keine Experimente mit großen Dateien durchgeführt werden sollen, ist eine Festplattengröße von 16GB auch vollkommen ausreichend. Wer die Möglichkeit hat, sollte beim Anlegen die Option “Thin Provisioning” wählen, dann wird der Platz für die virtuelle Festplatte erst bei Bedarf belegt. Dies spart Platz auf dem Hostsystem und beschleunigt gelegentliche Sicherungen.
Grundinstallation Debian
Als Installationsmedium wird das “Netinst für 64-Bit-PC (AMD64)"-Image von der offiziellen Debian-Seite heruntergeladen. Dieses ist mit 377MB relativ klein und lädt nur die tatsächlich benötigten Pakete nach. Dieses Image wird in das virtuelle CD/DVD-Laufwerk des virtuellen Servers gelegt und die virtuelle Maschine anschließend gestartet.
Um alle Optionen konfigurieren zu können, wird die Installation im Experten-Modus durchgeführt und ist hier in Stichpunkten beschrieben. Selbstverständlich muß je nach Gegebenheiten der Virtualisierungslösung sowie des lokalen Netzwerks die ein oder andere Option angepasst werden.
Debian GNU/Linux installer menu
-
Advanced options
-
Expert install
Choose language
-
German
-
Deutschland
-
Deutschland - de_DE.UTF-8
-
keine zusätzlichen Gebietsschemata
Tastatur konfigurieren
- Deutsch
Installationsmedium erkennen und einbinden
- Weiter
Installer-Komponenten von Installationsmedium laden
- keine zusätzlichen Komponenten auswählen
Netzwerk-Hardware erkennen
Netzwerk einrichten
-
Netzwerk automatisch einrichten
-
Wartezeit 3 Sekunden
-
Rechnername “sandbox” (oder ein beliebiger anderer Rechnername)
-
Domain leer lassen
Benutzer und Passwörter einrichten
-
Shadow-Passwörter benutzen
-
Root das Anmelden nicht erlauben
-
Vollständiger Name des neuen Benutzers “sandbox” (oder ein beliebiger anderer Benutzername)
-
Benutzername für Ihr Konto “sandbox”
-
Wählen Sie ein Passwort für den neuen Benutzer “geheim”
-
Bitte geben Sie das Passwort zur Bestätigung nochmals ein “geheim”
Uhr einstellen
-
Uhr mittels NTP einstellen
-
Zu verwendender NTP-Server “0.debian.pool.ntp.org”
-
Zeitzone “Europe/Berlin”
Festplatten erkennen
Fetsplatten partitionieren
-
Geführte Partitionierung
-
Geführt - vollständige Festplatte verwenden
-
Festplatte auswählen
-
“Alle Dateien auf eine Partition, für Anfänger empfohlen”
-
“Partitionierung beenden und Änderungen übernehmen”
-
Änderungen auf die Festplatten schreiben
Basissystem installieren
-
Zu installierender Kernel “linux-image-amd64”
-
nur für das System benötigte Treiber einbinden
Paketmanager konfigurieren
-
kein weiteres Installationsmedium einlesen
-
einen Netzwerkspiegel verwenden
-
Protokoll für Datei-Downloads “http”
-
“Deutschland”
-
“deb.debian.org”
-
keinen Proxy
-
“Non-free”-Software verwenden
-
Paketdepots für Quellpakete in APT aktivieren
-
Zu verwendete Dienste: alle anwählen
Software auswählen und installieren
-
Sicherheits-Updates automatisch installieren
-
nicht an der Paketverwendungserfassung teilnehmen
-
nur “SSH server” und “Standard-Systemwerkzeuge” installieren
Den GRUB-Bootloader installieren
-
GRUB-Bootloader auf dem primären Laufwerk installieren
-
Laufwerk “/dev/sda”
-
keine Installation in den EFI-Wechseldatenträgerpfad erzwingen
Installaion abschließen
-
Die Systemzeit ist auf UTC gesetzt
-
Neustart
Das Grundsystem ist fertig installiert und der Anmeldeprompt erscheint:
Installation zusätzlicher Pakete
Nach Anmeldung entweder direkt an der Konsole oder über SSH werden die für den Serverbetrieb notwendigen Pakete installiert:
$ sudo apt install apache2 mariadb-server php php-curl php-gd
Anschließend sollte im Browser durch Eingabe von http://sandbox oder der IP-Adresse die “Apache2 Debian Default Page” zu sehen sein.
Adminer
Zur einfacheren Datenbankverwaltung wird zurück an die Konsole gewechselt und Adminer installiert:
$ sudo apt install adminer
$ sudo a2enconf adminer
$ sudo systemctl reload apache2
Anschließend sollte im Browser durch Eingabe von http://sandbox/adminer oder der IP mit angehängtem “/adminer” die “Adminer”-Oberfläche zu sehen sein.
Dateifreigabe einrichten
Zum einfacheren Bearbeiten der Dateien auf dem Webserver wird eine Freigabe eingerichtet, welche das Wurzelverzeichnis des Webservers für jedermann bearbeitbar zur Verfügung stellt. Zurück zur Konsole und folgende Schritte durchführen:
$ sudo apt install samba
$ cd /etc/samba/
$ sudo cp smb.conf smb.conf.dist
Den gesamten Inhalt der Datei löschen und mit folgendem ersetzen:
[global]
workgroup = WORKGROUP
log file = /var/log/samba/log.%m
max log size = 1000
server role = standalone server
security = user
map to guest = Bad Password
[htdocs]
path = /var/www
writeable = yes
browsable = yes
guest ok = yes
force directory mode = 775
force group = www-data
force create mode = 664
force user = www-data
Anschließend müssen noch die Berechtigungen im Dateisystem angepasst werden, dann wird der Freigabedienst neu gestartet.
$ cd /var/
$ sudo chown -R www-data:www-data www
$ sudo systemctl restart smbd.service
Nach dem Neustart steht eine Freigabe mit dem Namen “htdocs” zur Verfügung, welche über “smb://sandbox/htdocs/” (Linux) oder “\sandbox\htdocs” (Windows) angesprochen werden kann.
Anpassung Webserver
Als letzter Schritt folgt noch eine Anpassung des Webservers. Zuerst werden einige zusätzliche Module aktiviert:
$ sudo a2enmod cgi rewrite
und anschließend der Inhalt der Datei “000-default.conf” mit folgendem Inhalt ersetzt
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel error
# CustomLog ${APACHE_LOG_DIR}/access.log combined
CustomLog /dev/null combined
</VirtualHost>
Damit die Änderungen übernommen werden, muß der Webserver neu gestartet werden.
$ sudo systemctl restart apache2.service
Nun wird bei einem Aufruf des Servers im Browser nicht mehr die “Apache2 Debian Default Page” angezeigt, sondern die Auflistung des Verzeichnisses “/”, in dem ein Ordner “html” liegt - die gleiche Sicht, welche man beim Aufrufen der Freigabe im Dateimanager erhält.