Der Perfekte Server - CentOS 4.5 (32-bit)

Version 1.0
Author: Falko Timme


Diese Anleitung veranschaulicht, wie man einen CentOS 4.5 basierten Server einrichtet, der alle Dienste bietet, die von ISPs und Web Hostern: 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 benötigt werden. Diese Anleitung wurde für die 32-bit Version von CentOS 4.5 verfasst, sollte aber auch mit geringfügigen Änderungen auf die 64-bit Version passen.

Folgende Software werde ich verwenden:
  • Web Server: Apache 2.0.x
  • Database Server: MySQL 4.1
  • Mail Server: Postfix
  • DNS Server: BIND9 (chrooted!)
  • FTP Server: proftpd
  • POP3/IMAP server: dovecot
  • Webalizer für Webseiten-Statistiken
Du erhältst ein System, das zuverlässig funktioniert. Wenn Du magst, kannst Du das kostenlose Webhosting Control Panel ISPConfig installieren.

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!

Voraussetzungen

Um ein solches System zu installieren, wirst Du Folgendes brauchen:

1 Installation des Basissystems

Starte mit Deiner CentOS 4.5 CD (CD 1).


Das Testen Deines Installationsmediums kann ziemlich lange dauern, also überspringen wir diesen Test hier:


Der Willkommens-Screen des CentOS Installers erscheint. Klicke auf Next:


Wähle als Nächstes Deine Sprache:


Wähle Dein Tastaturlayout:


Wir möchten einen Server installieren, also wählen wir hier Server:


Als Nächstes führen wir die Partitionierung aus. Wähle Automatically partition. Damit erhältst Du eine kleine /boot Partition und eine große / Partition, was für unsere Zwecke bestens geeignet ist:


Ich installiere CentOS 4.5 auf einem frisch aufgesetzten System, also antworte ich mit Yes auf die Frage Would you like to initialize this drive, erasing ALL DATA?


Wähle Remove all partitions on this system.


Wir möchten alle Linux Partitionen entfernen, also antworten wir auf folgende Frage mit Yes:


Der Installer präsentiert Dir einen Überblick Deiner neuen Partitionen. Klicke auf Next:


Nun wird der Boot Loader GRUB installiert. Du kannst die Standard-Einstellungen unverändert lassen und auf Next klicken:



Weiter mit den Netzwerkeinstellungen. Die Standard-Einstellung ist hier, das Netzwerk Interface mit DHCP zu konfigurieren, wir installieren allerdings einen Server, d.h. also statische IP Adressen wären eine gute Idee... Klicke auf Edit rechts oben. In dem Fenster, das sich öffnet, entferne die Markierung von Configure using DHCP und weise Deiner Netzwerkkarte eine statische IP Adresse zu (in dieser Anleitung verwende ich die IP Adresse 192.168.0.100 für Demonstrationszwecke):



Richte den Hostnamen manuell ein, z.B. server1.example.com und gib ein Gateway (z.B. 192.168.0.1) und bis zu drei DNS Server ein (z.B. 145.253.2.75, 193.174.32.18 und 194.25.0.60):


Ich möchte am Ende dieser Anleitung ISPConfig installieren; ISPConfig hat seine eigene Firewall. Daher deaktiviere ich die Standard-Firewall von CentOS jetzt. Natürlich kannst Du sie auch aktiviert lassen und sie nach eigenem Ermessen konfigurieren (dann solltest Du später aber keine andere Firewall verwenden, da diese höchstwahrscheinlich die Firewall von CentOS beeinflussen wird).

SELinux ist eine Sicherheitserweiterung von CentOS. Meiner Meinung nach ist die Konfiguration eines sicheren Systems überflüssig und verursacht für gewöhnlich mehr Probleme als dass es Vorteile verschafft. Daher deaktiviere ich es (das ist ein Muss, wenn Du später ISPConfig installieren möchtest).


Klicke auf Proceed:


Wähle die Standard-Sprache für das System und füge weitere Sprachen hinzu, falls nötig:


Wähle Deine Zeitzone:


Weise root ein Passwort zu:


Nun müssen wir die Paketgruppen auswählen, die wir installieren möchten. Wähle Editors, Text Based Internet, Server Configuration Tools, Web Server, Mail Server, DNS Name Server, FTP Server, MySQL Database, Development Tools, Administration Tools und System Tools und klicke auf Next:


Der Installer teilt Dir mit, welche CDs er benötigt, um die ausgewählten Pakete zu installieren:



Die Installation beginnt. Das wird ein paar Minuten dauern:


