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: