Warning: file_get_contents(https://gist.github.com/Privux/2d3e7e170ff6c18b07b9efd18931a115.js): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /www/htdocs/w00a54bf/privux_v2/www/events/GistHandler.php on line 9

Warning: file_get_contents(https://gist.github.com/Privux/7be9e9a4125b0fa36b8b8904d6533787.js): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /www/htdocs/w00a54bf/privux_v2/www/events/GistHandler.php on line 9

Warning: file_get_contents(https://gist.github.com/Privux/7fe0f7f40a104e1507599280db8d4e47.js): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /www/htdocs/w00a54bf/privux_v2/www/events/GistHandler.php on line 9

Warning: file_get_contents(https://gist.github.com/Privux/585ffdc5be746d9b49bb9232ccef9fb5.js): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /www/htdocs/w00a54bf/privux_v2/www/events/GistHandler.php on line 9

Warning: file_get_contents(https://gist.github.com/Privux/9c170e0d04740811e2be3e8b0a405997.js): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /www/htdocs/w00a54bf/privux_v2/www/events/GistHandler.php on line 9
Ubuntu 16.04 LAMP Server Schritt für Schritt erklärt - Privux

09. Juli 2016

Ubuntu 16.04 LAMP Server Schritt für Schritt erklärt

Wenn du in der Web Entwicklung tätig bist, bist du bestimmt schon einmal über den Begriff LAMP Server gestolpert. Dabei handelt es sich nicht um ein Server um Lampen zu steuern, sondern um ein simplen Web Server auf Linux Basis.

LAMP ist die Abkürzung für Linux, Apache, MySQL, PHP.

Genau so ein Server möchte ich jetzt zusammen mit dir aufsetzen.

Ich gebe mich jedoch nicht mit Standards zufrieden und installiere gleichzeitig noch ein FTP und ein Email Server. Somit kann ich meine Daten hochladen und es können Emails versendet werden!

Hinweis: Dies ist nur eine grobe Anleitung wie man ein funktionierenden LAMP Server aufsetzt und geht nicht tief ins Detail, da sonst der Umfang des Beitrags gesprengt werden würde. Im Anschluss verlinke ich jedoch die offiziellen Dokumenationen der eingesetzten Tools für tiefere Einblicke.

L wie Linux

Für das Tutorial benötigst du ein Linux System. Vorzugsweise ein Ubuntu 16.04 Xenial Xerus. Jedoch sollte es auch mit anderen aktuellen Linux Systemen funktionieren.

Ich empfehle jedoch ein neues Xerus System zu verwenden um ein komplett frisches System zu haben.

A wie Apache

Am einfachsten ist Apache mit dem Paketmanager zu installieren

# apt-get install apache2

Nachdem die Installation durchgelaufen ist, kannst du in einem beliebigen Browser deiner Wahl die IP Adresse des LAMP Servers eingeben.

Die Ausgabe sollte dann ungefähr so aussehen:

M wie MySQL

Anstelle von MySQL, installieren wir MariaDB.

MariaDB ist eine Weiterentwicklung von MySQL und wird durch den selben Entwickler betreut.

Neben einigen coolen neuen Features, bringt MariaDB auch Performance Verbesserungen mit.

Installiert wird Maria mit dem folgenden Befehl:

# apt-get install mariadb-server mariadb-client

Anschließend noch ein Passwort vergeben:

# mysql_secure_installation

Folgende Fragen werden dann gestellt (in geschweiften Klammern jeweils die Anweisung was zu tun ist):

Enter current passwort for root (enter for none): {ENTER}
Set root passwort? [Y/n] {ENTER}
New password: {Überlege dir was schönes}
Re-enter new password: {Wiederhole das obere Password}
Remove anonymous users? [Y/n] {ENTER}
Dissallow root login remotely? [Y/n] {ENTER}
Remove test database and access to it? [Y/n] {ENTER}
Reload privilege tables now? [Y/n] {ENTER}

P wie PHP

PHP mitsamt allen relevanten Erweiterungen wird mit dem folgenden Befehl installiert:

# apt-get install php libapache2-mod-php php-mysql php-curl php-gd php-intl php-pear php-imagick php-imap php-mcrypt php-memcache php-pspell php-recode php-sqlite3 php-tidy php-xmlrpc php-xsl php-mbstring php-gettext

Damit alle Änderungen wirksam werden, muss Apache einmal neu gestartet werden:

# /etc/init.d/apache restart

So testest du die Konfiguration

Nachdem du alle relevanten Pakete auf dem LAMP Server installiert hast, erstelle zunächst folgende Datei:

# nano /var/www/html/phpinfo.php

und füge folgenden Inhalt hinzu:

<?php phpinfo(); ?>

Wenn du die Datei im Browser aufrufst (also z.B. http://196.168.0.1/phpinfo.php), wird dir die aktuelle Konfiguration deines PHP Servers ausgegeben.

Ich finde es eine nützliche Anlaufstelle für diverse Informationen 😃

Mini Script für die Datenbankverbindung

Als nächstes kannst du ein kleines Script schreiben um zu testen, ob die Datenbankverbindung erfolgreich hergestellt werden kann.

Dazu schaltest du dich auf die Datenbank wie folgt auf:

# mysql -u root

Nach der Eingabe vom Passwort, kannst du direkt SQL Befehle auf die Datenbank abfeuern.

Erstelle zunächst eine neue Datenbank

]> CREATE DATABASE lamp_test;

Aus Sicherheitsgründen deaktiviert MariaDB den login für den root.

Also muss zunächst ein root Ersatz her.

]> CREATE USER 'sergej'@'localhost' IDENTIFIED BY 'EinSuperSicheresPasswort';

Dann verschaffe ich mir alle Rechte mittels:

]> GRANT ALL ON *.* TO 'sergej'@'localhost';

Zum Schluss nur noch mittels 'exit' wieder ausloggen.

Erstelle wieder eine neue Datei:

# nano /var/www/html/db_connect.php

Und füge folgenden Code hinzu (vergiss bitte nicht deine korrekten Daten zu hinterlegen, sonst geht es schief)

Beim Aufruf der Datei müsste der Name der selektierte Datenbank (also 'xenial_lamp') angezeigt werden.

Wenn alles einwandfrei funktioniert hat, kannst du alles wieder aufräumen 😃

# rm /var/www/html/db_connect.php
# rm /var/www/html/phpinfo.php
# mysql -u root
]> DROP DATABASE lamp_test

So installierst du phpMyAdmin

Damit man nicht alle MySQL Befehle auf der Konsole ausführen muss, kann man das auch bequem mittels einer Web Oberfläche erledigen.

# apt-get install phpmyadmin
Web server to reconfigure automatically: {apache2}
Configure database for phpmyadmin with dbconfig-common?: {Yes}
MySQL application password for phpmyadmin: {ENTER}

Jetzt kannst du phpmyadmin unter deiner IP verwenden.

In meinem Fall ist es: http://172.26.42.80/phpmyadmin

So installierst du ein FTP Server

Damit du deine Daten auf den LAMP Server bekommst, installieren wir noch ein FTP Server.

Dazu muss der folgende Befehl ausgeführt werden:

# apt-get install proftpd-basic

In der Konfiguration kann man den Pfad ändern, auf den sich der/die Benutzer später einloggen können. Die Konfigurationsdatei wird aber vorher zunächst gesichert (falls etwas schief gehen sollte)

# cp /etc/prodftp/proftod.conf /etc/prodftp/proftod.conf-orig
# nano /etc/prodftp/proftod.conf

Relativ weit oben befindet sich eine auskommentierte Zeile, die wie folgt abgeändert wird:

DefaultRoow /var/www/html

Anschließend kannst du dich mit deinem Linux Benutzernamen am FTP Server anmelden.

Damit du auch Schreibrechte für das Verzeichnis hast, holst du dir die benötigten Rechte mittels:

# chown -R sergej:www-data /var/www

So installierst du ein Mail Server

Manche Scripte bzw. Applikationen, die man auf dem LAMP Server installiert sind in der Lage Emails zu versenden.

Für den Versand installieren wir den Postfix Server und für den Emfang wird Dovecot verwendet.

# apt-get install postfix dovecot-core dovecot-pop3d dovecot-imapd dovecot-sieve

Während der Installation wird nach der Konfiguration gefragt. Hier wählen wir "Internet Site" aus.

Anschließend werden zwei Benutzer zum testen erstellt:

# useradd -d /home/alice alice
# useradd -d /home/bob bob

Den eben erstellten Benutzern werden noch jeweils Passwörter vergeben:

# passwd alice
# passwd bob

Und sowohl die Home als auch die Mail Verzeichnisse inkl. den Rechten vergeben:

# mkdir /home/alice
# chown -R alice:users /home/alice
# mkdir /home/bob
# chown -R bob:users /home/bob

Dovecot als Empfänger

Wir konfigurieren den Dienst so, dass die Emails im home Verzeichnis ankommen. Dazu müssen zunächst für jeden Benutzer ein dazugehöriges Verzeichnis angelegt werden:

# mkdir /home/alice/Maildir
# mkdir /home/bob/Maildir

Damit die Verzeichnisse auch verwendet werden, musst du diese auch dovecot noch mitteilen:

# nano /etc/dovecot/conf.d/10-mail.conf

Hier wird folgende Zeile einkommentiert:

Nachdem das auch erledigt wurde, kümmern wir uns noch ein wenig um die Sicherheit, indem wir SSL in folgender Datei aktivieren:

# nano /etc/dovecot/conf.d/10-ssl.conf

hier wird die SSL Einstellung wie folgt abgeändert:

Damit sagen wir explizit das nur sichere Anmeldungen möglich sein sollen.

Zu guter Letzt wird noch eine weitere Datei erstellt und mit dem folgenden Inhalt gespeist:

# nano /etc/dovecot/conf.d/01-mail-stack-delivery.conf

Postfix für den Versand

Zum versenden der Emails Bedarf es eigentlich keiner großen Änderung. Das einzige, was noch gemacht werden muss, ist die Konfiguration zu ergänzen:

SSL Einstellungen für Postfix werden in der postfix config geändert

# cp /etc/postfix/main.cf /etc/postfix/main.cf-orig
# nano /etc/postfix/main.cf

An das Ende der Datei kommt folgender Code hinzu:

Und eine Mapping Tabelle für Virtuelle Adressaten angelegen und aktivieren:

# touch /etc/postfix/virtual
# postmap /etc/postfix/virtual

Jetzt sind wir fertig und können die beiden Server einmal neu starten:

# service postfix restart
# service dovecot restart

Jetzt kannst du dich bereits mit einem beliebigen Client einloggen.

Meine Einstellungen bei Thunderbird sehen dann wie folgt aus:

Nachdem du für alice und bob jeweils ein Konto hinterlegt hast, sind die beiden Benutzer in der Lage sich Emails hin und her zu senden und du kannst diese Konten für weitere Zwecke verwenden.

Weiterführende Links

Abschließend noch ein paar Links zu den offiziellen Dokumentationen für die verwendeten Dienste.

Fazit – LAMP Server

Die verwendete Anleitung ist natürlich nicht der einzig wahre Weg um das Ziel zu erreichen.

Wie ich finde, ist es jedoch ein relativ einfacher Weg und du benötigst keine weiteren Extras.

Wenn du nur wenige Benutzer hast oder ein System zum entwickeln von Applikationen benötigst, ist es ein relativ einfaches vorgehen um eine perfekte Entwicklungsumgebung aufzusetzen.

Wenn dir das gefallen hat, wirst du diese Artikel lieben!

Die neuesten Artikel, die du gelesen haben musst!

teilen

Noch mehr privux?

Verpasse keine spannende Beiträge & Tutorials mehr!

Jetzt kostenlosen Newsletter abonieren!

Jetzt newsletter abonieren