Schließlich ist die Installation abgeschlossen und Du kannst Deine CD aus dem Computer entfernen und neu starten:


Weiter mit der Konfiguration...

2 /etc/hosts anpassen

Als Nächstes bearbeiten wir /etc/hosts. So soll es aussehen:

vi /etc/hosts


# Do not remove the following line, or various programs
# that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost 192.168.0.100 server1.example.com server1

3 Zusätzliche IP Adressen konfigurieren

(Dieser Abschnitt ist optional. Er zeigt nur, wie Du zusätzliche IP Adressen Deinem Netzwerk Interface eth0 hinzufügen kannst, falls Du mehr als eine IP Adresse benötigst. Wenn Dir eine IP Adresse genügt, kannst Du diesen Abschnitt weglassen.)

Lass uns davon ausgehen, dass unser Netzwerk Interface eth0 ist. Dann gibt es eine Datei /etc/sysconfig/network-scripts/ifcfg-eth0 die wie folgt aussieht:

vi /etc/sysconfig/network-scripts/ifcfg-eth0


DEVICE=eth0
BOOTPROTO=static BROADCAST=192.168.0.255 HWADDR=00:0C:29:C8:AA:7C IPADDR=192.168.0.100 NETMASK=255.255.255.0 NETWORK=192.168.0.0 ONBOOT=yes TYPE=Ethernet
Nun möchten wir das virtuelle Interface eth0:0 mit der IP Adresse 192.168.0.101 erstellen. Wir müssen nur die Datei /etc/sysconfig/network-scripts/ifcfg-eth0:0 erstellen, die wie folgt aussieht (wir können die HWADDR Zeile auslassen, da es die gleiche Netzwerkkarte ist):

vi /etc/sysconfig/network-scripts/ifcfg-eth0:0


DEVICE=eth0:0
BOOTPROTO=static BROADCAST=192.168.0.255 IPADDR=192.168.0.101 NETMASK=255.255.255.0 NETWORK=192.168.0.0 ONBOOT=yes TYPE=Ethernet
Danach müssen wir das Netzwerk neu starten:

/etc/init.d/network restart

Du möchtest vielleicht auch /etc/hosts anpassen, nachdem Du neue IP Adressen hinzugefügt hast, obwohl dies nicht notwendig ist.

4 Konfiguriere die Firewall

(Du kannst diesen Abschnitt überspringen, wenn Du die Firewall bereits während der Installation des Basissystems deaktiviert hast.)

Ich möchte am Ende dieser Anleitung ISPConfig installieren, das seine eigene Firewall hat. Daher deaktiviere ich nun die Standard Firewall von CentOS. Natürlich kannst Du sie auch aktiviert lassen und sie nach eigenem Ermessen konfigurieren (dann solltest Du später aber keine andere Firewall verwenden, da diese höchstwahrscheinlich die Firewall von CentOS beeinflussen wird).

Führe Folgendes aus

system-config-securitylevel


Wähle Disabled und drücke OK.

Um zu überprüfen, ob die Firewall wirklich deaktiviert wurde, kannst Du dies danach ausführen

iptables -L

Die Ausgabe sollte wie folgt aussehen:
[root@server1 ~]# iptables -L
Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination

5 SELinux deaktivieren

(Du kannst diesen Abschnitt überspringen, wenn Du SELinux bereits während der Installation des Basissystems deaktivert hast.)

SELinux ist eine Sicherheitserweiterung von CentOS. Meiner Meinung nach ist die Konfiguration eines sicheren Systems überflüssig und verursacht für gewöhnlich mehr Probleme als dass es Vorteile verschafft. Daher deaktiviere ich es (das ist ein Muss, wenn Du später ISPConfig installieren möchtest).

Bearbeite /etc/selinux/config und setze SELINUX=disabled:

vi /etc/selinux/config


# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - SELinux is fully disabled. SELINUX=disabled # SELINUXTYPE= type of policy in use. Possible values are: # targeted - Only targeted network daemons are protected. # strict - Full SELinux protection. SELINUXTYPE=targeted
Danach müssen wir das System neu starten:

shutdown -r now


6 Einige Software-Pakete installieren

Zuerst importieren wir die GPG keys für Software-Pakete:

rpm --import /usr/share/rhn/RPM-GPG-KEY*

Dann aktualisieren wir unsere vorhandenen Pakete:

yum update

Nun installieren wir einige Software-Pakete, die später gebraucht werden:

yum install fetchmail wget bzip2 unzip zip nmap openssl lynx fileutils gcc gcc-c++


