Server Setup · 4 min read · Oct 08, 2025

Der perfekte Server - CentOS 6.3 x86_64 (nginx, Dovecot, ISPConfig 3) - Seite 4

11 Dovecot installieren

Dovecot kann wie folgt installiert werden:

yum install dovecot dovecot-mysql

Jetzt erstellen Sie die Systemstartlinks und starten Dovecot:

chkconfig –levels 235 dovecot on
/etc/init.d/dovecot start

12 Postfix installieren

Postfix kann wie folgt installiert werden:

yum install postfix

Dann schalten Sie Sendmail aus und starten Postfix:

chkconfig –levels 235 sendmail off
chkconfig –levels 235 postfix on
/etc/init.d/sendmail stop
/etc/init.d/postfix restart

13 Getmail installieren

Getmail kann wie folgt installiert werden:

yum install getmail

14 Amavisd-new, SpamAssassin und ClamAV installieren

Um amavisd-new, spamassassin und clamav zu installieren, führen Sie den folgenden Befehl aus:

yum install amavisd-new spamassassin clamav clamd unzip bzip2 unrar perl-DBD-mysql

Dann starten wir freshclam, amavisd und clamd.amavisd:

sa-update
chkconfig –levels 235 amavisd on
chkconfig –del clamd
chkconfig –levels 235 clamd.amavisd on
/usr/bin/freshclam
/etc/init.d/amavisd start
/etc/init.d/clamd.amavisd start

15 Nginx, PHP5 (PHP-FPM) und Fcgiwrap installieren

Nginx ist als Paket für CentOS 6.3 (aus EPEL) verfügbar, das wir wie folgt installieren können:

yum install nginx

Wenn Apache2 bereits auf dem System installiert ist, stoppen Sie es jetzt…

/etc/init.d/httpd stop

… und entfernen Sie die Systemstartlinks von Apache:

chkconfig --del httpd

Dann erstellen wir die Systemstartlinks für nginx und starten es:

chkconfig –levels 235 nginx on
/etc/init.d/nginx start

(Wenn sowohl Apache2 als auch nginx installiert sind, wird der ISPConfig 3-Installer Sie fragen, welchen Sie verwenden möchten - antworten Sie in diesem Fall mit nginx. Wenn nur einer von beiden installiert ist, wird ISPConfig die notwendige Konfiguration automatisch durchführen.)

Wir können PHP5 in nginx über PHP-FPM zum Laufen bringen (PHP-FPM (FastCGI Process Manager) ist eine alternative PHP FastCGI-Implementierung mit einigen zusätzlichen Funktionen, die für Websites jeder Größe nützlich sind, insbesondere für beschäftigte Websites). Wir können php-fpm zusammen mit php-cli und einigen PHP5-Modulen wie php-mysql installieren, die Sie benötigen, wenn Sie MySQL von Ihren PHP-Skripten verwenden möchten:

yum install php-fpm php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-pecl-apc php-magickwand php-magpierss php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy

Als nächstes öffnen wir /etc/php.ini…

vi /etc/php.ini

… und ändern die Fehlerberichterstattung (damit keine Hinweise mehr angezeigt werden):

| [...] ;error_reporting = E_ALL & ~E_DEPRECATED error_reporting = E_ALL & ~E_NOTICE [...] |

Setzen Sie auch cgi.fix_pathinfo=0:

vi /etc/php.ini

| [...] ; cgi.fix_pathinfo bietet *echte* PATH_INFO/PATH_TRANSLATED-Unterstützung für CGI. PHP's ; vorheriges Verhalten war, PATH_TRANSLATED auf SCRIPT_FILENAME zu setzen und nicht zu verstehen, ; was PATH_INFO ist. Für weitere Informationen zu PATH_INFO siehe die CGI-Spezifikationen. Das Setzen ; dieser Option auf 1 bewirkt, dass PHP CGI seine Pfade an die Spezifikation anpasst. Eine Einstellung ; von null bewirkt, dass PHP sich wie zuvor verhält. Standard ist 1. Sie sollten Ihre Skripte ; so anpassen, dass sie SCRIPT_FILENAME anstelle von PATH_TRANSLATED verwenden. ; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo cgi.fix_pathinfo=0 [...] |

