Der Perfekte Server - Ubuntu 11.10 mit nginx [ISPConfig 3] - Seite 4

12 Installation von Postfix, Courier, Saslauthd, MySQL, rkhunter,
binutils Sie können Postfix, Courier, Saslauthd, MySQL, rkhunter und binutils mit einem einzigen Befehl installieren:

apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl getmail4 rkhunter binutils maildrop

Sie werden die folgenden Fragen gefragt werden:

New password for the MySQL "root" user: <-- IhrrootSQLPasswort Repeat password for the MySQL "root" user: <-- IhrrootSQLPasswort Create directories for web-based administration? <-- No General type of mail configuration: <-- Internet Site System mail name: <-- server1.example.com SSL certificate required <-- Ok
Sollten Sie später herausfinden (später, nachdem Sie in ISPConfig Ihren erstes Mailkonto angelegt haben), dass Sie keine Mails versenden können und folgender Fehler in /var/log/mail.log auftaucht...

SASL LOGIN authentication failed: no mechanism available

... gehen Sie bitte auf http://www.howtoforge.com/forums/showpost.php?p=265831&postcount=25 um zu erfahren, wie man den Fehler behebt.

Wir wollen, dass MySQL alle Interfaces überprüft, nicht nut localhost. Editieren Sie deshalb /etc/mysql/my.cnf und kommentieren Sie die Zeile bind-address = 127.0.0.1 aus:

vi /etc/mysql/my.cnf


[...]
# Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1 [...]
Starten Sie MySQL dann neu:

/etc/init.d/mysql restart

Überprüfen Sie nun, ob Networking erlaubt ist. Benutzen Sie dazu

netstat -tap | grep mysql

Die Ausgabe sollte etwa so aussehen:

root@server1:~# netstat -tap | grep mysql
tcp        0      0 *:mysql                 *:*                     LISTEN      22355/mysqld
root@server1:~#

Während der Installation werden die SSL Zertifikate für IMAP-SSL und POP3-SSL mit dem Hostnamen localhost erstellt. Um den korrekten Hostnamen anzugeben (server1.example.com in diesem Tutorial) löschen Sie die Zertifikate...

cd /etc/courier
rm -f /etc/courier/imapd.pem
rm -f /etc/courier/pop3d.pem

... und modifizieren die folgenden zwei Dateien; ersetzen Sie CN=localhost mit CN=server1.example.com (Sie können auch die anderen Werte ändern, sollte dies nötig sein):

vi /etc/courier/imapd.cnf


[...]
CN=server1.example.com [...]

vi /etc/courier/pop3d.cnf


[...]
CN=server1.example.com [...]
Replizieren Sie dann die Zertifikate...

mkimapdcert
mkpop3dcert

... und starten Courier-IMAP-SSL und Courier-POP3-SSL neu:

/etc/init.d/courier-imap-ssl restart
/etc/init.d/courier-pop-ssl restart


13 Installation von Amavisd-new, SpamAssassin und Clamav

Um amavisd-new, SpamAssassin und ClamAV zu installieren führen Sie folgendes 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-perl

Das ISPConfig 3 Setup benutzt amavisd, welches die SpamAssassin Filter Library intern lädt, sodass Sie SpamAssassin beenden können um ein wenig RAM zu gewinnen:

/etc/init.d/spamassassin stop
update-rc.d -f spamassassin remove


14 Installation von Nginx, PHP5 (PHP-FPM) und Fcgiwrap

Nginx ist für Ubuntu als Paket verfügbar, installieren Sie es wie folgt:

apt-get install nginx

Ist bereits Apache auf dem System installiert, stoppen Sie es nun...

/etc/init.d/apache2 stop

... und entfernen Apaches Systemstartlinks:

insserv -r apache2

Starten Sie nginx danach neu:

/etc/init.d/nginx start

