Der perfekte Server - Mandriva 2009.0 Free (i386) [ISPConfig 2]

Version 1.0
Autor: Falko Timme


Das ist eine ausführliche Anleitung wie man einen Mandriva 2009.0 Free Server aufsetzt, der alle Dienste bereitstellt, die von ISPs und Hostern benötigt werden: Apache Web Server (SSL-fähig), Postfix Mail Server mit SMTP-AUTH und TLS, BIND DNS Server, Proftpd FTP Server, MySQL Server, Dovecot POP3/IMAP, Quota, Firewall, etc. Diese Anleitung ist für die 32-bit Version von Mandriva 2009.0 verfasst worden, sollte aber mit geringfügigen Änderungen auch auf die 64-bit Version angepasst werden können.

Ich werde folgende Software benutzen:
  • Web Server: Apache 2 (mit PHP5, Ruby, und Python)
  • Mail Server: Postfix
  • DNS Server: BIND9
  • FTP Server: proftpd
  • POP3/IMAP Server: Dovecot
  • Webalizer für Webseitenstatistiken
Am Ende erhältst Du ein System, das zuverlässig arbeitet und für die Installation des kostenlosen Webhosting Control Panels ISPConfig bereit ist.

Ich möchte an dieser Stelle darauf hinweisen, dass dies nicht der einzige Weg ist, ein solches System einzurichten. Es gibt viele Möglichkeiten dieses Ziel zu erreichen - dies ist der Weg, den ich gewählt habe. Ich übernehme keine Garantie, dass dies auch bei Dir funktioniert!

1 Vorbemerkung

In diesem Beispiel verwende ich folgende Einstellungen für mein System:
  • IP Adresse: 192.168.0.100, Gateway: 192.168.0.1
  • Host Name: server1.example.com
Diese Einstellungen werden bei Dir etwas anders aussehen, daher solltest Du sie an entsprechender Stelle ersetzen.

2 Voraussetzungen

Um ein solches System installieren zu können, benötigst Du Folgendes:
  • Lade die Mandriva 2009.0 DVD Iso Image herunter oder die Mandriva 2009.0 CD Iso Images von einem Mirror in Deiner Nähe. Die Liste der Mirros findest Du hier: http://www.mandriva.com/en/download); ich habe die Mandriva 2009.0 DVD für diese Anleitung benutzt.
  • eine schnelle Internetverbindung...

3 Das Basissystem

Boote von Deiner Mandriva 2009.0 DVD oder CD (von der ersten). Wähle Install Mandriva Linux 2009 aus und drück Enter:


Wähle als Nächstes Deine Sprache aus:


Akzeptiere die Lizenzvereinbarung und klick Next:


Wähle Dein Tastaturlayout:



Nun müssen wir die Festplatte partitionieren. Du kannst das entweder dem Mandriva Installer überlassen, oder Du machst es selbst. Ich möchte eine kleine /boot Partition (150 MB) erstellen mit dem Dateisystem ext3, einer swap Partition und einer riesigen / Partition (wieder mit ext3):








Danach werden die neuen Partitionen formatiert:



Klick im folgenden Bildschirm auf Next:


Wir haben keine weiteren Installationsmedien, also wählen wir None aus und klicken auf Next:


Wir wollen keinen Desktop auf einem Server-System, also wählen wir Custom hier aus:


Nun wählen wir die Paketgruppen aus die wir installieren wollen. Wähle Internet station, Network Computer (client), Configuration, Console Tools, Development, Web/FTP, Mail, Database, Firewall/Router und Network Computer server, deaktiviere alle anderen Paketgruppen und klick auf Next:


Hie bitte die Auswahl bestätigen :


Die Installation der Pakete startet :


Danach erstelle einen root Passwort und einen zusätzlichen Benutzer (z.B. administrator) und klicke auf Next:


Der Installer zeigt uns nun eine Zusammenfassung der Installation und gibt uns die Möglichkeit Einstellungen vorzunehmen, indem man auf den entsprechenden Configure Knopf drückt. Zunächst konfigurieren wir die Zeitzone in der wir uns befinden:


Wähle Deine Zeitzone aus:


