How-To: Was tun, wenn setlocale nur false zurück gibt

Posted by in Administration, Allgemein, Debian, Linux, PHP, Server

Heute hatte ich auf einem Kundenserver das Problem, dass die PHP-Funktion setlocale nicht so funktionierte wie gedacht. Konkret gab der Aufruf

setlocale (LC_ALL, 'de_DE');

nur false zurück.

Eine Locale auf einem Ubuntu-Server hinzufügen

Die Ursache war auch recht schnell gefunden. Die entsprechende Locale war auf dem Server nicht eingerichtet. Dies kann man auf einer Linux Console (zum Beispiel eine SSH Console) sehr einfach nachprüfen. Mit dem folgenden Befehl kann man sich alle aktuell eingerichteten Locales anzeigen lassen:

less /usr/share/i18n/SUPPORTED

Bei Bedarf kann man nun die fehlende Locale einrichten:

locale-gen de_DE
locale-gen de_DE.UTF8

Nach einem Neustart des Apache steht die Locale dann auch schon zur Verfügung.