Eine neue Woche, neue Probleme Chancen, etwas zu verbessern. Am letzten Samstag hatten wir einen Ausfall eines Webhosting-Servers, bei dem die /tmp-Partition des Webhosting-Namespace vollgelaufen ist, PHP-FPM hat den Start verweigert. Dazu wurde am Sonntag ein Postmortem auf der Status-Seite veröffentlicht.

Die Änderungen, die wir daraufhin vorgenommen haben, kommen wie immer allen Kunden zugute, auch denen, die nicht von dem Ausfall betroffen waren.

Daneben gab es noch weitere Änderungen. Wesentlich verbessert wurden die Shell-Cronjobs. Der PATH wird nun automatisch so angepasst, dass „php“ immer auf die in der Verwaltung ausgewählte PHP-Version zeigt (von z.B. cd wordpress && php wp-cron.php). PHP ist zudem auch – meine Oma würde sagen von hinten durch die Brust in’s Auge – ausführbar, wenn ein Cronjob ein PHP-Script ausführt, was dann wiederum per shell_exec o.ä. wiederum php ausführt. Das scheiterte vorher an einer AppArmor-Regel. Zudem ist als Standard-Shell nun nicht mehr /bin/sh sondern /bin/bash eingestellt.

Auch in der Webserver-Umgebung unter PHP-FPM wird der PATH nun wie unter der Cronjob-Umgebung so eingestellt, dass das php-Binary immer auf die Version der Web-Version zeigt, wenn der absolute Pfad nicht angegeben ist. Das sind kleine Änderungen, aber gerade bei den Cronjobs sind damit einige Problemchen, die häufiger in Support-Tickets auftauchten, behoben und die Cronjobs sind viel einfacher zu „bedienen“.

Die meisten sonstigen Änderungen sind am Admin-Panel, einem internen Dienst und Management-Scripts passiert, aber es gibt noch ein paar weitere erwähnenswerte Änderungen, die wir durchgeführt haben:

Verwaltung:

  • Bugfix: im Domain-Check wurden bei Domains, welche nicht registrierbar sind und die deshalb keinen Preis haben, teilweise ein „500 Internal Server Error“ erzeugt, nun wird ein „Fehler bei der Prüfung“ angezeigt
  • Bugfix: kaputte Symlinks haben dazu geführt, dass im Datei-Browser beim Erstellen von Subdomains und Webseiten ein Fehler angezeigt wurde, das Problem ist nun gelöst

Webhosting:

  • Verbesserung: setze PATH für Cronjobs so, dass das bin-Verzeichnis der gewählten PHP-Version immer der erste Pfad mit php-Kommando im PATH ist
  • Verbesserung: setze SHELL für Cronjobs auf /bin/bash
  • Verbesserung: setze PATH für PHP-FPM so, dass das bin-Verzeichnis der gewählten PHP-Version immer der erste Pfad mit php-Kommando
    im PATH ist
  • Verbesserung: erlaube max. 150.000 temporäre Dateien unter /tmp pro Kunde, bevor eine Bereinigung durchgeführt wird, damit nicht alle Inodes aufgebraucht werden
  • Bugfix: behebe ein Problem, bei dem an das Zeilenende von Crontab-Einträgen ein Sonderzeichen geschrieben wurde

Das war’s dann für diese Woche. Das Wochenende wird nicht weniger warm, also wünsche ich ein schönes Wochenende!