(Bitte lesen Sie http://wiki.nginx.org/Pitfalls, um herauszufinden, warum Sie dies tun sollten.)

Zusätzlich, um Fehler wie

[08-Aug-2011 18:07:08] PHP Warning: phpinfo(): Es ist nicht sicher, sich auf die Zeitzoneneinstellungen des Systems zu verlassen. Sie sind *verpflichtet*, die date.timezone-Einstellung oder die date_default_timezone_set()-Funktion zu verwenden. Falls Sie eine dieser Methoden verwendet haben und immer noch diese Warnung erhalten, haben Sie wahrscheinlich den Zeitzonenbezeichner falsch geschrieben. Wir haben 'Europe/Berlin' für 'CEST/2.0/DST' anstelle in /usr/share/nginx/html/info.php in Zeile 2 ausgewählt.

… in /var/log/php-fpm/www-error.log, wenn Sie ein PHP-Skript in Ihrem Browser aufrufen, sollten Sie date.timezone in /etc/php.ini setzen:

| [...] [Date] ; Definiert die Standardzeitzone, die von den Datumsfunktionen verwendet wird ; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone date.timezone = "Europe/Berlin" [...] |

Sie können die korrekte Zeitzone für Ihr System herausfinden, indem Sie ausführen:

cat /etc/sysconfig/clock

[root@server1 tmp]# cat /etc/sysconfig/clock
ZONE=”Europe/Berlin”
[root@server1 tmp]#

Als nächstes erstellen Sie die Systemstartlinks für php-fpm und starten es:

chkconfig –levels 235 php-fpm on
/etc/init.d/php-fpm start

PHP-FPM ist ein Daemon-Prozess (mit dem Init-Skript /etc/init.d/php-fpm), der einen FastCGI-Server auf Port 9000 ausführt.

Um CGI-Unterstützung in nginx zu erhalten, installieren wir Fcgiwrap.

Fcgiwrap ist ein CGI-Wrapper, der auch für komplexe CGI-Skripte funktionieren sollte und in Shared-Hosting-Umgebungen verwendet werden kann, da er es jedem vhost ermöglicht, sein eigenes cgi-bin-Verzeichnis zu verwenden.

Da es kein fcgiwrap-Paket für CentOS 6.3 gibt, müssen wir es selbst erstellen. Zuerst installieren wir einige Voraussetzungen:

yum install fcgi-devel

Jetzt können wir fcgiwrap wie folgt erstellen:

cd /usr/local/src/
git clone git://github.com/gnosek/fcgiwrap.git
cd fcgiwrap
autoreconf -i
./configure
make
make install

Dies installiert fcgiwrap nach /usr/local/sbin/fcgiwrap.

Als nächstes installieren wir das spawn-fcgi-Paket, das es uns ermöglicht, fcgiwrap als Daemon auszuführen:

yum install spawn-fcgi

Öffnen Sie /etc/sysconfig/spawn-fcgi…

vi /etc/sysconfig/spawn-fcgi

… und ändern Sie die Datei wie folgt:

| # Sie müssen einige Arbeitsoptionen festlegen, bevor der "spawn-fcgi"-Dienst funktioniert. # Wenn SOCKET auf eine Datei zeigt, wird diese Datei vom Init-Skript bereinigt. # # Siehe spawn-fcgi(1) für alle möglichen Optionen. # # Beispiel : #SOCKET=/var/run/php-fcgi.sock #OPTIONS="-u apache -g apache -s $SOCKET -S -M 0600 -C 32 -F 1 -P /var/run/spawn-fcgi.pid -- /usr/bin/php-cgi" FCGI_SOCKET=/var/run/fcgiwrap.socket FCGI_PROGRAM=/usr/local/sbin/fcgiwrap FCGI_USER=apache FCGI_GROUP=apache FCGI_EXTRA_OPTIONS="-M 0770" OPTIONS="-u $FCGI_USER -g $FCGI_GROUP -s $FCGI_SOCKET -S $FCGI_EXTRA_OPTIONS -F 1 -P /var/run/spawn-fcgi.pid -- $FCGI_PROGRAM" |

Jetzt fügen Sie den Benutzer nginx zur Gruppe apache hinzu:

usermod -a -G apache nginx

Erstellen Sie die Systemstartlinks für spawn-fcgi…

chkconfig --levels 235 spawn-fcgi on

… und starten Sie es wie folgt:

/etc/init.d/spawn-fcgi start

Sie sollten jetzt den fcgiwrap-Socket in /var/run/fcgiwrap.socket finden, der dem Benutzer und der Gruppe apache gehört (einige Skripte, z.B. Mailman, erwarten, dass sie vom Benutzer/Gruppe apache ausgeführt werden, weshalb wir spawn-fcgi nicht als Benutzer/Gruppe nginx ausführen, sondern stattdessen nginx zur apache-Gruppe hinzufügen).

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.