PHP Probleme nach Update in Ubuntu: open_basedir restriction in effect

Wer heute morgen kurz die von der Paketverwaltung angebotenen Updates unter Ubuntu 10.04 einspielen wollte, wurde bei dem PHP5 Paket böse überrascht. Die Probleme betreffen aber auch Ubuntu 8.04 LTS sowie 10.10.
Es werden in erster Linie Server im Zusammenhang mit Plesk Probleme bekommen, da hierbei der Verzeichniszugriff PHP’s über open_basedir geregelt wird.
Folgende Fehlermeldung erscheint nach dem Update im error_log unter /var/www/vhosts/site1/statistic/log/error_log

PHP Warning:  Unknown: failed to open stream: Operation not permitted in Unknown on line 0
PHP Fatal error:  Unknown: Failed opening required '/var/www/vhosts/site/xxx.php' (include_path='.:') in Unknown on line 0
PHP Warning:  Unknown: open_basedir restriction in effect. File(/var/www/vhosts/site/xxx.php) is not within the allowed path(s): 
(/var/www/vhosts/site/:/tmp/) in Unknown on line 0

open_basedir Probleme

Das Problem scheint bekannt zu sein als ein alter Bug seitens der PHP Entwickler. Dass gerade jetzt ein Paket veröffentlich wird, das eigentlich im November letzten Jahres schon gefixt wurde, ist mehr als unerklärlich.
Ein Bug wurde in Launchpad indes schon gemeldet.

Mögliche Lösungen

Wirklich vernünftig scheint mir momentan keine Lösung zu sein. Da mein Server heute morgen selbst zwei Stunden lahm gelegt wurde, habe ich mich dann kurzfristig für die Lösung mit der vhost.conf entschieden. Zumindest vorerst einmal, bis dann hoffentlich bald ein gefixtes

Apache Modul weg, FastCGI her

Die erste Lösung wäre, in Plesk auf FastCGi umzuschalten.
Dies wird unter der jeweiligen Domain in den Hostingeinstellungen vorgenommen.

vhost.conf erstellen

Da das Problem im Grunde genommen nur daran liegt, dass ein / (Slash) am Ende eines jeden Directories in der httpd.include von Plesk steht, kann man auch einfach für jede domain (Achtung: Gilt nicht für subdomains) eine eigene vhost.conf erstellen.
Diese wird unter /var/www/vhosts/site.de/conf/vhost.conf mit folgendem Inhalt erstellt:

<Directory /var/www/vhosts/site.de/httpdocs>
<IfModule mod_php5.c>
php_admin_value open_basedir /var/www/vhosts/site.de/httpdocs:/tmp
</IfModule>
</Directory>

Damit die Konfiguration wirksam wird, noch kurz die Configs neu aufbauen lassen

/usr/local/psa/admin/sbin/websrvmng -v -a

Altes PHP5 Paket einspielen

Wer noch ein altes PHP5 Paket auf seinem Server hat und dies nicht zwischenzeitlich mittels

apt-get clean

wieder entfernt hat, kann dies mit

dpkg -i /var/cache/apt/archives/php5_5.3.2-1ubuntu4.5_all.deb

installieren.
Aber Achtung: Das nächst Update sei überlegt, denn dann wird das fehlerhafte php5_5.3.2_1ubuntu4.6_all.deb wieder eingespielt.

[UPDATE 13.01.2010]

Schon wurde das Problem gefixt: die aktualisierte Version von PHP5 (5.3.2-1ubuntu4.7) behebt die mit dem Update eingespielten open_basedir Probleme!

Dieser Beitrag wurde unter Linux / Unix, PHP, Plesk abgelegt und mit , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.