Ubuntu Server für Webanwendungen – Teil 4 – php

Damit die Webanwendung ein wenig Logik verliehen bekommt, benötigt es noch eine Programmiersprache. Sehr einsteigerfreundlich und auch beliebt ist php. PHP ist zum Glück mit ein paar Befehlszeilen installiert ;-).

sudo apt install php libapache2-mod-php php-mysql

Nach der Installation kann php recht einfach getestet werden. Damit es ein wenig spannender wird, erstellen wir hier direkt den ersten kurzen Code. Zuerst muss in das richtige Verzeichnis gewechselt werden. Dafür im Terminal den cd (change directory) Befehl verwenden.

cd /var/www/html

Im html-Ordner angekommen, benötigen wir zuerst ein leeres Textdokument in dem wir unser Programm schreiben können. Dazu verwende ich Nano, was ist ein einfacher und viel verwendeter Texteditor ist.

sudo nano index.php

In dem geöffneten Editor jetzt folgenden Code einfügen:

<?php phpinfo(); ?>

Kurz erklärt was hier gemacht wird. HTML wird grundsätzlich in Tags < Befehl > geschrieben. In diesem Tag sagen wir aber, dass hier ein teil mit php interpretiert werden soll. <?php Befehl ?>. der Teil mit phpinfo(); ist ein sogenannter Funktionsaufruf, diese Funktion ist ebenfalls in php geschrieben und gibt uns etwas zurück. In diesem Fall werden alle relevanten Informationen von der installierten php-Version zurückgegeben und das bereits schön formatiert in html. Mit „strg+x“ und dann „y“ kann die Datei gespeichert werden.

Wieder zurück im Browser wird die IP-Adresse des Servers eingegeben, gefolgt von /index.php

<ip-adresse>/index.php

In der jetzigen Seite stehen die Informationen über die aktuell installierte php-Version.

Gratulation. Die Entwicklungsumgebung ist hiermit fertig 🙂

Ubuntu Server für Webanwendungen – Teil 3 – mysql

Apache allein ist in der heutigen Webwelt ein wenig schlank, daher installieren wir hier noch php als Programmiersprache und mysql für die Datenbank.

mySQL

Im ersten Schritt wird der mySQL-Server installiert.

sudo apt-get install mysql-server

Secure Installation

Sicherheitstechnisch empfiehlt es sich dringend danach die secure-Installation auszuführen. Dadurch werden Testdatenbanken gelöscht, Zugriffsrechte für lokale Benutzer eingeschränkt und es kann auch die Kennwortrichtlinie definiert werden.

sudo mysql_secure_installation

Darauf folgen mehrere Fragen:

Passwortsicherheit:

Hier kann gerne mit „Enter“ weitergesprungen werden. Es empfiehlt sich aber auf jeden Fall ein sicheres Kennwort zu verwenden!

root Passwort:

Achtung, das Passwort hier hat nichts mit dem root-User von Linux zu tun, es ist das Kennwort für den Datenbank Benutzer.

Anonyme User:

Diese werden in den seltensten Fällen benötigt und können besten Gewissens gelöscht werden.

root User Rechte:

Der root User sollte nur vom local host aus zugriff haben. Dann kann auch niemand, der das Kennwort herausgefunden hat, über die Ferne schaden an der Datenbank anrichten.

Testdatenbank:

Die Testdatenbank ist gut für Übungszwecke, hat aber auf einer Testumgebung nichts verloren und noch weniger in der Produktivumgebung.

Rechte anwenden:

Im letzten Schritt wird abgefragt, ob die Tabelle mit den Privilegien, also mit den Rechten neu geladen werden soll. Dies schadet auf jeden Fall nicht und vermeidet seltsame Probleme mit Benutzerrechten.

Success. Geschafft. Jetzt schnell noch testen. Mit dem Befehl:

sudo mysql

sollte auf dem Terminal das mysql Interface auftauchen.

Mit „exit“ kann das Interface wieder verlassen werden. Die Datenbank und Benutzer werden in einem weiteren Beitrag angelegt.

Weiter gehts mit php 🙂

Ubuntu Server für Webanwendungen – Teil 4 – php

Ubuntu Server für Webanwendungen – Teil 2 Tools und Apache

Ubuntu Server für Webanwendungen – Teil 2 – Tools und Apache

Updates installieren

Gleich der erste Schritt nach der Installation sollten Updates sein. Dazu braucht es zwei Befehle, der Erste holt die aktuelle Liste der Links für die Updatequellen und der Zweite installiert die Updates.

sudo apt-get update
sudo apt-get upgrade

