Server Setup · 9 min read · Feb 09, 2026
Der perfekte Server - Ubuntu 14.04 (nginx, BIND, MySQL, PHP, Postfix, Dovecot und ISPConfig 3) - Seite 4
12 Installieren Sie Postfix, Dovecot, MySQL, phpMyAdmin, rkhunter, binutils
Wir können Postfix, Dovecot, MySQL, rkhunter und binutils mit einem einzigen Befehl installieren:
apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve sudoSie werden nach den folgenden Fragen gefragt:
Neues Passwort für den MySQL “root”-Benutzer: <– yourrootsqlpassword
Wiederholen Sie das Passwort für den MySQL “root”-Benutzer: <– yourrootsqlpassword
Allgemeine Art der Mailkonfiguration: <– Internet Site
System-Mailname: <– server1.example.com
Ein selbstsigniertes SSL-Zertifikat erstellen?: <– Ja
Öffnen Sie als Nächstes die TLS/SSL- und Übertragungsports in Postfix:
vi /etc/postfix/master.cfKommentieren Sie die Abschnitte für die Übertragung und smtps wie folgt aus - fügen Sie die Zeile -o smtpd_client_restrictions=permit_sasl_authenticated,reject zu beiden Abschnitten hinzu und lassen Sie alles danach kommentiert:
| [...] submission inet n - - - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING smtps inet n - - - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING [...] |
Starten Sie Postfix danach neu:
service postfix restartWir möchten, dass MySQL auf allen Schnittstellen hört, nicht nur auf localhost, daher bearbeiten wir /etc/mysql/my.cnf und kommentieren die Zeile bind-address = 127.0.0.1 aus:
vi /etc/mysql/my.cnf| [...] # Anstelle von skip-networking ist die Standardeinstellung jetzt, nur auf # localhost zu hören, was kompatibler ist und nicht weniger sicher. #bind-address = 127.0.0.1 [...] |
Dann starten wir MySQL neu:
service mysql restartÜberprüfen Sie jetzt, ob das Netzwerk aktiviert ist. Führen Sie aus
netstat -tap | grep mysqlDie Ausgabe sollte folgendermaßen aussehen:
root@server1:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 17300/mysqld
root@server1:~#13 Installieren Sie Amavisd-new, SpamAssassin und Clamav
Um amavisd-new, SpamAssassin und ClamAV zu installieren, führen wir aus
apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perlDie ISPConfig 3-Installation verwendet amavisd, das die SpamAssassin-Filterbibliothek intern lädt, sodass wir SpamAssassin stoppen können, um RAM freizugeben:
service spamassassin stop
update-rc.d -f spamassassin remove14 Installieren Sie Nginx, PHP5 (PHP-FPM) und Fcgiwrap
Nginx ist als Paket für Ubuntu verfügbar, das wir wie folgt installieren können:
apt-get install nginxWenn Apache2 bereits auf dem System installiert ist, stoppen Sie es jetzt…
service apache2 stop… und entfernen Sie die Systemstartlinks von Apache:
update-rc.d -f apache2 removeStarten Sie danach nginx:
service nginx start(Wenn sowohl Apache2 als auch nginx installiert sind, wird der ISPConfig 3-Installer Sie fragen, welche Sie verwenden möchten - antworten Sie in diesem Fall mit nginx. Wenn nur einer dieser beiden installiert ist, wird ISPConfig die erforderliche Konfiguration automatisch vornehmen.)
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), die wir wie folgt installieren:
apt-get install php5-fpmPHP-FPM ist ein Daemon-Prozess (mit dem Startbefehl service php5-fpm start), der einen FastCGI-Server auf dem Socket /var/run/php5-fpm.sock ausführt.
Um MySQL-Unterstützung in PHP zu erhalten, können wir das Paket php5-mysql installieren. Es ist eine gute Idee, einige andere PHP5-Module zu installieren, da Sie diese möglicherweise für Ihre Anwendungen benötigen. Sie können nach verfügbaren PHP5-Modulen wie folgt suchen:
apt-cache search php5Wählen Sie die benötigten aus und installieren Sie sie wie folgt:
apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl snmpDas PHP5 mcrypt-Modul muss manuell aktiviert werden:
php5enmod mcryptAPC ist ein kostenloser und offener PHP-Opcode-Cache zum Cachen und Optimieren von PHP-Zwischencode. Es ist ähnlich wie andere PHP-Opcode-Caches wie eAccelerator und XCache. Es wird dringend empfohlen, eines dieser Module zu installieren, um Ihre PHP-Seite zu beschleunigen.
APC kann wie folgt installiert werden:
apt-get install php-apcÖffnen Sie als Nächstes /etc/php5/fpm/php.ini…
vi /etc/php5/fpm/php.ini… und setzen Sie cgi.fix_pathinfo=0 und Ihre Zeitzone:
| [...] cgi.fix_pathinfo=0 [...] date.timezone="Europe/Berlin" [...] |
(Sie finden alle verfügbaren Zeitzonen in den Verzeichnissen /usr/share/zoneinfo und deren Unterverzeichnissen.)
Laden Sie jetzt PHP-FPM neu:
service php5-fpm reloadUm 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.
Installieren Sie das Paket fcgiwrap:
apt-get install fcgiwrapNach der Installation sollte der fcgiwrap-Daemon bereits gestartet sein; sein Socket ist /var/run/fcgiwrap.socket. Wenn er nicht läuft, können Sie das Skript service fcgiwrap verwenden, um ihn zu starten.
Das war’s! Jetzt, wenn Sie einen nginx vhost erstellen, kümmert sich ISPConfig um die korrekte vhost-Konfiguration.
14.1 Zusätzliche PHP-Versionen
Seit ISPConfig 3.0.5 ist es möglich, mehrere PHP-Versionen auf einem Server zu haben (wählbar über ISPConfig), die über PHP-FPM ausgeführt werden können. Um zu erfahren, wie Sie zusätzliche PHP-Versionen (PHP-FPM) erstellen und ISPConfig konfigurieren, überprüfen Sie bitte dieses Tutorial: So verwenden Sie mehrere PHP-Versionen (PHP-FPM & FastCGI) mit ISPConfig 3 (Ubuntu 12.10) (funktioniert auch für Ubuntu 14.04).
14.2 Installieren Sie phpMyAdmin
Installieren Sie phpMyAdmin wie folgt:
apt-get install phpmyadminSie werden die folgenden Fragen sehen:
Webserver, um automatisch neu zu konfigurieren: <– wählen Sie keine (da nur apache2 und lighttpd als Optionen verfügbar sind)
Datenbank für phpmyadmin mit dbconfig-common konfigurieren? <– Nein
Sie finden phpMyAdmin jetzt im Verzeichnis /usr/share/phpmyadmin/.
Nachdem Sie ISPConfig 3 installiert haben, können Sie phpMyAdmin wie folgt aufrufen:
Der ISPConfig-Apps-vhost auf Port 8081 für nginx kommt mit einer phpMyAdmin-Konfiguration, sodass Sie http://server1.example.com:8081/phpmyadmin oder http://server1.example.com:8081/phpMyAdmin verwenden können, um auf phpMyAdmin zuzugreifen.
Wenn Sie ein /phpmyadmin oder /phpMyAdmin-Alias verwenden möchten, das Sie von Ihren Websites aus verwenden können, ist dies etwas komplizierter als für Apache, da nginx keine globalen Aliase hat (d.h. Aliase, die für alle vhosts definiert werden können). Daher müssen Sie diese Aliase für jeden vhost definieren, von dem aus Sie auf phpMyAdmin zugreifen möchten.
Um dies zu tun, fügen Sie Folgendes in das nginx-Direktivenfeld auf der Registerkarte Optionen der Website in ISPConfig ein:
| location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include /etc/nginx/fastcgi_params; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; } location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /phpMyAdmin { rewrite ^/* /phpmyadmin last; } |
Wenn Sie http s anstelle von http für Ihren vhost verwenden, sollten Sie die Zeile fastcgi_param HTTPS on; zu Ihrer phpMyAdmin-Konfiguration wie folgt hinzufügen:
| location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_param HTTPS on; # <-- fügen Sie diese Zeile hinzu fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include /etc/nginx/fastcgi_params; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; } location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /phpMyAdmin { rewrite ^/* /phpmyadmin last; } |
Wenn Sie sowohl http als auch https für Ihren vhost verwenden, müssen Sie den folgenden Abschnitt in den http {}-Abschnitt in /etc/nginx/nginx.conf (vor allen Include-Zeilen) hinzufügen, der bestimmt, ob der Besucher http oder https verwendet und die Variable $fastcgi_https entsprechend setzt:
vi /etc/nginx/nginx.conf| [...] http { [...] ## Erkennen, wann HTTPS verwendet wird map $scheme $fastcgi_https { default off; https on; } [...] } [...] |
Vergessen Sie nicht, nginx danach neu zu laden:
service nginx reloadGehen Sie dann erneut zum nginx-Direktivenfeld und fügen Sie anstelle von fastcgi_param HTTPS on; die Zeile fastcgi_param HTTPS $fastcgi_https; hinzu, damit Sie phpMyAdmin sowohl für http- als auch für https-Anfragen verwenden können:
| location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_param HTTPS $fastcgi_https; # <-- fügen Sie diese Zeile hinzu fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include /etc/nginx/fastcgi_params; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; } location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /phpMyAdmin { rewrite ^/* /phpmyadmin last; } |
15 Installieren Sie Mailman
Seit Version 3.0.4 erlaubt ISPConfig auch die Verwaltung (Erstellen/Ändern/Löschen) von Mailman-Mailinglisten. Wenn Sie diese Funktion nutzen möchten, installieren Sie Mailman wie folgt:
apt-get install mailmanWählen Sie mindestens eine Sprache, z.B.:
Sprachen zur Unterstützung: <– en (Englisch)
Fehlende Site-Liste <– Ok
Bevor wir Mailman starten können, muss eine erste Mailingliste namens mailman erstellt werden:
newlist mailmanroot@server1:~# newlist mailman
Geben Sie die E-Mail-Adresse der Person ein, die die Liste verwaltet: <– admin E-Mail-Adresse, z.B. [email protected]
Anfängliches Mailman-Passwort: <– admin Passwort für die Mailman-Liste
Um das Erstellen Ihrer Mailingliste abzuschließen, müssen Sie Ihre /etc/aliases (oder äquivalente) Datei bearbeiten, indem Sie die folgenden Zeilen hinzufügen und möglicherweise das Programm newaliases ausführen:
Mailman-Mailingliste
mailman: “|/var/lib/mailman/mail/mailman post mailman”
mailman-admin: “|/var/lib/mailman/mail/mailman admin mailman”
mailman-bounces: “|/var/lib/mailman/mail/mailman bounces mailman”
mailman-confirm: “|/var/lib/mailman/mail/mailman confirm mailman”
mailman-join: “|/var/lib/mailman/mail/mailman join mailman”
mailman-leave: “|/var/lib/mailman/mail/mailman leave mailman”
mailman-owner: “|/var/lib/mailman/mail/mailman owner mailman”
mailman-request: “|/var/lib/mailman/mail/mailman request mailman”
mailman-subscribe: “|/var/lib/mailman/mail/mailman subscribe mailman”
mailman-unsubscribe: “|/var/lib/mailman/mail/mailman unsubscribe mailman”
Drücken Sie die Eingabetaste, um den Mailman-Besitzer zu benachrichtigen… <– ENTER
root@server1:~#
Öffnen Sie danach /etc/aliases…
vi /etc/aliases… und fügen Sie die folgenden Zeilen hinzu:
| [...] ## Mailman-Mailingliste mailman: "|/var/lib/mailman/mail/mailman post mailman" mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman" mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman" mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman" mailman-join: "|/var/lib/mailman/mail/mailman join mailman" mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman" mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman" mailman-request: "|/var/lib/mailman/mail/mailman request mailman" mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman" |
Führen Sie danach aus
newaliasesund starten Sie Postfix neu:
service postfix restartStarten Sie dann den Mailman-Daemon:
service mailman startNachdem Sie ISPConfig 3 installiert haben, können Sie Mailman wie folgt aufrufen:
Der ISPConfig-Apps-vhost auf Port 8081 für nginx kommt mit einer Mailman-Konfiguration, sodass Sie http://server1.example.com:8081/cgi-bin/mailman/admin/
Wenn Sie Mailman von Ihren Websites aus verwenden möchten, ist dies etwas komplizierter als für Apache, da nginx keine globalen Aliase hat (d.h. Aliase, die für alle vhosts definiert werden können). Daher müssen Sie diese Aliase für jeden vhost definieren, von dem aus Sie auf Mailman zugreifen möchten.
Um dies zu tun, fügen Sie Folgendes in das nginx-Direktivenfeld auf der Registerkarte Optionen der Website in ISPConfig ein:
| location /cgi-bin/mailman { root /usr/lib/; fastcgi_split_path_info (^/cgi-bin/mailman/[^/]*)(.*)$; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_intercept_errors on; fastcgi_pass unix:/var/run/fcgiwrap.socket; } location /images/mailman { alias /usr/share/images/mailman; } location /pipermail { alias /var/lib/mailman/archives/public; autoindex on; } |
Dies definiert den Alias /cgi-bin/mailman/ für Ihren vhost, was bedeutet, dass Sie auf die Mailman-Admin-Oberfläche für eine Liste unter http://
Unter http://
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.