(Sind sowohl Apache als auch nginx installiert wird Sie der Installer fragen, welches von ihnen Sie benutzen wollen -  antworten Sie hier nginx. Ist nur eins von beiden installiert, wird ISPConfig die nötige Konfiguration von automatisch vornehmen.)

PHP5 lässt sich in nginx mit PHP-FPM benutzen (PHP-FPM (FastCGI Process Manager) ist eine alternative PHP FastCGI Implementierung mit einigen zusätzlichen, für Seiten jeder Größenordnung nützlichen Features, vor allem aber für ausgelastetere Seiten). Installieren Sie es folgendermaßen:

apt-get install php5-fpm

PHP-FPM ist ein Daemon-Prozess (mit dem init-Script /etc/init.d/php5-fpm), der einen FastCGI Server auf dem Port 9000 betreibt.

Um MySQL Unterstützung in PHP zu erhalten, müssem Sie das php5-mysql Paket installieren. Es ist außerdem immer gut, einige andere PHP5 Module zu installieren, da Sie diese für Ihre Anwendungen brauchen könnten. Sie können folgendermaßen nach verfügbaren PHP5 Modulen suchen:

apt-cache search php5

Wählen Sie die aus, die Sie brauchen und installieren Sie sie:

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

APC ist ein kostenloser und offener PHP opcode Cacher zum Cachen und Optimieren von PHP intermediate Code, es ist anderen opcode Cachern wie eAccelerator und XCache ähnlich. Es wird dringlichst empfohlen einen von diesen auf Ihrer PHP Seite installiert zu haben.

APC kann wie folgt installiert werden:

apt-get install php-apc

Starten Sie PHP-FPM nun neu:

/etc/init.d/php5-fpm restart

Für CGI Unterstützung in nginx installieren Sie Fcgiwrap.

Fcgiwrap ist ein CGI Wrapper der auch für komplexe CGI Skripts funktionieren sollte und für geteilte Hosting Umgebungen benutzt werden kann da es jedem vhost erlaubt, sein eigenes cgi-bin Verzeichnis zu benutzen.

Installieren Sie das fcgiwrap Paket:

apt-get install fcgiwrap

Nach der Installation sollte der fcgiwrap Daemon bereits gestartet worden sein; sein Socket ist /var/run/fcgiwrap.socket. Sollte dies nicht der Fall sein, können Sie das /etc/init.d/fcgiwrap Skript benutzen um ihn zu starten.

Das war es. Wenn Sie nun einen nginx vhost erstellen, wird sich ISPConfig um die korrekte vhost Konfiguration kümmern.

14.1 Installation von phpMyAdmin

Installieren Sie nun phpMyAdmin:

apt-get install phpmyadmin

Ihnen werden die folgenden Fragen gestellt:

Web server to reconfigure automatically: <-- wählen Sie keinen (da nur apache2 und lighttpd als Optionen verfügbar sind) Configure database for phpmyadmin with dbconfig-common? <-- No
Sie können phpMyAdmin nun im /usr/share/phpmyadmin/ Verzeichnis finden.

Nachdem Sie ISPConfig installiert haben, können Sie folgendermaßen auf phpMyAdmin zugreifen:

Der ISPConfig Apps vhost auf Port 8081 für nginx liefert eine phpMyAdmin Konfiguration mit, Sie können deshalb http://server1.example.com:8081/phpmyadmin oder http://server1.example.com:8081/phpMyAdmin benutzen, um auf phpMyAdmin zuzugreifen.

Wollen Sie ein /phpmyadmin oder /phpMyAdmin Alias einrichten, dass Sie von Ihren Webseiten aus benutzen können, ist dies etwas komplizierter als für Apache, da nginx keine globalen Aliase hat (also Aliase, welche für alle vhosts definiert werden können). Sie müssen Ihre Aliase deshalb für jeden vhost definieren, von dem aus Sie auf phpMyAdmin zugreifen wollen.

