Debian

Webserver Setup mit Nginx, Percona und PHP-FPM

In diesem Beitrag notiere ich kurz wie ich aktuell einen neuen Webserver unter Debian Squeeze einrichte. Er dient in erster Line als Reminder für mich selbst daher sind die Erklärungen auf das Wesentliche beschränkt. Vielleicht sind aber trozdem ein paar nützliche Informationen dabei weshalb ich mich dazu entschlossen habe einen Blogeintrag daraus zu machen. Ich werde versuchen den Beitrag hin und wieder zu aktualiseren (z.B. demnächst für Debian Wheezy).

Inhalt


Vorbereitung

Erklärung: Hier ändere ich den SSH-Port, lege einen neuen User an welcher sich mit einem Key authentifiziert. Der direkte Login mit dem User root wird deaktiviert. Bei Änderungen am sshd empiehlt es sich während der ganzen Zeit einen zweite root-shell göffnet zu lassen für denn Fall, dass man sich nach einem sshd Neustart nicht mehr einloggen kann. Read More…

Fork me on GitHub

PPTP VPN Tunnel – Ein paar Tipps

Vor kurzem habe ich einen VPN-Server aufgesetzt und habe mich dabei für das PPTP entschieden. Auf die grundlegende Installation unter Debian möchte ich hier nicht eingehen denn dafür gibt es bereits genügen Anleitungen im Netz. (z.B. hier)

Allerdings waren (zumindest bei mir) nach der Installation noch einige kleine Kniffe notwendig bis der Tunnel vernünftig lief. An dieser Stelle noch kurz der Hinweis, dass als Clients Windows 7 bzw. Windows XP Rechner zum Einsatz kommen.

Problem 1: Clients können sich einwandfrei verbinden, es können jedoch keine Daten empfangen werden.
Lösung: Damit der Server empfangene Daten zu den Clients “weiterrouten” kann ist eine IPTables Regel notwendig. Bei mir brachte folgendes die Lösung:

iptables --table nat --append POSTROUTING  --out-interface eth0 --jump MASQUERADE

Read More…

Wechsel von PHP-CGI zu PHP-FPM

Da ich hier schon längere Zeit nichts mehr geschrieben habe, habe ich beschlossen nun auch kürzere, weniger aufwendige Artikel zu veröffentlichen, um hier mal wieder etwas Leben in die Bude zu bekommen. Jetzt aber zum Thema:

Aus einem mir unbekannten Grund verabschiedeten sich auf meinem Debian Squeeze Server die PHP-CGI Prozesse mit folgender Meldung im Error-Log:

(mod_fastcgi.c.3001) backend is overloaded; we'll disable it for 1 seconds and send the request to another backend instead

Ich habe zwar eine generelle Lösung für dieses Problem gefunden (Link), diese konnte ich bei meiner Serverkonfiguration aber leider nicht anwenden. Da ich mehrere PHP-CGI-Pools mit verschiedenen UIDs/GIDs starte und diese in der Lighttpd-Config über die Sockets zuordne, konnte ich hier den “var.PID” Teil nicht anhängen. Davon abgesehen hatte es vorher viele Monate ohne diese Änderung funktioniert. Also habe ich mich kurzerhand dazu entschlossen zu PHP-FPM zu wechseln.
Read More…

Asynchrone PHP Prozesse mit Gearman

Gearman Es kommt immer wieder vor, dass man aus einem PHP-Script heraus ein Anderes aufrufen möchte welches dann eine bestimmt Aufgabe erledigt. Dies ist z.B. sinnvoll wenn die Aufgabe länger dauert und man nicht im Script darauf warten möchte, wie etwa beim Erstellen von Bildern in verschiedenen Größen.
Ich hatte bereits vor einiger Zeit über eine Möglichkeit berichtet PHP-Script im Hintergrund auszuführen.
Diese Möglichkeit ist allerdings nicht wirklich schön und hat auch einige Nachteile. Z.B. kann man nur schwer abfragen wie der aktuelle Status des Scripts ist und auch die Verteilung auf verschiedene Server ist nicht trivial. Darum möchte ich hier eine wesentlich elegantere Möglichkeit vorstellen PHP-Prozesse asynchron laufen zu lassen. Und zwar mit Hilfe von Gearman: Read More…

