Ubuntu als Webserver einrichten

Einen Linux-Server einzurichten ist eine nicht zu einfache Aufgabe. Nachfolgend eine Aufstellung wie man ein Ubuntu 9.10 als Webserver konfiguriert. Ich schreibe dieses Tutorium da es unter Ubuntu nicht so einfach möglich ist ein Funktionierendes PHP mit PDO und SQLite zu installieren. Werden die einzelnen Module nur über apt-get installiert kommt es mit SQLite zu inkompatiblen Versionen , was man nur durch manuelles kompilieren und einige Anpassungen an den Makefiles wieder funktionsfähig bekommt. Wenn aber alles wie in diesem Tutorium beschrieben installiert wird ist das nicht notwendig. Anscheinend nimmt Tasksel einige Einstellungen bzw Konfigurationen vor die durch das manuelle apt-get nicht durchgeführt werden.

Vorbereitungen:

Es kann sein dass es sich bei einer Vorinstallation, von Ubuntu keine aktuelle Mirrorliste mehr vorhanden ist, was sich beim installieren über apt-get durch die Fehlermeldung "404 Not Found" bemerkbar macht. Um die Mirrorliste zu aktualisieren müssen die neuen Mirrors in der Datei "/etc/apt/sources.list" eingetragen werden. Dies kann man zum Beispiel mit dem recht einfach zu bedienenden Editor nano bearbeiten. Nachfolgend eine gütige Serverliste (stand Januar 2010):

deb http://gb.archive.ubuntu.com/ubuntu/ karmic main restricted 
deb-src http://gb.archive.ubuntu.com/ubuntu/ karmic main restricted 

## Major bug fix updates produced after the final release of the 
## distribution. 
deb http://gb.archive.ubuntu.com/ubuntu/ karmic-updates main restricted 
deb-src http://gb.archive.ubuntu.com/ubuntu/ karmic-updates main restricted 

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu 
## team. Also, please note that software in universe WILL NOT receive any 
## review or updates from the Ubuntu security team. 
deb http://gb.archive.ubuntu.com/ubuntu/ karmic universe 
deb-src http://gb.archive.ubuntu.com/ubuntu/ karmic universe 
deb http://gb.archive.ubuntu.com/ubuntu/ karmic-updates universe 
deb-src http://gb.archive.ubuntu.com/ubuntu/ karmic-updates universe 

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu 
## team, and may not be under a free licence. Please satisfy yourself as to 
## your rights to use the software. Also, please note that software in 
## multiverse WILL NOT receive any review or updates from the Ubuntu 
## security team. 
deb http://gb.archive.ubuntu.com/ubuntu/ karmic multiverse 
deb-src http://gb.archive.ubuntu.com/ubuntu/ karmic multiverse 
deb http://gb.archive.ubuntu.com/ubuntu/ karmic-updates multiverse 
deb-src http://gb.archive.ubuntu.com/ubuntu/ karmic-updates multiverse 

deb http://security.ubuntu.com/ubuntu karmic-security main restricted 
deb-src http://security.ubuntu.com/ubuntu karmic-security main restricted 
deb http://security.ubuntu.com/ubuntu karmic-security universe 
deb-src http://security.ubuntu.com/ubuntu karmic-security universe 
deb http://security.ubuntu.com/ubuntu karmic-security multiverse 
deb-src http://security.ubuntu.com/ubuntu karmic-security multiverse 

deb http://ppa.launchpad.net/gnome-colors-packagers/ppa/ubuntu jaunty main 
deb-src http://ppa.launchpad.net/gnome-colors-packagers/ppa/ubuntu jaunty main

Nach der Aktualisierung muss noch die Paketliste von apt über den Befehl "apt-get update" neu eingelesen werden

Schritt 1: Installieren von Tasksel und Lamp

Tasksel ist ein Programm um vordefinierte Server-Szenarien einfach unter Ubuntu zu installieren. Weiter Informationen zu Tasksel finden sie unter. Tasksel kann über den Befehl "sudo apt-get install tasksel" bezogen werden. Danach kann ein Lamp-Server (Linux Apche2 MySQL PHP5) über "tasksel lamp-server" installiert werden. Nach diesem Befehl werden automatisch ein Apache Webserver mit PHP und eine MySQL-Datenbank installiert (inklusive PDO).

Schritt 2: Installieren von PHP-Erweiterungen

PHP kann durch das installieren von zusätzlichen Modulen erweitert werden:

sudo apt-get install php5-gd  
sudo apt-get install php5-imagick  
sudo apt-get install php5-sqlite 
sudo apt-get install php5-xsl 
sudo apt-get install php5-tidy

GD und ImageMagic ermöglichen Bildbearbeitung unter PHP, SQLite ist eine einfach zu verwendene Datenbank, XSL ermöglicht die Verwendung von XSLT zum Transformieren von XML-Dateien, mit Tidy können HTML-Dateien valiert werden. Natürlich gibt es noch eine große Anzahl weiterer Erweiterungen, die hier nicht erwähnt werden können

Schritt 3 Mod-Rewrite:

Auch ist es empfehlenswert das Apache Modul mod_rewrite zu aktiveren da diese von einer vielzajh von Contentmanagementsystemen verwerndet wird um leserliche URLs zu erstellen. mod_rewrite wird über "sudo a2enmod rewrite" aktiviert. Abschließend sollte der Apache über "sudo /etc/init.d/apache2 restart" neugestartet werden.

Schritt 4 Postfix:

Wer auch E-Mails über den Server verwalten will benötigt zusätzlich einen Mailserver wie Postfix. Postfix kann über den Befehl "sudo apt-get install postfix" installiert werden. Ein einfacher Installer fragt die wichtigsten Einstellungen ab. Über den Installer müssen keine Einstellungen vorgenommen werden da diese nachträglich auch über die Konfigurationsfiles geändert werden können Als erstes muss z.B über nano eine neue unter „/etc/postfix“ angelegt werden „sudo nano /etc/postfix/virtual “ In dieser Datei werden dann die Domains auf die der Webserver hören soll aufgelistet:

 
  @yourdomain.comemailusername

Nachfolgend muss ein Verweis auf die Datei noch unter "/etc/postfix/main.cf" eingetragen werden. Anbei ein Auszug aus der Main.cf:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version 
    
# Debian specific:  Specifying a file name will cause the first 
# line of that file to be used as the name.  The Debian default 
# is /etc/mailname. 
#myorigin = /etc/mailname 

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) 
biff = no 

# appending .domain is the MUA\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'s job. 
append_dot_mydomain = no 

# Uncomment the next line to generate "delayed mail" warnings 
#delay_warning_time = 4h 

readme_directory = no 

# TLS parameters 
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem 
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key 
smtpd_use_tls=yes 
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache 
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache 

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for 
# information on enabling SSL in the smtp client. 

myhostname = mail.domain.de 
alias_maps = hash:/etc/aliases 
alias_database = hash:/etc/aliases 
myorigin = /etc/mailname 

mydestination = domain.de, mail.domain.de, localhost.domain.de, domain.de, localhost 

relayhost = 
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 
mailbox_command = procmail -a "$EXTENSION" 
mailbox_size_limit = 0 
recipient_delimiter = + 
inet_interfaces = all 

virtual_alias_domains = domain.de 
virtual_alias_maps = hash:/etc/postfix/virtual 

Kommentar schreiben: