JFolder::create: Path not in open_basedir paths
Pondělí, 11 Květen 2009 18:26
Tento problém se ukazuje napříklady při uploadu souborů, nebo při nahrávání nových komponent. Nejčastěji, pokud jsme nepoužili novou instalaci Joomly, ale pouze jsme přesouvali na hosting nebo upravovali ze zálohy.
Řešení:
-řešení může být několik, jako první je, že zkontrolujeme zda-li je adresář tmp zapisovatelný,čili má práva 777, další možností je, že máme v souboru configuration.php, v kořenovém adresáři, špatně nastavenou $tmp_path (řádek 18), pokud cestu neznáme, zkusíme si vypsat proměnnou $_SERVER['path']
Komentáře (11)
Přidej Váš komentář
Další odkazy
Spřátelené weby
Anketa
Uživatelé na chatu
- No users online

http://www.joomlahackers.net/joomla-tutorials/jfoldercreate-path-not-in-openbasedir-paths.html
Jsem jeden z nových uživatelů Joomly, problém se mi taky objevil. Děkuji všem za diskuzi a hlavně za pomoc.
Hledal jsem to chvíli, ale nakonec jsem našel to správné forum.:-)
Úprava v souboru FOLDER.PHP pomohla.
Ale bolo to zle napisane napr. som mal path: /data/a/s/web/tmp
A spravna path mala byt takto: /data/web/domena.sk/web/tmp
A este na zaver atributy adresarov tmp a logs mozu kludne ostat na 755.
moje chyba - komponenta už funguje správně, já lempl sem se překlepl v cestě zobrazovaných obrázků. Po její opravě se výpis chyb nezobrazuje a komponenta funguje správně....
děkuji za podporu :-)
Práva složek: všechny potřebné složky je možné měnit
verze joomly je Joomla! 1.5.11
Verze PHP je 5.2.9
.......zkoušim tebou doporučenej návod kterej sem si nechával na konec protože už sem ho objevil předtim, ale doufal sem že to nebude nutný........a úspěšně :-)
pro případné řešení problému ostatních přikládám můj krátký popis řešení podle daného tutoriálu který si mi poslal:
1. na ftp jsem si otevřel cestu "libraries/joomla/filesystem"
2. stáhnul soubor "folder.php".
3. otevřel jsem soubor folder.php v textovym editoru Notepad2
4. přešel jsem na řádek 208
Kde bylo:
// Iterate through open_basedir paths looking for a match
foreach ($obdArray as $test) {
$test = JPath::clean($test);
if (strpos($path, $test) === 0) {
$obdpath = $test;
$inBaseDir = true;
break;
}
}
if ($inBaseDir == false) {
// Return false for JFolder::create because the path to be created is not in open_basedir
JError::raiseWarning(
'SOME_ERROR_CODE',
'JFolder::create: ' . JText::_('Path not in open_basedir paths')
nyní jsem přepsal následující:
if (strpos($path, $test) === 0) {
jsem přepsal na:
if (strpos($path, $test) === 1) {
if ($inBaseDir == false) {
jsem přepsal na:
if ($inBaseDir == true) {
6. soubor jsem uložil
7. a nahrál(přepsal stávající) opět zpátky do "/libraries/joomla/filesystem"
instalace nové komponenty proběhla úspěšně, ale pro změnu ted nefunguje ona komponenta (pro bližší představu se jedná třeba o mod_rokslideshow která místo slideshow vypisuje několik chybových hlášek:
Warning: opendir(images/stories/[CestaZobrazovanýchObrázků]/) [function.opendir]: failed to open dir: No such file or directory in /usr/local/www/webs/com/[moje stránky]/www/modules/mod_rokslideshow/helper.php on line 19
Warning: readdir(): supplied argument is not a valid Directory resource in /usr/local/www/webs/com/[moje stránky]/www/modules/mod_rokslideshow/helper.php on line 21
Warning: closedir(): supplied argument is not a valid Directory resource in /usr/local/www/webs/com/[moje stránky]/www/modules/mod_rokslideshow/helper.php on line 28
Warning: array_multisort() [function.array-multisort]: Argument #1 is expected to be an array or a sort flag in /usr/local/www/webs/com/[moje stránky]/www/modules/mod_rokslideshow/helper.php on line 39
:-S
0. joomla! 1,5
1. použitá je nová instalace
2. hosting je XNet.cz
3. adresář tmp je zapisovatelný, má práva 777
4. var $tmp_path = '/usr/local/www/webs/com/[moje stránky]/www/tmp'; v configuration.php je identický s vypsanou cestou [SCRIPT_FILENAME] => /usr/local/www/webs/com/[moje stránky]/www/testCesty.php,
3. případné zapnutí / vypnutí ftp vrstvy nemá vliv
problém přetrvává, při pokusu o instalaci nové komponenty se vrátí chybové hlášení:
* JFolder::create: Path not in open_basedir paths
* Unable to create destination
a při pokusu o upload souborů:
* JFolder::create: Path not in open_basedir paths
* JFolder::create: Path not in open_basedir paths
tušíte někdo možné řešení?
zkuste to pote takto:
<?php
print_r($_SERVER);
?>
a tam si najdete index path.
<?php
echo $_SERVER['path'];
?>
pote tento soubor nahraj na svoje ftp, popr. do adresare kde mas webovky na pc. Pote napis do prohlizece http://www.tvojeadresa.cz/test.php a mrkni co se ti vypsalo za cestu, mela by byt stejna jako v promenne $tmp_path, v souboru configuration.php v joomle, jestli nejsou stejne zkus napsat tu adresu co se ti vypsala do te promenne tmp_path.