Wer das hier lesen kann, ist bereits Zeuge meiner erfolgreichen Einrichtung meines neuen vServers.

Ich werde hier ein paar Dinge ansprechen wie die Einrichtung des Servers so vonstatten ging, was ich beachten musste und so weiter.

Die normale Umgebung unter der man seinen vServer konfiguriert sind meistens zwei Varianten: einmal eine webgestützte Serverkonfigurationsseite, die grundlegende Funktionen bereitstellt: Starten, Neustarten, Stoppen des vServers. Neuinstallation des Grundsystems und ähnliches.
Der eigentliche Server wird dann über eine Secure Shell (SSH) eingerichtet. Wie der Name schon sagt muss man mit reinen Textmitteln zurecht kommen. Das macht aber nichts, man erreicht damit alles was man haben möchte, manchmal vielleicht etwas unkomfortabler als mit einer grafischen Benutzeroberfläche aber zumindest kann man sich einbilden, dass es exakter ist, aber vielleicht auch gefährlicher.

Was ist die Ausgangssituation?
Nach dem Einloggen als Root finde ich ein minimales Ubuntu 9.04 System vor. Sogar so minimal, dass nicht einmal der kleine Editor nano installiert ist. Wie ich später feststellen musste ist auch wget nicht installiert. Ebenso sind keine Sprachdateien vorhanden. Also hat man alle Möglichkeiten offen und lernt zudem was man so alles braucht.

Vorbereitungen

Das erste womit man sinnvoller Weise wohl anfangen sollte ich das Passwort zu ändern, nur für den Fall.

1
passwd root

Und schon erscheint die Abfrage nach einem neuen Passwort.

So dann die paar Dinge ohne die ich in einer Konsole nicht klarkomme:

1
apt-get install wget nano language-pack-de

Das Sprachpaket vor allen Dingen deswegen, weil man sonst doch sehr viele Warnungen und Fehlermeldungen kassiert weil irgendwelche locales nicht vorhanden sind (was dann auch gleich immer den halben Bildschirm zuschreibt).

Zuerst sollte man noch sicherstellen, dass die Paketquellen aktuell sind:

1
nano /etc/apt/source.list

Dort sollte man vielleicht die ganzen Einträge hinzufügen die sich in der ubuntuwiki finden. Standardmäßig waren bei mir keine Security Quellen aktiviert.

1
2
3
4
5
6
7
8
9
10
11
12
<strong>#sources.list</strong>
deb http://de.archive.ubuntu.com/ubuntu jaunty main restricted universe multiverse
#deb-src http://de.archive.ubuntu.com/ubuntu jaunty main restricted universe multiverse

deb http://de.archive.ubuntu.com/ubuntu jaunty-updates main restricted universe multiverse
#deb-src http://de.archive.ubuntu.com/ubuntu jaunty-updates main restricted universe multiverse

deb http://de.archive.ubuntu.com/ubuntu jaunty-security main restricted universe multiverse
#deb-src http://de.archive.ubuntu.com/ubuntu jaunty-security main restricted universe multiverse

#deb http://de.archive.ubuntu.com/ubuntu jaunty-backports main restricted universe multiverse
#deb-src http://de.archive.ubuntu.com/ubuntu jaunty-backports main restricted universe multiverse

Dann aktualisiert man die Paketquellen:

1
apt-get update

Dann vielleicht ein upgrade der vorhandenen Pakete durchführen:

1
apt-get upgrade

Webserver Installation

Einen Webserver unter Ubuntu zu installieren ist fürchterlich einfach. Es gibt dazu das nette Werkzeug namens tasksel. Dieses stellt in einem ncurses-Menü verschiedene Aufgaben dar, die der Server (oder auch der Desktop-Rechner) lösen soll. Darunter sind viele Desktop Anwendungen, die natürlich auf einem Server nichts verloren haben. Aber es stehen auch Serveranwendungen zur Verfügung.
Hinter dem LAMP-Server verbirgt sich keine Entwicklung von Osram sonder ein Linux-Apache-MySQL-PHP-Server. Das sind die Komponenten die man für fast jede moderne Webanwendung benötigt.

Die Installation fragt nach ein paar Daten, die keinen überfordern dürfen der einen vServer betreiben möchte.

Eigentlich hat man damit schon ein funktionierenden HTTP-Server. So einfach kann das sein. Aber ein paar Dinge sollte man wohl schon noch beachten. Zum Beispiel wird in der Apache-Standardkonfiguration die Verzeichnislisten eingeschaltet. Damit ist es möglich in Verzeichnissen ohne eine entsprechende Indexdatei (index.htm .html oder .php) auf alle Dateien zuzugreifen. Dies ist in den meisten Fällen unerwünscht.

Ändern der Standardkonfiguration

Verwendet man die Standardkonfiguration fängt man am besten an in der /etc/apache2/apache2.conf zu wühlen. Vielleicht findet man hier schon Einstellungen die man verändern möchte. Für meinen Teil waren die Einstellungen jedoch akzeptabel.
Eine weitere wichtige Datei kann dann auch die /etc/apache2/conf.d/security sein, aber auch dort sind die Standardeinstellungen sinnvoll.

