Upload Limit für PHP-FPM in Verbindung mit Nginx erhöhen

Standardmäßig liegt das Uploadlimit für Dateien einer Nginx Installation mit der entsprechenden PHP-Installation bei 2 MiB. Damit stößt man natürlich bei vielen Anwendungen sehr schnell an die Grenze, so z.B. beim Upload von größeren Bildern. Möchte man dies ändern, müssen sowohl die Nginx-Konfiguration als auch die PHP-Konfiguration angepasst werden. Im ersten Schritt wird die Nginx-Konfuration bearbeitet:

nano /etc/nginx/nginx.conf

Dort wird im „http“-Block die Zeile:

client_max_body_size 1024m;

hinzugefügt. Unter Umständen muss hier auch die „client_body_timeout“-Option mit einem höheren Timeout versehen werden. Dies sollte man allerdings durch eigene Tests herausfinden. Nachdem Nginx konfiguriert ist, geht es an die „php.ini“-Datei:

nano /etc/php5/fpm/php.ini

Dort müssen folgende Parameter gesetzt werden:

post_max_size = 1024M
upload_max_filesize = 1024M

Nachdem das erledigt ist, können Nginx und der PHP Service neugestartet werden:

service nginx restart
service php5-fpm restart

Anschließend verfügt man in diesem Fall über ein neues Upload Limit von 1024 MiB.

Dovecot und Punkte im IMAP

Wenn man bei einen normal konfigurierten Dovecot einen IMAP-Ordner mit dem Namen „“ anlegt, wird man im Mailprogramm folgende Ordnerstruktur zu sehen bekommen:

test@example
    org

Der Grund ist darin zu finden, das der Punkt im Falle einer Maildir-Konfiguration standardmäßig als Trennzeichen eingerichtet ist. Möchte man trotzdem IMAP Ordner mit einem Punkt anlegen, so hilft das Dovecot-Plugin „Listescape“. Die Handhabung ist dabei denkbar einfach. In der „conf.d/20-imap.conf“ wird dazu die auskommentierte Zeile:

#mail_plugins =

durch

mail_plugins = listescape

ersetzt. Nun muss in der Datei „10-mail.conf“ im vordefinierten Namespace „inbox“ der Seperator neu definiert werden:

namespace inbox {
  # Namespace type: private, shared or public
  #type = private

  separator = /

  ...
}

Er darf hier nicht auf einen Punkt gesetzt werden, da das ganze sonst nicht funktioniert. Nach einem anschließenden:

service dovecot restart

können dann auch neue Ordner mit einem Punkt im Namen angelegt werden. Auf bestehende Ordner wirkt sich das ganze allerdings nicht aus. Diese müssen bei Bedarf neu angelegt werden.

Mittels „grep“ Ordner rekursiv durchsuchen

Wenn man sich im Terminal durch Konfigurationsdateien hangelt, kann es durchaus vorkommen das man eine bestimmte Zeichenkette in den Dateien eines Ordners und dessen Unterordnern sucht. Hierfür bietet sich eine Kombination von „find“ und „grep“ an:

find . -type f -exec grep -l 'suchbegriff' {} \;

Das „find“ Kommando ermittelt dabei alle Dateien und übergibt sie dann an „grep“. Als Ausgabe erhält man anschließend eine Liste der Dateien in welchen der gesuchte Begriff enthalten ist.

Basic Authentification unter Nginx einrichten

Auch im Webserver Nginx lässt sich „Basic Authentification“ einrichten. Dazu fügt man in der entsprechenden Konfigurationsdatei im Server folgenden Block hinzu:

location / {
    auth_basic           "Access denied";
    auth_basic_user_file /var/www/example.org/.htpasswd;
}

In dem definierten Ordner wird nun eine Datei mit dem Namen „.htpasswd“ angelegt“. Dieser Datei funktioniert dabei nach dem Schema „Nutzername:Passwort“. Mittels:

openssl passwd

kann dar Passworthash für die Datei erzeugt werden. Alternativ kann das ganze auch über das „htpasswd“ Tool, welches im „apache2-utils“-Paket enthalten ist, erstellt werden:

htpasswd .htpasswd seeseekey

Die „.htpasswd“-Datei könnte dann so aussehen:

seeseekey:ppWAv1Wkrq/jg

Nach dem Neustart des Servers mittels:

sudo service nginx restart

sollte die „Basic Authentification“ funktionieren.

Weitere Informationen gibt es unter:
http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html

SSH Schlüssel aus known_hosts entfernen

Manchmal ändert sich die RSA Schlüssel für einen entfernten Server welchen man per SSH erreichen möchte. Dann bekommt man vom System eine schöne Meldung:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.

The fingerprint for the RSA key sent by the remote host is
3b:a3:48:fc:55:70:70:f8:43:33:50:73:d9:b8:1d:9e.

Please contact your system administrator.

Add correct host key in /Users/seeseekey/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/seeseekey/.ssh/known_hosts:17
RSA host key for 8.8.8.8 has changed and you have requested strict checking.
Host key verification failed.

Das Problem besteht darin, das ein alter Fingerprint in der „known_hosts“-Datei vorhanden ist. Die brachiale Methode wäre es die Datei zu löschen. Damit wäre die Verbindung mit dem Server wieder möglich. Natürlich löscht man so auch alle anderen verifizierten Server (bzw. deren Fingerprints). Sauberer ist es den veralteten Key mittels „ssh-keygen“ zu entfernen:

ssh-keygen -R 8.8.8.8

Anschließend wird man beim nächsten Verbindungsversuch wieder gefragt ob man die Verbindung akzeptieren möchte. Ist dies der Fall kann sich mit dem Server verbunden werden.