VM-Ware Tools

Falls VM-Ware als Virtualisierungssoftware verwendet wurde, braucht sie die VM-Ware-tools um ordnungsgemäß zu funktionieren.

sudo apt-get install open-vmtools

Nettools

Ebenfalls optional, aber nützlich, sind die Nettools. Diese werden zum Beispiel für den Befehl ifconfig benötigt, der die vergebenen IP-Adressen anzeigt.

sudo apt-get install net-tools

HTTP Server – Apache

Für diese Server-Instanz verwende ich den sehr beliebten Apache Server.

sudo apt-get install apache2

Firewall

Auch wenn der Server nicht in einer Produktivumgebung läuft, ist er trotzdem im Internet und daher ist die Verwendung von uncomplicated firewall (ufw) oder IP-Tables dringend geraten.

ufw bietet einige komfortable Befehle an, womit die Arbeit doch wesentlich schneller als bei IP-Tables geht, daher verzichte ich auf IP-Tables in diesem Tutorial.

Der erste Befehl listet die Applikationen auf, welche installiert sind und für die Firewall relevant sind.

sudo ufw app list

Bei mir werden vier Anwendung aufgelistet:

  • Apache (für http Verbindungen)
  • Apache Full (für http und https Verbindungen)
  • Apache Secure (für https Verbindungen)
  • OpenSSH

Da der Server im Moment kein signiertes Zertifikat hat, reicht Apache vollkommen aus.

sudo ufw allow in Apache

Sollte der SSH-Server mitinstalliert worden sein, dann wird ebenfalls OpenSSH benötigt.

sudo ufw allow in OpenSSH

Wichtig! Die Firewall muss das erste Mal manuell gestartet werden.

sudo ufw enable

Danach kann auch kontrolliert werden, welche Anwendungen erlaubt sind. Es kann daher keine andere Anwendung – die nicht die selben Ports verwendet – darauf zugreifen. Das ist eine sogenannte white List.

sudo ufw status

Erster Test

Jetzt kann der erste Test gemacht werden. Dazu zuerst die IP-Adresse des Servers auslesen.

ifconfig

Dann einen Browser öffnen und „http://www.<ipadresse>“ eingeben.

Hier das komplette Video zur Installation

Zurück zu Teil 1 – Serverinstallation

Weiter zu Teil 3 – mysql und php

Ubuntu Server für Webanwendungen – Teil 1 – Serverinstallation

Im heutigen Beitrag erstelle ich einen Ubuntu-Server für Webanwendungen. Diese Anleitung ist in erster Linie für eine Entwicklungsumgebung gedacht, falls ihr einen Ubuntu-Desktop installieren wollt, dann seid ihr hier richtig. Dazu werde ich einen sogenannten LAMP-Stack installieren, wobei LAMP für Linux, Apache, mySQL und php steht. Im ersten Schritt installiere ich daher einen Ubuntu-Server als virtuelle Maschine unter VM-Ware Fusion. Es spielt für dieses Tutorial übrigens keine Rolle, ob der Server virtualisiert wird oder nicht und auf welcher Virtualisierungssoftware er läuft. In weitere Folge werden die benötigten Tools, Apache, mySQL und php installiert. Viel Spaß beim Lesen 😉

Ubuntu Server Installation

Unter www.ubuntu.com kann die aktuelle ISO-Datei zur Installation heruntergeladen werden. Falls ihr den Server physisch installieren wollt, muss die ISO zuerst auf einen DVD gebrannt oder einen Boot-Stick geladen werden.

Bei der verwendeten Virtualisierungssoftware wird die ISO-Datei als DVD in das Laufwerk geladen und es kann schon losgehen mit der Installation ;-). Da ich kein Fan von Magic bin, verwende ich nie Voreinstellungen oder quick Installer. Folgende Punkte sind bei der Installation wichtig:

  • Mindestens 512 MB RAM, 1 GHz 1,75 GB Festplattenspeicher
  • Idealerweise 2 GB RAM, 2 CPUs, 50 GB Festplattenspeicher (kann natürlich je nach Anwendungsfall variieren)
  • Vernünftiger Benutzername
  • Starkes Passwort (vor allem bei Produktivumgebungen)
  • Richtiges Tastaturlayout (German)
  • Sprache ist immer besser in Englisch, da schon alleine die Fehlersuche leichter fällt, wenn diese mit einer englischsprachigen Meldung passiert
  • OpenSSH macht die Arbeit im späteren Verlauf um einiges leichter

Hier geht’s weiter zu Teil 2 Tools und Apache