Um dies zu tun, fügen Sie folgendes in das nginx Directives Feld im Options Reiter der Webseite 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 127.0.0.1:9000; 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; }
Benutzen Sie für Ihren vhost https statt http, sollten Sie die Zeile fastcgi_param HTTPS on; zu Ihrer phpMyAdmin Konfiguration 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 127.0.0.1:9000; 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; }
Benutzen Sie für Ihren vhost sowohl http als auch https, müssen Sie die folgende Sektion zur http {} Sektion in /etc/nginx/nginx.conf hinzufügen (vor jeglichen include Zeilen) welche überprüft, ob der Besucher http oder https benutzt und dementsprechend die $fastcgi_https Variable setzt (welche in der phpMyAdmin Konfiguration benutzt wird):

vi /etc/nginx/nginx.conf

[...]
http { [...] ## Detect when HTTPS is used map $scheme $fastcgi_https { default off; https on; } [...] } [...]
Vergessen Sie nicht, nginx danach neu zu starten:

/etc/init.d/nginx reload

Gehen Sie danach wieder in das nginx Directives Feld und anstatt der Zeile fastcgi_param HTTPS on; fügen Sie nun  fastcgi_param HTTPS $fastcgi_https; hinzu, sodass Sie phpMyAdmin sowohl für http als auch für https Anfragen benutzen 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 127.0.0.1:9000; 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 Installation von Mailman

Ab Version 3.0.4 unterstützt ISPConfig die Verwaltung von Mailman Mailinglisten (Erstellen/Modifizieren/Löschen). Wollen SIe von dieser Neuerung Gebrauch machen, installieren Sie Mailman wie folgt:

apt-get install mailman

Bevor Sie Mailman starten können, müssen Sie zunächst eine erste Mailingliste namens mailman erstellen:

newlist mailman

root@server1:~# newlist mailman
Enter the email of the person running the list:
<-- Admin Email Adresse, z.B. info@example.com Initial mailman password: <-- Admin Password für die Mailman Liste To finish creating your mailing list, you must edit your /etc/aliases (or
equivalent) file by adding the following lines, and possibly running the
`newaliases' program:

## mailman mailing list
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"

Hit enter to notify mailman owner... <-- ENTER
root@server1:~#
Öffnen Sie danach /etc/aliases ...

vi /etc/aliases

... und fügen die folgenden Zeilen hinzu:
[...]
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"
Benutzen Sie dann

newaliases

und starten Postfix neu:

/etc/init.d/postfix restart

Starten Sie danach den Mailman Daemon:

/etc/init.d/mailman start

Nachdem Sie ISPConfig 3 installiert haben, können Sie folgendermaßen auf Mailman zugreifen:

The ISPConfig Apps vhost auf Port 8081 für nginx liefert eine Mailman Konfiguration, Sie können daher  http://server1.example.com:8081/cgi-bin/mailman/admin/<listname> oder http://server1.example.com:8081/cgi-bin/mailman/listinfo/<listname> benutzen, um auf Mailman zuzugreifen.

Wollen Sie Mailman von Ihren mit ISPConfig erstellten Webseiten nutzen, ist dies mit nginx etwas komplizierter als mit Apache, da nginx keine globalen Aliase hat (also Aliase, welche für alle vhosts definiert werden können). Sie müssen Ihre Aliase deshalb für jeden vhost definieren, von dem aus Sie auf phpMyAdmin zugreifen wollen.

Um dies zu tun, fügen Sie folgendes in das nginx Directives Feld im Options Reiter der Webseite 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 das Alias /cgi-bin/mailman/ für Ihren vhost, was bedeutet, dass Sie per http://<vhost>/cgi-bin/mailman/admin/<listname> für eine Liste auf die Mailman Administrator-Kontrolloberfläche
zugreifen können; die Webseite für Benutzer einer Mailingliste kann unter http://<vhost>/cgi-bin/mailman/listinfo/<listname> gefunden werden.

Unter http://<vhost>/pipermail können Sie die Mailinglisten-Archive finden.

0 Kommentar(e)

Zum Posten von Kommentaren bitte