7 Quota

Um Quota zu installieren, führen wir diesen Befehl aus:

yum install quota

Bearbeite /etc/fstab und füge ,usrquota,grpquota der / Partition (/dev/VolGroup00/LogVol00) hinzu:

vi /etc/fstab


# This file is edited by fstab-sync - see 'man fstab-sync' for details
/dev/VolGroup00/LogVol00 / ext3 defaults,usrquota,grpquota 1 1 LABEL=/boot /boot ext3 defaults 1 2 none /dev/pts devpts gid=5,mode=620 0 0 none /dev/shm tmpfs defaults 0 0 none /proc proc defaults 0 0 none /sys sysfs defaults 0 0 /dev/VolGroup00/LogVol01 swap swap defaults 0 0 /dev/hdc /media/cdrecorder auto pamconsole,exec,noauto,managed 0 0 /dev/fd0 /media/floppy auto pamconsole,exec,noauto,managed 0 0
Führe Folgendes aus

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

um Quota zu aktivieren.

8 Einen chrooted DNS Server (BIND9) installieren

Um einen chrooted BIND9 zu installieren, führen wir Folgendes aus:

yum install bind-chroot

Führe dann dies aus:

chmod 755 /var/named/
chmod 775 /var/named/chroot/
chmod 775 /var/named/chroot/var/
chmod 775 /var/named/chroot/var/named/
chmod 775 /var/named/chroot/var/run/
chmod 777 /var/named/chroot/var/run/named/
cd /var/named/chroot/var/named/
ln -s ../../ chroot
chkconfig --levels 235 named on
/etc/init.d/named start

BIND wird in einem chroot Gefängnis unter /var/named/chroot/var/named/ ausgeführt. Ich werde ISPConfig verwenden um BIND (Zonen, etc.) zu konfigurieren.

9 MySQL (4.1)

Um MySQL zu installieren, führen wir dies aus:

yum install mysql mysql-devel mysql-server

Wenn Du versuchst MySQL neu zu starten, kann das MySQL init Skript auf CentOS Probleme verursachen. In einigen Fällen versucht es MySQL zu starten bevor der alte MySQL Prozess beendet ist, was zu einem Ausfall führt. Die Lösung des Problems ist, den restart Bereich von /etc/init.d/mysqld zu bearbeiten und eine kurze Verzögerung von ein paar Sekunden zwischen dem Stopp und Start von MySQL hinzuzufügen.

Bearbeite /etc/init.d/mysqld:

vi /etc/init.d/mysqld

und ändere diesen Bereich:
restart(){
stop start }
sodass es wie folgt aussieht:
restart(){
stop sleep 3 start }
Dies fügt eine 3-Sekunden-Verzögerung zwischen dem Stopp und den Start von MySQL hinzu.

Dann erstellen wir die System Startup Links für MySQL (sodass MySQL automatisch startet, wenn das System hoch gefahren wird) und starten den MySQL Server:

chkconfig --levels 235 mysqld on
/etc/init.d/mysqld start

Überprüfe nun, ob der Netzwerkbetrieb aktiviert ist. Führe Folgendes aus

netstat -tap

Eine ähnliche Zeile sollte angezeigt werden:
tcp        0      0 *:mysql                     *:*                         LISTEN      2995/mysqld
Wenn nicht, bearbeite /etc/my.cnf und kommentiere die Option skip-networking aus:

vi /etc/my.cnf


#skip-networking
und starte Deinen MySQL Server neu:

/etc/init.d/mysqld restart

Führe dies aus

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

um ein Passwort für root einzurichten (sonst kann jeder auf Deine MySQL Datenbank zugreifen!).

10 Postfix mit SMTP-AUTH und TLS

Nun installieren wir Postfix und dovecot (dovecot wird unser POP3/IMAP Server sein):

yum install cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain postfix dovecot

Als Nächstes konfigurieren wir SMTP-AUTH und TLS:

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_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces = all'
postconf -e 'mynetworks = 127.0.0.0/8'

Wir müssen /usr/lib/sasl2/smtpd.conf bearbeiten, sodass Postfix PLAIN und LOGIN Logins erlaubt. Auf einem 64Bit Centos 4.4 musst Du stattdessen die Datei /usr/lib64/sasl2/smtpd.conf bearbeiten. So sollte es aussehen:

vi /usr/lib/sasl2/smtpd.conf


pwcheck_method: saslauthd
mech_list: plain login

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

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'

