3. January 2019

Ein leichtgewichtiges Entwicklungssystem (Debian + LAMP)

Guten Morgen,

um meine Webentwicklung etwas reibungsloser zu gestalten, möchte ich zukünftig virtuelle Maschinen für meine verschiedenen Projekte verwenden. Jede VM wird für ein bestimmtes Projekt reserviert sein und die komplette Entwicklungsumgebung einschließlich LAMP-Stack beinhalten. Allerdings möchte ich diese Maschinen trotzdem möglichst frei von unnötigem "Zeug" halten. Daher möchte ich ein minimales Debian-System mit UI und einem LAMP-Stack aufsetzen, was ich dann entsprechend meiner jeweiligen Bedürfnisse anpassen kann.

Bitte vergessen Sie nicht, dass diese Installation deutliche Sicherheitsmängel aufweist und nicht für Produktivsysteme geeignet ist!

Debian Installer: all packages unselected

Installation des Betriebssystems

Die Basis des Systems wird eine Minimalinstallation von Debian sein. Wählen Sie während der Installation alle Softwarepakete ab (insbesondere die Desktopumgebung). Möglicherweise wollen sie die Standard-Systemwerkzeuge behalten, ich persönlich installiere sie erst, wenn ich sie tatsächlich brauche (was normalerweise nie ist).

Wenn Sie sich in das System eingeloggt haben, installieren Sie die üblichen Updates:

sudo apt update
sudo apt upgrade

Als nächstes installieren wir den Display-Server und die LXDE-Kernkomponenten:

sudo apt install xorg lxde-core

Ihnen steht nun eine komplette Desktopumgebung zur Verfügung, die sie mit sudo startx starten können. Nach dem nächsten Neustart wird zudem direkt in den grafischen Login-Screen gebootet. 

Der LAMP-Stack

Momentan finden sich in den Debian-Paketen keine neueren PHP-Versionen als PHP 7.0. Da ich aber einige neuere Funktionen verwenden möchte, werden wir die notwendigen Paketquellen hinzufügen und PHP 7.2 installieren. (Wenn Sie PHP 7.3 verwenden möchten, können Sie in den folgenden Befehlen einfach php7.2 durch php7.3 ersetzen.):

sudo apt install ca-certificates apt-transport-https
wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -
echo "deb https://packages.sury.org/php/ stretch main" | sudo tee /etc/apt/sources.list.d/php.list

sudo apt update
sudo apt install php7.2 php7.2-mysql

Es macht wahrscheinlich auch Sinn, sudo apt upgrade auszuführen, da die Sury-Repos meistens einige neuere Paketversionen bereitstellen.

Jetzt können wir Apache und MariaDB installieren:

sudo apt install apache2 libapache2-mod-php7.2 mariadb-server

Ich verwende meistens mod_rewrite in meinen Projekten. Deshalb möchte ich die Rewriting-Funktion konfigurieren. Zunächst aktivieren wir mod_rewrite:

sudo a2enmod rewrite

Als nächstes müssen wir Rewriting für das Web-Verzeichnis (üblicherweise /var/www) erlauben. Die notwendige Einstellung finden Sie in der Apache-Konfiguration /etc/apache2/apache2.conf:

sudo nano /etc/apache2/apache2.conf

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride NoneAll
    Require all granted
</Directory>

Starten Sie Apache neu, um die Konfiguration zu übernehmen.

sudo service apache2 restart

Abschließend gönnen wir uns noch phpMyAdmin, um die Datenbankadministration etwas angenehmer zu machen:

sudo apt install phpmyadmin

Für meine lokalen Entwicklungsmaschinen verwende ich den MariaDB-Root-Benutzer ohne Passwort (was logischerweise ein absolutes No-Go für jedes Produktivsystem ist). Allerdings erlauben aktuelle MySQL- und MariaDB-Versionen keine Verbindung mittels Root-Account ohne mindestens sudo zu verwenden. Wir müssen das Login-Plugin also auf die "normale" Passwort-basierte Methode zurücksetzen:

sudo mysql -u root
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE User='root'; FLUSH PRIVILEGES;

phpMyAdmin mag auch keine Logins ohne Passwort, was wir in der Konfiguration ändern:

sudo nano /etc/phpmyadmin/config.inc.php

Die folgende Zeile muss einkommentiert werden:

// $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;

Sie haben nun über ein sehr leichtgewichtiges Entwicklungssystem mit einem LAMP-Stack und phpMyAdmin zum herumspielen. Viel Spaß damit!