In der nächsten Einstellunge wähle hardware clock set to UTC, Automatic time synchronization (using NTP), und für NTP Server wähle All servers aus:


Als Nächstes ändern wir den Security Level:


Wähle Standard als Security level aus (alle anderen sind zu restriktiv) und lasse das Feld Security Administrator leer:


Wir ändern die Einstellungen der Firewall:


ISPConfig hat eine eigene Firewall, wenn Du also ISPConfig insatllieren möchtest, wähle Everything (no firewall) umd ie Firewall zu deaktivieren. Ansonsten kannst Du die Firewall auf Deine Bedürfnisse anpassen:


Nun ändern wir die Netzwerkeinstellungen. Klick auf dem Configure Knopf neben Network - ethernet:



Wähle Ethernet, es sei denn Du benutzt etwas anderes:


Wähle das Netzwerk-Interface dass Du konfigurieren möchtest:


Wir wollem eine statsiche IP Adresse für unseren Netzwerk-Interface bestimmen (wir installieren schliesslich einen Server...) daher wollen wir die IP Adresse nicht per BOOTP oder DHCP bekommen. Daher wählen wir Manual configuration aus:


Gib nun die IP address, Netmask, und das Gateway an. Gib auch den Host name (z.B.. server1.example.com) und bis zu zwei DNS Server an (z.B. 145.253.2.75 und 213.191.92.86):


Erlaube es nicht den Benutzern, die Verbindung zu starten. Es ist ein Server und diese sind immer online - zumindest sollten sie es... Aber wähle bitte Start the connection at boot:


Wähle aus dass die Netzwerkverbindung jetzt gestartet wird:



Wir haben nun alle notwendigen Einstellungen vorgenommen, daher können wir die Zusammenfassung verlassen in dem wir auf Next klicken:


Wir können nun die neuesten Updates herunterladen . Achtung: Das ist optional. Wir erstellen einen cron job welches das System automatisch aktualisiert, daher kannst Du hier No auswählen:


Die Basisinstallation ist nun beendet, die CD oder DVD kann rausgenommen und das System neu gestartet werden:


Und weiter zur Systemkonfiguration...

4 /etc/hosts anpassen

Als nächstes editieren wir /etc/hosts. Es sollte folgendermassen aussehen:

vi /etc/hosts

127.0.0.1               localhost.localdomain localhost
192.168.0.100 server1.example.com server1

5 Hostnamen angeben

(Dieser Schritt ist optional.)

Das ist nicht notwendig, wenn der richtige Hostname während der Installation angegeben wurde. Du kannst den Namen mit folgendem Befehl überprüfen:

hostname
hostname -f

Beide Befehle sollten server1.example.com anzeigen.

Wenn die Ausgabe einen falschen Namen angibt, kannst Du ihn folgendermassen korrigieren:

echo server1.example.com > /etc/hostname
/bin/hostname -F /etc/hostname

6 urpmi konfigurieren

Du kannst den Wizard auf http://easyurpmi.zarb.org/ benutzen um herauszufinden wie man urpmi konfiguriert, so dass urpmi die online Package Repositories benutzt:




(Als ich diese Anleitung schrieb, gab es Mandriva 2009.0 noch nicht im Wizard, daher nahm iche 2008.1 ersetzte dann 2008.1 mit 2009.0 in den urpmi Befehlen. Das kannst Du auch tun, aber der Wizard sollte mittlerweile aktualisiert worden sein.

In meinem Fall gab der Wizard folgene Ausgabe an, die ich auf der Kommandozeile ausführe:

urpmi.addmedia 'Main' 'http://ftp.free.fr/mirrors/ftp.mandriva.com/MandrivaLinux/official/2009.0/i586/media/main/release'

urpmi.addmedia 'Contrib' 'http://ftp.free.fr/mirrors/ftp.mandriva.com/MandrivaLinux/official/2009.0/i586/media/contrib/release'

urpmi.addmedia 'Main Updates' 'http://ftp.free.fr/mirrors/ftp.mandriva.com/MandrivaLinux/official/2009.0/i586/media/main/updates'

urpmi.addmedia 'Contrib Updates' 'http://ftp.free.fr/mirrors/ftp.mandriva.com/MandrivaLinux/official/2009.0/i586/media/contrib/updates'


6.1 Die Installationsmedien deaktivieren

Die Installationsmedien zu deaktivieren ist besonders sinnvoll, wenn der Server an einem anderen Ort sthet wo man keine CD/DVD reinlegen kann. Um diese zu deaktivieren (die Mandriva DVD oder CDs), müssen wir zunächst ihre internen Namen herausfinden. Dafür geben wir ein

ls -l /var/lib/urpmi/


[root@server1 ~]# ls -l /var/lib/urpmi/
total 25980
-rw-r--r-- 1 root root     9791 2008-10-09 17:14 compssUsers.flat
drwxr-xr-x 2 root root     4096 2008-10-09 15:32 Contrib/
drwxr-xr-x 2 root root     4096 2008-10-09 15:32 Contrib Updates/
-rw-r--r-- 1 root root  3519063 2008-10-09 17:05 hdlist.Mandriva Linux - 2009.0 (Free) - Installer (contrib).cz
-rw-r--r-- 1 root root 22476876 2008-10-09 17:05 hdlist.Mandriva Linux - 2009.0 (Free) - Installer.cz
drwxr-xr-x 2 root root     4096 2008-10-09 15:32 Main/
drwxr-xr-x 2 root root     4096 2008-10-09 15:32 Main Updates/
-rw-r--r-- 1 root root        0 2008-10-09 17:14 MD5SUM
-rw-r--r-- 1 root root    50592 2008-10-09 17:14 names.Mandriva Linux - 2009.0 (Free) - Installer
-rw-r--r-- 1 root root     9805 2008-10-09 17:14 names.Mandriva Linux - 2009.0 (Free) - Installer (contrib)
-rw-r--r-- 1 root root    60938 2008-10-09 17:05 synthesis.hdlist.Mandriva Linux - 2009.0 (Free) - Installer (contrib).cz
-rw-r--r-- 1 root root   398380 2008-10-09 17:05 synthesis.hdlist.Mandriva Linux - 2009.0 (Free) - Installer.cz
[root@server1 ~]#

Du kannst den richtigen Namen aus den names.* Angaben ersehen. Um dann Mandriva 2009 DVD zu deaktivieren, führe ich aus

urpmi.removemedia "Mandriva Linux - 2009.0 (Free) - Installer"
urpmi.removemedia "Mandriva Linux - 2009.0 (Free) - Installer (contrib)"

Für die CDs ist der Befehl ein wenig anders - schau einfach in der Ausgabe von names.* auf Deinem System nach.

6.2 Einen Auto-Update Skript erstellen

Nun erstellen wir einen Skript /etc/cron.daily/software_update das automatisch von cron ausgeführt wird und täglich die neustes Software-Updates sucht und installiert. Das Skript sieht folgendermassen aus:

vi /etc/cron.daily/software_update

#!/bin/bash
urpmi.update updates urpmi --auto --update --auto-select
Das Skript soll ausführbar werden:

chmod 755 /etc/cron.daily/software_update


7 Einige Pakete installieren

Nun installieren wir einige Pakete, die wir später brauchen:

urpmi fetchmail wget bzip2 unzip zip nmap openssl lynx fileutils ncftp flex libxorg-x11-devel gcc gcc-c++


8 Quota

Umd das Quota Paket zu installieren, führe aus:

urpmi quota


Editiere /etc/fstab damit es folgendermassen aussieht (Ich habe ,usrquota,grpquota zu der Partition mit dem Mount-Punkt / hinzugefügt):

vi /etc/fstab

# Entry for /dev/sda6 :
UUID=b258edec-9613-11dd-99c4-457f04a19dca / ext3 relatime,usrquota,grpquota 1 1 # Entry for /dev/sda1 : UUID=b6fa1e84-9613-11dd-84e1-bf4bbb042d23 /boot ext3 relatime 1 2 /dev/fd0 /media/floppy auto umask=0,users,iocharset=utf8,noauto,exec,flush 0 0 none /proc proc defaults 0 0 # Entry for /dev/sda5 : UUID=b748b6b6-9613-11dd-844e-fba510a12ad6 swap swap defaults 0 0
Dann führe aus :

touch /aquota.user /aquota.group
chmod 600 /aquota.*
mount -o remount /
quotacheck -avugm
quotaon -avug

9 DNS Server

Um den BIND DNS Server zu installieren, führe aus:

urpmi bind


Mandriva 2009.0's BIND läuft standardmässig im chroot-Gefängnis, daher müssen wir einige Symlinks erstellen, so dass ISPConfig (falls es installiert wird) damit umgehen kann:

cd /var/lib/named/var
mkdir -p lib/named/var
cd lib/named/var
ln -s ../../../named/ named
ln -s ../../../run/ run
cp /var/lib/named/var/named/reverse/named.local /var/lib/named/var/named/

Als Nächstes erstelln wir die System-Start-up-Links für BIND...

chkconfig named on


... und starten es:

/etc/init.d/named start


10 MySQL (5.0)

Um MySQL 5.0 zu installieren, führen wir einfach aus:

urpmi MySQL MySQL-client libmysql15-devel


Standardmässig ist das Netzwerk in Mandrivas 2009.0's MySQL Paket nicht aktiviert, ist aber für ISPConfig erforderlich. Dafür müssen wir die skip-networking in /etc/my.cnf Zeile auskommentieren.

vi /etc/my.cnf

[...]
# Don't listen on a TCP/IP port at all. This can be a security enhancement, # if all processes that need to connect to mysqld run on the same host. # All interaction with mysqld must be made via Unix sockets or named pipes. # Note that using this option without enabling named pipes on Windows # (via the "enable-named-pipe" option) will render mysqld useless! # #skip-networking [...]
Danach erstellen wir die System-Start-up-Links für MySQL...

chkconfig mysqld on


... und starten es:

/etc/init.d/mysqld start


Prüfe nun ob das Netzwerk aktiviert ist. Führe aus

netstat -tap | grep mysql


Die Ausgabe sollte so aussehen:

[root@server1 var]# netstat -tap | grep mysql
tcp        0      0 *:mysql-im                  *:*                         LISTEN      3181/mysqlmanager
tcp        0      0 *:mysql                     *:*                         LISTEN      3190/mysqld
[root@server1 var]#

Nun führe aus

mysqladmin -u root password yourrootsqlpassword
mysqladmin -h server1.example.com -u root password yourrootsqlpassword

um ein Passwort für den Bneutzer root zuzuweisen, ansonsten kann jeder auf Deine MySQL Datenbank zugreifen!

11 Postfix mit SMTP-AUTH und TLS sowie Dovecot

Installiere die erforderlichen Pakete (Postfix, cyrus-sasl, Dovecot, etc.) folgendermassen:

urpmi cyrus-sasl libsasl2 libsasl2-devel libsasl2-plug-plain libsasl2-plug-anonymous libsasl2-plug-crammd5 libsasl2-plug-digestmd5 libsasl2-plug-gssapi libsasl2-plug-login postfix dovecot


Dann führe aus :

postconf -e 'mydestination = /etc/postfix/local-host-names, localhost.$mydomain'
postconf -e 'smtpd_sasl_local_domain ='
postconf -e 'smtpd_sasl_auth_enable = yes'
postconf -e 'smtpd_sasl_security_options = noanonymous'
postconf -e 'broken_sasl_auth_clients = yes'
postconf -e 'smtpd_sasl_authenticated_header = yes'
postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces = all'
postconf -e 'mynetworks = 127.0.0.0/8'
touch /etc/postfix/local-host-names

Dann vergeben wir den Hostnamen in unserer Postfix Installation (bitte ersetze server1 und example.com mit Deinen eigenen Einstellungen):

postconf -e 'mydomain = example.com'
postconf -e 'myhostname = server1.$mydomain'

Editiere /etc/sasl2/smtpd.conf. Es sollte so aussehen:

vi /etc/sasl2/smtpd.conf

# SASL library configuration file for postfix
# all parameters are documented into: # /usr/share/doc/cyrus-sasl/options.html # The mech_list parameters list the sasl mechanisms to use, # default being all mechs found. mech_list: plain login # To authenticate using the separate saslauthd daemon, (e.g. for # system or ldap users). Also see /etc/sysconfig/saslauthd. pwcheck_method: saslauthd saslauthd_path: /var/lib/sasl2/mux # To authenticate against users stored in sasldb. #pwcheck_method: auxprop #auxprop_plugin: sasldb #sasldb_path: /var/lib/sasl2/sasl.db
Die standardmässige Authetifizierung für saslauthd ist pam, leider scheint es bei Mandriva 2009.0 einen Bug zu geben. Wenn man eine Mail sendet, geht die erste durch, und sobald die zweite Mail folgt, hängt sich saslauthd auf. Du kannst solche Nachrichten wie diese in var/log/messages finden:

Oct  9 17:53:42 server1 saslauthd[4460]: server_exit     : master exited: 4460


Ich habe folgenden Ablauf gefunden: Öffne /etc/sysconfig/saslauthd...

vi /etc/sysconfig/saslauthd


... und ändere SASL_AUTHMECH von pam auf shadow:
# $Id: saslauthd.sysconfig,v 1.1 2001/05/02 10:55:48 wiget Exp $
# Authentications mechanism (for list see saslauthd -v) SASL_AUTHMECH=shadow # Hostname for remote IMAP server (if rimap auth mech is used) # Ldap configuration file (if ldap auth mech is used) SASL_MECH_OPTIONS= # Extra options (for list see saslauthd -h) SASLAUTHD_OPTS=
Erstelle das für TSL notwendige SSL Zertifikat:

mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024

chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr

openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt

openssl rsa -in smtpd.key -out smtpd.key.unencrypted


mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

... und konfiguriere Postfix für TLS:

postconf -e 'smtpd_tls_auth_only = no'
postconf -e 'smtp_use_tls = yes'
postconf -e 'smtpd_use_tls = yes'
postconf -e 'smtp_tls_note_starttls_offer = yes'
postconf -e 'smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key'
postconf -e 'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt'
postconf -e 'smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem'
postconf -e 'smtpd_tls_loglevel = 1'
postconf -e 'smtpd_tls_received_header = yes'
postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
postconf -e 'tls_random_source = dev:/dev/urandom'

Als Nächstes müssen wir Dovecot konfigurieren um die Protokolle imap, imaps, pop3, und pop3s zu bedienen. Öffne /etc/dovecot.conf und füge nur folgende Werte hinzu:

vi /etc/dovecot.conf

[...]
# Protocols we want to be serving: imap imaps pop3 pop3s # If you only want to use dovecot-auth, you can set this to "none". protocols = imap imaps pop3 pop3s [...] disable_plaintext_auth = no [...] pop3_uidl_format = %08Xu%08Xv [...]
Nun müssen wir das System so einrichten, dass es Dovecot erst nach ntpd startet, da Dovecot Probleme bereitet wenn die Zeit der Systemuhr zurückgestellt wird (siehe http://wiki.dovecot.org/TimeMovedBackwards). Das kann zu Fehlern im syslog führen wie folgende:

Apr  9 19:29:18 server1 dovecot: Time just moved backwards by 17 seconds. This might cause a lot of problems, so I'll just kill myself now. http://wiki.dovecot.org/TimeMovedBackwards


Leider startet Doveco auf Mandriva vor ntpd, daher ändern wir das folgendermassen ab:

cd /etc/rc3.d
mv S99ntpd S98ntpd
mv S54dovecot S99dovecot
cd /etc/rc4.d
mv S99ntpd S98ntpd
mv S54dovecot S99dovecot
cd /etc/rc5.d
mv S99ntpd S98ntpd
mv S54dovecot S99dovecot

Dann erstellen wir die System-Start-up-Links für Postfix...

chkconfig postfix on


... und (neu-)starten Postfix, saslauthd, und Dovecot:

/etc/init.d/postfix restart
/etc/init.d/saslauthd restart
/etc/init.d/dovecot restart

Um zu überprüfen ob SMTP-AUTH und TLS richtig funktionieren, führen wir folgenden Befehl aus:

telnet localhost 25


Nachdem Du Dich mit dem Postfix Mailserver verbunden hast, gib ein

ehlo localhost


Wenn Du das siehst

250-STARTTLS


und

250-AUTH PLAIN LOGIN


ist alles okay:

[root@server1 rc5.d]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 server1.example.com ESMTP Postfix (2.5.5) (Mandriva Linux)
ehlo localhost
250-server1.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
[root@server1 rc5.d]#

Gib ein

quit


um zur Kommandozeile zurückzukehren.

11.1 Maildir

Dovecot unutzt das Maildir Format (nicht mbox), daher versichere Dich dass Du Maildir deaktivierst falls Du ISPConfig auf dem Server installierst, und zwar unter Management -> Server -> Settings -> Email. ISPConfig übernimmt dann die notwendige Konfiguration.

Wenn Du ISPConfig nicht installieren möchtest, musst Du dann Postfix so konfigurieren, dass es Emails an das Maildir des Benutzers schickt - kann man übrigens auch wenn man ISPConfig benutzt...

postconf -e 'home_mailbox = Maildir/'
postconf -e 'mailbox_command ='
/etc/init.d/postfix restart

12 Apache2 mit PHP5, Ruby, und Python

Um Apache2, PHP5, und Ruby zu installieren, führe folgenden Befehl aus - in einer Zeile:

urpmi apache-mod_suexec apache-mod_ssl apache-mod_php apache-mod_ruby apache-mod_python libphp5_common5 php-bz2 php-calendar php-ctype php-curl php-devel php-dio php-dom php-eaccelerator php-enchant php-esmtp php-event php-exif php-fam php-ffmpeg php-fileinfo php-filepro php-ftp php-gd php-gettext php-gmp php-iconv php-id3 php-idn php-imap php-imlib2 php-mailparse php-mbstring php-mcache php-mcrypt php-mhash php-ming php-mysql php-mysqli php-ncurses php-newt php-odbc php-oggvorbis php-pcntl php-pcre php-pear-Net_IDNA php-posix php-pspell php-readline php-recode php-session php-shmop php-simplexml php-snmp php-soap php-sockets php-sqlite php-ssh2 php-suhosin php-sysvmsg php-sysvsem php-sysvshm php-tclink php-tcpwrap php-tidy php-xml php-xmlrpc php-zip php-ini curl libcurl4-devel perl-libwww-perl ImageMagick


Erstelle die System-Start-up-Links für Apache...

chkconfig httpd on


... und start es:

/etc/init.d/httpd restart


12.1 PHP global deaktivieren

(Wenn Du ISPConfig nicht auf Deinem Server installieren möchtest, kannst Du diesen Abschnitt auslassen!)

In ISPConfig wird PHP für jede einzelne Webseite konfiguriert, d. h. man kann angeben welche Seite PHP Skripte ausführen darf und welche nicht. Das funktioniert nur wenn PHP global deaktiviert wurde, da ansonsten alle Webseiten PHP Skripte ausführen könnten, unabhängig davon was in ISPConfig spezifiziert wird.

Editiere /etc/httpd/modules.d/70_mod_php.conf und kommnetiere die AddType Zeilen aus :

vi /etc/httpd/modules.d/70_mod_php.conf

<IfDefine HAVE_PHP5>
<IfModule !mod_php5.c> LoadModule php5_module extramodules/mod_php5.so </IfModule> </IfDefine> <IfModule mod_mime.c> #AddType application/x-httpd-php .php #AddType application/x-httpd-php .phtml #AddType application/x-httpd-php-source .phps </IfModule> <IfModule mod_php5.c> <IfModule mod_dir.c> DirectoryIndex index.php index.phtml </IfModule> </IfModule>
Editiere /etc/httpd/conf/httpd.conf und füge folgende Zeilen zum LoadModule Bereich hinzu:

vi /etc/httpd/conf/httpd.conf

[...]
LoadModule php5_module extramodules/mod_php5.so [...]
(Obwohl es diese Zeile schon in /etc/httpd/modules.d/70_mod_php.conf gibt, ist das sehr wichtig weil sonst der Befehl

httpd -t


Fehler berichten wird anstatt Syntax OK wenn die von ISPConfig erstellten virtuellen Hosts Zeilen wie php_admin_flag safe_mode On oder ähnliches enthalten!

Starte Apache neu:

/etc/init.d/httpd restart


12.2 Ruby global deaktivieren

(Wenn Du ISPConfig nicht auf Deinem Server installieren möchtest, kannst Du diesen Abschnitt auslassen!)

In ISPConfig wird auch Ruby für jede einzelne Webseite konfiguriert, d. h. man kann angeben welche Seite Ruby Skripte ausführen darf und welche nicht. Das funktioniert nur wenn PHP global deaktiviert wurde, da ansonsten alle Webseiten Ruby Skripte ausführen könnten, unabhängig davon was in ISPConfig spezifiziert wird.

vi /etc/httpd/modules.d/20_mod_ruby.conf


Kommentiere aus oder lösche alles aus der Datei bis auf folgende Zeilen:
<IfDefine HAVE_RUBY>
<IfModule !mod_ruby.c> LoadModule ruby_module extramodules/mod_ruby.so </IfModule> </IfDefine>
Dann starte Apache neu:

/etc/init.d/httpd restart


13 Proftpd

Installiere Proftpd folgendermassen:

urpmi proftpd


Aus Sicherheitsgründen können zu /etc/proftpd.conf noch folgende Zeilen hinzugefügt werden (Danke an Reinaldo Carvalho; mehr Infos hierzu: http://www.proftpd.org/localsite/Userguide/linked/userguide.html):

vi /etc/proftpd.conf

[...]
DefaultRoot ~ IdentLookups off ServerIdent on "FTP Server ready." [...]
Bitte versichere Dich folgende Zeilen auskommnetiert zu haben am Ende von /etc/proftpd.conf, um FTP Benzutern CHMOD zu ermöglichen:
[...]
# Bar use of SITE CHMOD by default #<Limit SITE_CHMOD> # DenyAll #</Limit>
Dann starte Proftpd neu:

/etc/init.d/proftpd restart


14 Webalizer

Mandriva 2009.0 bringt keine Webalizer Paket mehr mit, daher erstellen wir die Webalizer Binary folgendermassen:

urpmi libgeoip1 geoip libgeoipupdate0 awffull libgeoip-devel libgd-devel libgd2 libbzip2_1-devel libdb4.6-devel


cd /tmp
wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.20-01-src.tgz
tar xvfz webalizer-2.20-01-src.tgz
cd webalizer-2.20-01
./configure --enable-dns --enable-geoip --enable-bz2
make
make install
cd ..
rm -fr webalizer-2.20-01*

15 Von SpamAssassin benötigte Perl Module installieren (kommt mit ISPConfig)

Um alle benötigten Perl Module zu installieren, können wir die entsprechenden Mandriva Pakete nutzen und isntallieren sie indem wir urpmi benutzen:

urpmi perl-HTML-Parser perl-Digest-SHA1 perl-DB_File perl-Net-DNS


16 Das Ende

Die konfiguration des Servers ist nun beendet, und wenn Du möchtest kannst Du nun ISPConfig darauf installieren. Die Anleitung dafür findest Du hier: http://www.ispconfig.org/manual_installation.htm. Eine Anleitung für die ersten Schritte findest Du hier: http://www.howtoforge.com/ispconfig-2.x-first-steps

17 Bemerkung zu SuExec

Wenn Du CGI Skripte unter suExec ausführen möchtest, solltest Du /var/www als als Webroot spezifizieren, für alle Seiten die mit ISPConfig erstellt wurden, da Mandrivas suExec mit /var/www as Doc_Rootkompiliert ist. Führe aus

/usr/sbin/suexec -V


und die Ausgabe sollte so aussehen:

[root@server1 tmp]# /usr/sbin/suexec -V
-D AP_DOC_ROOT="/var/www"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="apache"
-D AP_LOG_EXEC="/var/log/httpd/suexec_log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_SUEXEC_UMASK=077
-D AP_UID_MIN=100
-D AP_USERDIR_SUFFIX="public_html"
[root@server1 tmp]#

Wenn Du suExec mit ISPConfig nutzen möchtest, ändere nicht den Standard Webroot (der wäre /var/www) wenn Du den Expertenmodus für die Installation von ISPConfig benutzt. Im Standardmodus kann man den Webroot ohnehin nicht ändern, so dass man suExec in jedem Fall wird benutzen können.

18 Links