Warnung:file_exists() [function.file-exists]:open_basedir-Einschränkung in Kraft. Datei (/home/user_name/public_html/wp-content/uploads/2006/12/picture.jpg) befindet sich nicht innerhalb der zulässigen Pfade:(/home/user_name:/usr/lib/php:/usr/local /lib/php:/tmp) in /home/user_name/public_html/wp-admin/inline-uploading.php auf Zeile 226
Die obige Fehlermeldung erscheint in einem Apache httpd-Webserver-Fehlerprotokoll (error_log), das WordPress-Blog hostet. Das Problem kann jedoch bei allen Systemen oder Websites auftreten, die PHP als Skriptsprache verwenden.
Die Lösung oder Umgehung des open_basedir-Einschränkungsproblems besteht darin, den PHP-open_basedir-Schutz vollständig zu deaktivieren oder den Schutz für bestimmte privilegierte Benutzerkonten auszuschließen oder den Zugriff auf das zusätzliche Verzeichnis für PHP-Skripte zu ermöglichen.
Wenn Sie cPanel WebHost Manager (WHM) verwenden, können Sie den PHP open_basedir-Schutz einfach deaktivieren oder bestimmte Benutzer vom Schutz mit WHM ausschließen. Gehen Sie einfach zu „Tweak Security“ im Abschnitt „Security“ und wählen Sie dann den Link „Configure“ für „Php open_basedir Tweak“. Darin können Sie den php open_basedir-Schutz aktivieren oder deaktivieren oder Hosts vom Schutz ausschließen oder einbeziehen.
Wenn Sie das Plesk Hosting Control Panel verwenden, müssen Sie möglicherweise die Apache-Konfigurationsdatei vhost.conf und vhost_ssl.conf manuell bearbeiten und die folgenden php_admin_value open_basedir-Zeilen zu Folgendem hinzufügen oder bearbeiten:
<Directory /full/path/to/the/directory/httpdocs> php_admin_value open_basedir none </Directory> <Directory /full/path/to/the/directory/httpdocs> php_admin_value open_basedir /full/path/to/dir:/full/path/to/directory/httpdocs:/tmp </Directory>
Hinweis:Für SSL-Hosts in der Datei vhost_ssl.conf endet der Verzeichnispfad mit „httpsdocs“ anstelle von „httpdocs“.
Die Pfade (oben ist nur ein Beispiel und müssen durch einen echten Pfad ersetzt werden), die sich hinter open_basedir befinden, sind die Verzeichnisse, die den PHP-Skripten im vhost-Domänenkonto ausdrücklich den Zugriff ermöglicht haben, sodass Sie weitere Verzeichnisse hinzufügen können, in denen Dateien gespeichert und benötigt werden von PHP zu öffnen, jeweils getrennt durch Farbe „:“. Aber seien Sie vorsichtig, da dies Ihr System Sicherheitsbetrug aussetzen könnte.
Führen Sie anschließend den folgenden Befehl aus, damit die Änderungen wirksam werden, und starten Sie dann den Apache httpd-Webserver neu (apache2ctl restart oder httpd restart):
$PRODUCT_ROOT_D/admin/sbin/websrvmng -v -a
Wenn Sie die Apache-Konfigurationsdatei manuell bearbeiten müssen, um den PHP-open_basedir-Schutz zu deaktivieren, öffnen Sie einfach die Datei httpd.conf und suchen Sie nach den Zeilen, die mit den folgenden Zeichen beginnen:
php_admin_value open_basedir …..
Ersetzen Sie die gesamte Zeile unter dem virtuellen Host für das Domänenbenutzerkonto, für das Sie den Schutz deaktivieren möchten, durch die folgende Zeile, um ihn zu deaktivieren:
php_admin_value open_basedir none
Sie können sich auch dafür entscheiden, Ihren PHP-Skripten den Zugriff auf zusätzliche Verzeichnisse zu erlauben, ohne den Schutz zu deaktivieren. Der Zeile können weitere Verzeichnisse hinzugefügt werden, getrennt durch ein farbiges „:“. Zum Beispiel, um /new_directory zur Zulassungsliste hinzuzufügen:
php_admin_value open_basedir "/home/user_account/:/usr/lib/php:/usr/local/lib/php:/tmp"
php_admin_value open_basedir "/home/user_account/:/usr/lib/php:/usr/local/lib/php:/tmp:/new_directory"
Starten Sie den Apache nach Abschluss der Bearbeitung neu. Beachten Sie, dass die obige Beschränkung der Liste der zulässigen Verzeichnisse tatsächlich ein Präfix und kein Verzeichnisname ist. Das bedeutet, dass „open_basedir =/dir/incl“ auch den Zugriff auf „/dir/include“ und „/dir/incls“ erlaubt, falls diese existieren. Wenn Sie den Zugriff nur auf das angegebene Verzeichnis beschränken möchten, enden Sie mit einem Schrägstrich. Zum Beispiel:„open_basedir =/dir/incl/“.