Lighttpd, mod_rewrite und die htaccess

Lighttpd LogoEins der wohl häufigsten Probleme bei der Umstellung von Apache auf Lighttpd ist sicherlich die Migration der htaccess Dateien. Grund dafür ist, dass (zumindest bis vor kurzem) das mod_rewrite Modul des Lighttpd nicht prüfen konnte ob eine Datei existiert und die Rewrite-Regeln somit immer angewendet wurden. Dieses Problem konnte man durch die Verwendung von mod_magnet und LUA zwar umgehen allerdings müssen dann alle rewrite-Regeln in LUA neu geschrieben werden, was nicht immer ganz trivial ist. Read More…

ftplicity unter Debian Lenny

Mit dem Update von Debian Etch auf Lenny wird unter anderem die Duplicity Version aktualisiert. In der aktualisierten Version haben sich allerdings einige Parameter geändert weswegen die Ftplicity Version von heise nicht mehr korrekt funktioniert. Eine Lösung habe ich gerade bei weareroot.de gefunden. Dort wird eine angepasste Ftplicity Version angeboten, welche auch unter Debian Lenny korrekt zu funktionieren scheint. Ich konnte bei meinen Tests zumindest bis jetzt noch keine Fehler feststellen. Danke dafür!

policyd-weight DNS-Blacklists anpassen

Zum Schutz vor Spam-Emails verwende ich policyd-weight auf meinem Mailserver. Bei der Installation auf Debian Etch (via apt-get) war bei mir jedoch eine veraltete DNS-Blacklist in der config eingetragen. Bemerkbar machte sich das durch eine Error-Meldung in der policyd-weight Zeile des Mailheaders:

1
X-policyd-weight:  <strong>DYN_NJABL=ERR</strong> NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 CL_IP_EQ_FROM_IP=-2 ...

Die Blacklisten und der entsprechende Score-Wert sind in der Datei /etc/policyd-weight.conf eingetragen. Dort einfacht die veraltete Liste dynablock.njabl.org durch eine gleichwertige aktuelle ersetzen. Ich habe mich für zen.spamhaus.org entschieden.

SVN Apache Modul und Vhosts

Nach der Installation eines SVN-Servers und dem Apache Modul libapache2-svn auf meinem Debian-Etch System hatte ich ein kleines Problem mit der Default-Config auf welches ich hier kurz eingehen möchte.
Um ein Repository über http(s) erreichbar zu machen wird stardardmäßig die Datei /etc/apache2/mods-available/dav_svn.conf verwendet. Hier finden sich ein paar Zeilen welche in etwas so aussehen:
Read More…

Nachtrag zum Postfix Logging (Logrotate)

Hier habe ich ja bereits ein paar Worte zum Log-Verhalten von Postifx verloren, eine Kleinigkeit habe ich jedoch vergessen, und möchte Sie hiermit nachtragen.
Wenn man Postfix so anpasst, dass es nur noch in die Datei mail.log schreibt sollte man diese noch in das logrotate von Debian mit aufnehmen. Standardmäßig ist das nicht der Fall.
Damit die Datei mit in die täglich Log-Rotation aufgenommen wird kann man beispielsweise folgende Zeilen in der Date /etc/logrotate.conf ergänzen:

1
2
3
4
5
6
7
8
/var/log/mail.log {
    missingok
    daily
    rotate 7
    create
    compress
    start 0
}

Postfix Logging auf Debian Etch

Kürzlich ist mir aufgefallen, dass der MTA Postfix nach der Default-Installation (via apt-get) auf einem Debian Etch System in verschiedene Dateien loggt. Es werden die Dateien mail.err, mail.info, mail.warn, mail.log und syslog benutzt. Das ist zwar etwas unübersichtlich aber erstmal nicht schlimm, würden nicht einige Informationen redundant gespeichert. Die Dateien mail.log, mail.info und syslog enthalten nahezu identische Logs bzgl. MTA und Mailserver.

Ich habe mein System nun so angepasst dass alle Logs von Postfix nur noch in der Datei mail.log gespeichert werden. Dazu müssen in der Datei /etc/syslog.conf einige kleinere Änderungen vorgenommen werden:
Read More…

1 2  Scroll to top