session_start(): ps_files_cleanup_dir: opendir(/var/lib/php5) failed

Diese Fehlermeldung kann unter Umständen bei PHP auf einem Ubuntu bzw. Debian System auftreten, wenn der sogenannte Session Garbage Collector aufgrund von falschen Berechtigungen nicht laufen konnte.

session_start(): ps_files_cleanup_dir: opendir(/var/lib/php5) failed: Permission denied (13)

Auf Ubuntu / Debian System sollte ein separater Cronjob vorhanden sein, der diese Aufgabe übernimmt.
Das Problem tritt beim einfachen starten einer Session über „session_start()“ auf. Hierfür gibt es zwei Lösungen, wobei die Zweite in meinen Augen die bessere Alternative ist.

Lösung 1 geht ganz schnell. Einfach ein „@“ vor session_start() und schon kommt der Fehler nicht mehr.

@session_start();

Lösung 2 benötigt Zugriff auf die PHP.ini des Servers.
Meistens liegen zwei PHP.ini-Dateien vor. Eine für Apache2 (/etc/php5/apache2) und eine für das CLI (/etc/php5/cli). In beiden Ordnern liegt eine PHP.ini. Einfach mit einem Editor öffnen und folgenden Wert von „1“ (standardmäßig) auf „0“ setzen.

session.gc_probability = 0

Danach den Apache neustarten bzw. -laden.

[SERVER] mod_rewrite auf Strato vServer einrichten (openSUSE)

Um auf einem Starto vServer mit openSUSE die mod_rewrite Erweiterung einzurichten müssen folgende Schritte durchgeführt werden:

Schritt 1:
Per SSH mit dem Server verbinden

Schritt 2:
Das Verzeichnis „/etc/sysconfig“ öffnen

Schritt 3:
Mit einem Editor eurer Wahl die Datei „apache2“ öffnen

Schritt 4:
In der Datei folgende Zeile suchen:

APACHE_MODULES="

und vor dem Wort „php5“

rewrite

eintragen

Schritt 5:
Datei schließen und den Apache2 Dienst neustarten

/etc/init.d/apache2 restart

Nun sollte mod_rewrite funktionieren.

[SERVER] PHP5 JSON Modul auf Strato vServer nachinstallieren (openSUSE)

Ich musste letztens auf einem vServer mit openSUSE das json Modul für PHP5 nachinstallieren.
Folgende Schritte müssen durchgeführt werden:

Schritt 1:
Per SSH auf dem Server anmelden

Schritt 2:
Folgenden Befehl eingeben

yast2 --install php5-json

Dadurch wird das SUSE Setup Tool angewiesen, dass PHP5-JSON Paket herunterzuladen und zu installieren.

Schritt 3:
Danach noch

/etc/init.d/apache2 restart

Um den Apache2 Dienst neuzustarten.

Jetzt sollte in der phpinfo das Modul „json“ angezeigt werden.

Subdomains in lokaler Entwicklungsumgebung

Heute wollte ich auf meiner lokalen Entwicklungsumgebung die unter http://minibox/ erreichbar ist eine Subdomain a la http://subdomain.minibox/ einrichten, um bei der lokalen Entwicklung eine Serverumgebung zu simulieren, in der sich die Webseite nicht in einem Unterverzeichnis (http://minibox/subdomain/) befindet, sondern in der obersten Ebene des Webservers. Zunächst hatte ich einige Probleme bei der Konfiguaration aber nach ein wenig “Googlei” habe ich nun die Lösung für die Einrichtung von Subdomains innerhalb einer lokalen Entwicklungsumgebung gefunden.

Meine Konfiguration:
Windows XP
XAMPP mit Apache2
lokale Adresse des Servers: http://minibox/
IP Adresse des Servers: 192.168.1.100
Document Root des Apache: D:\lokal_dev

Zunächst muss man die Datei “httpd-vhosts.conf” in “X:\xampp\apache\conf\extra” bearbeiten.
Dort entfernt man die “#” vor “# NameVirtualHost *:80″.
Danach fügt man folgende Einträge am Ende der Datei hinzu:


  ServerAdmin admin@minibox
  DocumentRoot D:/local_dev/
  ServerName minibox
  ServerAlias minibox
  ErrorLog logs/error.log
  CustomLog logs/access.log common
  
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
  



  ServerAdmin polarwind@minibox
  DocumentRoot D:/local_dev/polarwind/
  ServerName polarwind.minibox
  ServerAlias polarwind.minibox
  ErrorLog logs/polarwind-error.log
  CustomLog logs/polarwind-access.log common
  
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
  

Das 1. VirtualHost ist die Konfiguration für die Domain “http://minibox/“. Dort steht als “DocumentRoot D:/local_dev/“. Dieser Eintrag muss mit dem aus der “httpd.conf” übereinstimmen. Als ServerName und Alias sind jeweils “minibox” eingetragen, da ich den Server über diesen Namen erreichen will.

Das 2. VirtualHost ist die Konfiguration für die Subdomain “http://polarwind.minibox/“. Hier ist das “DocumentRoot D:/local_dev/polarwind“. Also das Verzeichnis, in dem die Dateien für liegen, die über die Subdomain abrufbar sein sollen. Als ServerName und Alias stehen hier “polarwind.minibox“. Dadurch können die Inhalte aus dem DocumentRoot über “http://polarwind.minibox/” aufgerufen werden.

Nun muss noch eine weitere Datei bearbeitet werden. Und zwar die Datei “hosts“. Sie liegt bei Windows XP in “C:\WINDOWS\system32\drivers\etc“. Dort können IP Adressen mit Hostnamen verbunden werden. In meinem Beispiel trage ich eine neue Zeile ein:

192.168.1.100        minibox        polarwind.minibox

“192.168.1.100” ist die lokale IP Adresse meines Computers. Über diese IP Adresse sind die Hostnamen minibox und polarwind.minibox nun erreichbar. Somit kann ich im Browser beispielsweise polarwind.minibox eingeben und bekomme den Inhalt des vorher definierten VirtualHosts angezeigt.

Ich hoffe, dass ich mit dieser Anleitung dem ein oder anderen helfen konnte!