Nach diesen Konfigurationsschritten solltest Du nun eine /etc/postfix/main.cf haben, die wie folgt aussieht (ich habe alle Kommentare entfernt):

vi /etc/postfix/main.cf


queue_directory = /var/spool/postfix
command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix mail_owner = postfix inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost unknown_local_recipient_reject_code = 550 alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin xxgdb $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-2.2.10/samples readme_directory = /usr/share/doc/postfix-2.2.10/README_FILES smtpd_sasl_local_domain = smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination mynetworks = 127.0.0.0/8 smtpd_tls_auth_only = no smtp_use_tls = yes smtpd_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom
Standardmäßig bietet CentOS' dovecot daemon nur IMAP und IMAPs Dienste an. Da wir auch POP3 und POP3s haben wollen, müssen wir dovecot dementsprechend konfigurieren. Wir bearbeiten /etc/dovecot.conf und setzen die Zeile protocols = imap imaps pop3 pop3s ein:

vi /etc/dovecot.conf


[...]
# Base directory where to store runtime data. #base_dir = /var/run/dovecot/ # Protocols we want to be serving: # imap imaps pop3 pop3s protocols = imap imaps pop3 pop3s # IP or host address where to listen in for connections. It's not currently # possible to specify multiple addresses. "*" listens in all IPv4 interfaces. [...]
Starte nun Postfix, saslauthd und dovecot:

chkconfig --levels 235 sendmail off
chkconfig --levels 235 postfix on
chkconfig --levels 235 saslauthd on
chkconfig --levels 235 dovecot on
/etc/init.d/sendmail stop
/etc/init.d/postfix start
/etc/init.d/saslauthd start
/etc/init.d/dovecot start

Um herauszufinden ob SMTP-AUTH und TLS richtig funktionieren, führe nun folgenden Befehl aus:

telnet localhost 25

Nachdem Du die Verbindung zu Deinem Postfix Mail Server aufgebaut hast, gib Folgendes ein

ehlo localhost

Wenn Du die Zeile

250-STARTTLS

und

250-AUTH PLAIN LOGIN

siehst, ist alles in Ordnung.

[root@server1 ssl]# 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
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 8BITMIME
quit
221 Bye
Connection closed by foreign host.
[root@server1 ssl]#

Gib ein

quit

um zur Kommandozeile des Systems zurückzukehren.

10.1 Maildir

Dovecot verwended ein Maildir Format (nicht mbox). Wenn Du also ISPConfig auf dem Server installierst, pass bitte auf, dass Maildir unter Management -> Server -> Settings -> Email aktivierst. ISPConfig nimmt dann die notwendige Konfiguration vor.

Wenn Du ISPConfig nicht installieren möchtest, dann musst Du Postfix so konfigurieren, dass E-Mails zu einer Maildir des Benutzers gesendet werden:

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

11 Apache2 mit PHP

Nun installieren wir Apache mit PHP (dies ist PHP 4.3.9; CentOS bietet keine PHP5 Pakete):

yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel

Bearbeite dann /etc/httpd/conf/httpd.conf:

vi /etc/httpd/conf/httpd.conf

und ändere DirectoryIndex zu
DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl
Konfiguriere Dein System so, dass Apache beim Hochfahren gestartet wird:

chkconfig --levels 235 httpd on

Starte Apache:

/etc/init.d/httpd start


11.1 PHP global deaktivieren

(Falls Du nicht vorhast, ISPConfig auf diesem Server zu installieren, überspringe bitte diesen Abschnitt!)

In ISPConfig wirst Du PHP pro Webseite konfigurieren, d.h. Du kannst festlegen, welche Webseite PHP Skripte ausführen kann und welche nicht. Das funktioniert nur, wenn PHP global deaktiviert ist, da sonst alle Webseiten in der Lage wären, PHP Skripte auszuführen, ganz gleich was Du in ISPConfig festlegst.

Um PHP global zu deaktivieren, bearbeiten wir /etc/httpd/conf.d/php.conf und kommentieren die AddType Zeile aus:

vi /etc/httpd/conf.d/php.conf


#
# PHP is an HTML-embedded scripting language which attempts to make it # easy for developers to write dynamically generated webpages. # LoadModule php4_module modules/libphp4.so # # Cause the PHP interpreter to handle files with a .php extension. # #AddType application/x-httpd-php .php # AddType application/x-httpd-php-source .phps # # Add index.php to the list of files that will be served as directory # indexes. # DirectoryIndex index.php
Danach starten wir Apache neu:

/etc/init.d/httpd restart


12 ProFTPd

