JFolder::create: Infinite loop detected
Warning! Failed to move file.
Warning: is_dir() [function.is-dir]: open_basedir restriction in effect. File(/) is not within the allowed path(s): (/var/www/webxxx/html/:/var/www/webxxx/phptmp/:/var/www/webxxx/files/:/var/www/webxxx/atd/) in /var/www/webxxx/html/site/libraries/joomla/filesystem/folder.php on line 362
Warning: is_dir() [function.is-dir]: open_basedir restriction in effect. File(/) is not within the allowed path(s): (/var/www/webxxx/html/:/var/www/webxxx/phptmp/:/var/www/webxxx/files/:/var/www/webxxx/atd/) in /var/www/webxxx/html/site/libraries/joomla/filesystem/folder.php on line 362
Lösung:
Naja wie soll ich es sagen... die Funktion is_dir(), is _file() usw. verhalten sich im Safe Mode etwas komisch. Du kannst mit diesen Funktionen nur Ordner und Dateien prüfen die in dem angegebenen Pfaden liegen. Außerhalb dieser Pfade kommt halt ein Fehler.
Da gibt's dann nur drei Möglichkeiten:
1. warten bis PHP ein fix bereitstellt
2. die Funktionen nicht benutzen
3. Safe Mode abstellen
Letzteres kannst du zum Bsp. über eine htaccess Datei tun.
Bedenke allerdings dass dann zahlreiche Sicherheitsfeatures für deine Domain abgeschalten sind.
Oder:
Das Problem bei der Installation ist tatsächlich der abschließende Slash "/" am Ende der Pfadangabe von open_basedir. Diese Variable wird vom Webanbieter eingestellt (zumindest bei mir). Daher entzieht sich der Zugriff darauf.
Jedoch gibt es eine wesentlich elegantere Lösung. Wird Joomla einfach in einem Unterverzeichnis, zum Beispiel /joomla1, installiert, können später weitere Versionen installiert werden. Damit die Seite aber ohne störender Pfadangabe, wie zum Beispiel "www.meineSeite.de/joomla1", zu addressieren ist, muss im Confixx eine Weiterleitung auf /joomla1 eingestellt werden. Damit hat sich auch das Problem mit open_basedir erledigt.
Auch gut:
/**
* Wrapper for the standard file_exists function
*
* @param string $path Folder name relative to installation dir
* @return boolean True if path is a folder
* @since 1.5
*/
function exists($path)
{
return is_dir('JPath::clean($path)/');
}