Mehr zu tun gibt es dann schon eher bei der Konfiguration der eigentlichen Webseite. Diese findet man unter /etc/apache2/sites-enabled. Dort liegt dann eine 000-default. Das ist die Standardseite. Da ich nur eine Webseite verwalten möchte mache ich dort einfach die Anpassungen.

1
nano /etc/apache2/sites-enabled/000-default

(habe ich schon erwähnt, dass die automatische Vervollständigung per Tab nicht im Browser funktioniert? 🙁 )

Da fängt es schon gleich in der zweiten Zeile an in der man den ServerAdmin einstellt, dort sollte man vielleicht eine Adresse angeben unter der man auch erreichbar ist.
Weiter gehts mit DocumentRoot steht standardmäßig auf /var/www, was auch in Ordnung ist.
Weiter gehts dann mit den Einstellungen für die Einzelnen Verzeichnisse mit der Struktur:

1
2
3
&lt;directory <strong>Verzeichnis</strong>>
...
&lt;/directory>

Für das Root Verzeichnis (/):

1
2
3
4
        &lt;Directory />
                Options FollowSymLinks
                AllowOverride None
        &lt;/Directory>

Dann für das eigentliche Dokumentenverzeichnis:

1
2
3
4
5
6
        &lt;Directory /var/www/>
                Options <strong>-</strong>Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                Allow from all
        &lt;/Directory>

Das wichtige hierbei ist das Minuszeichen vor Indexes, welches verhindert, dass indexlose Verzeichnisse in einer Art Dateibrowseransicht angezeigt werden.
Die Zeilen für cgi-Skripte habe ich auskommentiert, da ich keine cgi-Skripte auf meinem Server verwende.

Damit hat man den Apache2Server schon eingerichtet.

Um die Einstellungen zu übernehmen ist ein Neustart des ApacheDaemons notwendig:

1
service apache2 restart

MySQL Verwaltung mit phpMyAdmin

phpMyAdmin stellt eine nette Weboberfläche zur Verwaltung von MySQL-Datenbanken zur Verfügung. Die Installation unter Ubuntu ist denkbar einfach.

1
apt-get install phpmyadmin libapache2-mod-auth-mysql

Während der Installation wird man gefragt ob eine Standardkonfiguration für Apache angelegt werden soll. Dies kann man natürlich tun, so dass man noch weniger Arbeit hat.

Wenige Sekunden später hat man phpMyAdmin installiert.

Hier empfinde ich sollte man jedoch an die Konfiguration noch selbst Hand anlegen. Man benötigt ja nicht immer phpMyAdmin, tatsächlich braucht man es bei der Einrichtung von MySQL Datenbanken. Aber das ist ja keine Aufgabe die man ständig bedient.

Da bei der normalen Konfiguration ein Apache-Alias verwendet wird, muss der Apache-Server neu gestartet werden wenn man phpMyAdmin deaktivieren möchte.
Dies kann bei einem aktiven, besuchten Server unangenehme Folgen für die Benutzer haben.

Warum überhaupt phpMyAdmin deaktivieren? Jede Seite bietet eventuell Sicherheitslücken an, aber Dinge an die der Webserver gar nicht rankommt können auch keine Sicherheitslücke darstellen, daher lieber phpMyAdmin ausschalten wenn man es nicht benötigt.

Der Gedanke ist nun das Verzeichnis nicht über einen Apache-Alias zu verknüpfen sondern eine symbolische Verknüpfung im Dateisystem abzulegen. Ist sie vorhanden kann Apache dem Link folgen (Option FollowSymLinks) und findet dann phpMyAdmin. Entfernt man den Link kommt man prompt bei einer Not-Found-Fehlerseite heraus.

Die Datei die man dazu anpassen muss ist folgende: /etc/apache2/conf.d/phpmyadmin.conf

1
nano /etc/apache2/conf.d/phpmyadmin.conf

Die Zeile mit dem Alias wird auskommentiert (# vornedran) oder gelöscht (auskommentieren ist leichter rückgängig zu machen).

Dann müssen die ganzen Verzeichnisse angepasst werden. Wo vorher /phpmyadmin stand sollte danach /var/www/phpmyadmin stehen. (Oder halt das Wurzelverzeichnis eures Apache-Servers entsprechend)

Auch hier gab es für mich wieder unverständlicherweise die Option Indexes die ich sogleich mit einem Minus versehen habe um sicher zu sein, dass auch hier keine Verzeichnisauflistung möglich ist.

Danach muss noch der entsprechende SymLink erzeugt werden:

1
ln -s /usr/share/phpmyadmin /var/www/phpmyadmin

Entfernt wird dieser übrigens per:

1
rm /var/www/phpmyadmin

(man erkenne den fehlenden / nach phpmyadmin)

Nach diesen Einstellungen kann man den Apache-Server erneut neu starten und man hat dann Zugriff auf phpMyAdmin.

Wunderbar oder?

Für diese Anleitung habe ich zu Hilfe genommen:
Mein Gehirn
http://www.howtoforge.com/ubuntu_lamp_for_newbies
http://www.everyjoe.com/newlinuxuser/howto-remove-a-symbolic-link/