ISPConfig unterstützt proftpd besser als vsftpd, also entfernen wir vsftpd:

yum remove vsftpd

Da CentOS kein proftpd Paket hat, müssen wir eine yum Paketdatenbank von Drittanbietern verwenden, um es zu installieren:

cd /etc/yum.repos.d/
wget http://centos.karan.org/kbsingh-CentOS-Extras.repo
rpm --import http://centos.karan.org/RPM-GPG-KEY-karan.org.txt

Nun können wir proftpd installieren:

yum install proftpd

Lass uns nun die System Startup Links von proftpd erstellen und es starten:

chkconfig --levels 235 proftpd on
/etc/init.d/proftpd start

Erstelle dann die Datei /etc/pam.d/ftp mit folgendem Inhalt (sonst wirst Du Dich nicht mit Systembenutzern mittels FTP anmelden können):

vi /etc/pam.d/ftp


#%PAM-1.0
auth required pam_unix.so nullok account required pam_unix.so session required pam_unix.so
und starte proftpd neu:

/etc/init.d/proftpd restart


13 Webalizer

Um Webalizer zu installieren, führe Folgendes aus

yum install webalizer


14 Die System Uhr synchronisieren

Wenn Du die System Uhr mit einem NTP Server synchronisieren möchtest, führe Folgendes aus:

yum install ntp
chkconfig --levels 235 ntpd on
ntpdate 0.pool.ntp.org
/etc/init.d/ntpd start

15 Installiere einige Perl Module

In ISPConfig ist SpamAssassin integriert, was einige Perl Module zum Funktionieren benötigt. Wir installieren die benötigten Perl Module mit einem einzigen Befehl:

yum install perl-DBI perl-Net-DNS perl-Digest-SHA1

Wir benötigen außerdem das Modul HTML::Parser. Wir könnten das CentOS Paket perl-HTML-Parser installieren, allerdings ist diese Version für die SpamAssassin Version, die in ISPConfig integriert ist, zu alt. Folgende Fehlermeldung würde während der Installation von ISPConfig auftauchen:

REQUIRED module out of date: HTML::Parser

Daher müssen wir das neuste HTML::Parser mittels Per Shell installieren.

Führe folgenden Befehl aus um die Perl Shell zu starten:

perl -MCPAN -e shell

Wenn Du die Perl Shell erstmalig ausführst, werden Dir ein paar Fragen gestellt. In den meisten Fällen sind die Standard-Antworten in Ordnung. Da kein ncftp Paket für CentOS gibt, kann die Perl Shell die Programme ncftpget und ncftp nicht finden und Du siehst etwas ähnliches wie das:

Warning: ncftpget not found in PATH
Where is your ncftpget program? []
Warning: ncftp not found in PATH
Where is your ncftp program? []

In beiden Fällen ist es in Ordnung ENTER zu drücken.

Bitte beachte: Falls Du auf Deinem System eine Firewall ausführst, kann es sein, dass Du sie abschalten musst während Du mit der Perl Shell arbeitest, damit die Perl Shell in der Lage ist, die benötigten Module ohne große Verzögerung zu beziehen. Danach kannst Du sie wieder anschalten.

Gib nun folgenden Befehl ein um das Perl Modul HTML::Parser zu installieren:

install HTML::Parser

Wenn die Installation erfolgreich ist, siehst Du eine Zeile wie diese am Ende:

/usr/bin/make install -- OK

Gib danach Folgendes ein

q

um die Perl Shell zu verlassen.

16 Das Ende

Die Konfiguration des Servers ist nun abgeschlossen. Wenn Du magst, kannst Du nun ISPConfig installieren.

16.1 Eine Notiz über SuExec

Wenn Du CGI Skripte unter suExec ausführen möchtest, solltest Du /var/www als den Web Root für Web Sites festlegen, die von ISPConfig erstellt werden, da CentOS' suExec mit /var/www as Doc_Root erstellt wird. Führe Folgendes aus

/usr/sbin/suexec -V

und die Ausgabe sollte wie folgt sein:

[root@server1 yum.repos.d]# /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_UID_MIN=500
-D AP_USERDIR_SUFFIX="public_html"
[root@server1 yum.repos.d]#

Wenn Du also suExec mit ISPconfig verwenden möchtest, ändere nicht den Standard Web Root (/var/www) wenn Du den Expertenmodus während der ISPConfig Installation verwendest (im Standardmodus kannst Du den Web Root sowieso nicht ändern, also kannst Du suExec in jedem Fall verwenden).

17 Links