Gerade habe ich ein PHP-Update auf meinem OwnCloud-Server durchgeführt. Nach dem Update wollte die Cloud nicht mehr und hat mir nur eine leere Seite angezeigt. Die Logs waren mir auch keine Hilfe, denn die wurden nicht beschrieben. Keine Fehlermeldungen – einfach nur eine leere Seite.
Nachdem ich die OwnCloud-Konfiguration verschoben habe wurden mir im Installer eine Menge fehlender PHP-Module angezeigt, die bei dem Update wohl irgendwie zerstört oder deinstalliert wurden. Nachdem ich dann ein paar Module installiert hatte, war auf einmal sogar php-fpm spontan verschwunden. Ich weiß bis jetzt nicht, was da mysteriöses vor sich gegangen ist, jedenfalls habe ich PHP dann komplett neu installiert. Jetzt funktioniert wieder alles.
Das nur als Tipp, falls jemandem ähnlich merkwürdiges zustößt.
Kaum einer meiner Server läuft nur mit einer einzigen Anwendung. Der Webserver, auf dem dieser Blog läuft, beherbergt nicht nur thomas-leister.de, sondern auch noch zwei andere Blogs und weitere PHP-basierte Webdienste, die ich zur Verfügung stelle. Aus Sicht eines Hackers ein lohnenswertes Ziel: Wird über eine PHP-Anwendung wie z.B. einen schlecht gepflegten WordPress-Blog Zugriff auf das Dateisystem des Servers erlangt, kann der Hacker nicht nur die unsichere Webapplikation angreifen, sondern auch alle anderen Anwendungen, die unter dem PHP-User laufen. Aus diesem Grund ist es sinnvoll, die PHP-Anwendungen etwas voneinander abzuschotten, sodass ein Angreifer von der einen PHP-Anwendung aus keine andere PHP-Anwendung beeinträchtigen kann. Dies erreicht man, indem man für jede Anwendung einen eigenen User anlegt, der PHP ausführt. Die Verzeichnisrechte werden so gesetzt, dass nur der jeweils zugedachte PHP-User Zugriff auf die Anwendungsdateien hat und keine weiteren Änderungen im Dateisystem vornehmen kann.
Heute habe ich eine neue Version meines Gravatar Privacy Proxys für WordPress fertiggestellt. Für das Plugin ist keine Einrichtung eines externen Proxyservers mehr notwendig. Die Installation wurde dadurch erheblich vereinfacht: Einfach ZIP herunterladen, in WordPress hochladen, Plugin aktivieren und fertig.
Als Proxy wird nun ein mitgeliefertes PHP-Script genutzt, welches die Anfragen an die Gravatar-Server stellt. Ein Cache für bessere Performance ist derzeit noch nicht vorhanden, aber in Planung.
Um zu verhindern, dass der integrierte Proxy unberechtigt verwendet wird, verfügt die neue Version über eine Zugriffskontrolle, die externe Zugriffe verhindert.
Auf meinen Server setze ich mittlerweile nur noch den Nginx-Webserver ein. PHP gibt es dafür nicht als Modul (so wie bei Apache), sondern es läuft als Extra-Prozess mit Socket, über den Nginx mit dem PHP-Prozess kommuniziert. In den letzten Monaten hatte ich immer wieder Probleme mit PHP. Der PHP-FPM Prozess verabschiedete sich immer wieder spontan und ohne Fehler in den Logs. Nach viel Recherche bin ich schließlich auf den rettenden Tipp gekommen: Man solle doch mal APC für PHP deaktivieren.
Dazu wird in der Datei /etc/php5/fpm/conf.d/20-apcu.ini die Zeile „extension=apcu.so“ mit einem vorangestellten Semikolon „;“ einfach auskommentiert und der PHP-FPM Service neu gestartet.
Seit der Deaktivierung von APC habe ich keine PHP-Abstürze mehr und der Webserver tut seinen Job wieder zuverlässig.
Nachdem die grundlegende Einrichtung des Nginx Webservers in diesem Beitrag bereits erklärt wurde, soll nun auf die beliebte Programmiersprache PHP eingegangen werden. Die meisten Webanwendungen (Foren, Blogsoftware, CMS) benötigen für den Betrieb PHP-Unterstützung. Im Zusammenspiel mit Nginx soll hierfür PHP-FPM genutzt werden.
Dieser Beitrag soll euch beim Einstieg in die Nginx Webserver Welt helfen – vor allem auch jenen unter euch, die das Apache Imperium verlassen wollen und auf Nginx umsteigen wollen. Die Konfigurationssyntax unterscheidet sich komplett von der des Apache Webservers, ist aber mindestens so einfach gehalten und einfach verständlich. Hier soll es um die ersten Schritte unter Ubuntu Server 14.04 gehen. Wenn ihr ein anderes Linux OS auf eurem Server nutzt, müsst ihr diese Seite aber nicht verlassen – Die Konfiguration an sich bleibt dieselbe. ;)
PHP und MySQL machen einen einfachen Webserver bereits für sehr viele Webanwendungen fit, wie z.B. Forensoftware (PhpBB, MyBB), Blogsoftware (WordPress), die OwnCloud Software oder RSS-Reader (TinyTinyRSS). Aufbauend auf meiner Anleitung zur Installation des Apache Webservers und der Konfiguration der VirtualHosts wird hier gezeigt wie PHP und MySQL installiert und mit Apache verbunden werden.
Jens hat gestern auf G+ das Content Management System GetSimple CMS erwähnt. Daraufhin habe ich mir die Open Source Software (GPL v3) man angeschaut. Eines vorweg: Ich bin begeistert!
Das CMS ist vor allem für kleine Webauftritte mit wenigen Seiten gedacht. Es ist relativ minimalistisch gehalten, kann aber über Plugins beliebig erweitert werden. Vor allem der Verzicht auf eine Datenbankanbindung kann ein entscheidender Vorteil sein. Die Daten werden als XML-Dateien auf dem Webspace abgespeichert.