Nepochopitelna chyba na novem serveru
- Royce
- Člen | 15
78×
PHP Warning: include(): open_basedir restriction in effect. File() is not within the allowed path(s): (/var/www/clients/client5/web6:.:/usr/share/php5:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin) in /var/www/clients/client5/web6/libs/Nette/Loaders/LimitedScope.php:66
1×
PHP Warning: require(): open_basedir restriction in effect. File() is not within the allowed path(s): (/var/www/clients/client5/web6:.:/usr/share/php5:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin) in /var/www/clients/client5/web6/libs/Nette/Debug/DebugHelpers.php:73
1×
PHP Warning: require(): open_basedir restriction in effect. File() is not within the allowed path(s): (/var/www/clients/client5/web6:.:/usr/share/php5:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin) in /var/www/clients/client5/web6/libs/Nette/Debug/DebugHelpers.php:76
1×
PHP Warning: require(): open_basedir restriction in effect. File() is not within the allowed path(s): (/var/www/clients/client5/web6:.:/usr/share/php5:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin) in /var/www/clients/client5/web6/libs/Nette/Debug/DebugHelpers.php:84
Web normálně jede, ale laděnka na mě řve 80 chyb… navíc mi fakt nedávají smysl, protože závorky u require() a File() jsou prázdné což nebývá.
Jinak nette version 2.0-dev 9f535f9
- ras
- Člen | 135
Pridavam se k teto chybe. Web mi fungoval a pak jsem zmenil strukturu od te doby uz mi nefunguje. Hlaseni Ladenky je vtipne
RuntimeException
SplFileInfo::isFile(): open_basedir restriction in effect. File(/var/www/clients/client25/web101/web_app/..) is not within the allowed path(s): (/var/www/clients/client25/web101/web:/var/www/clients/client25/web101/web_app:/var/www/clients/client25/web101/web_app/:/var/www/clients/client25/web101/tmp
Puvodni struktura byla
root
- web
- web2
---- app
---- libs
atd.
nova struktura je
root
- web
- web_app
- web_libs
atd.
index.php riak
// the identification of this site
define('SITE', 'www.example.cz');
// absolute filesystem path to the web root
define('WWW_DIR', __DIR__);
// absolute filesystem path to the web images
define('WWW_IMG', WWW_DIR."/images");
// absolute filesystem path to the application root
define('APP_DIR', WWW_DIR . '/../web_app');
// absolute filesystem path to the libraries
define('LIBS_DIR', WWW_DIR . '/../web_libs');
// absolute filesystem path to the log files
define('LOGS_DIR', WWW_DIR . '/../web_logs');
// absolute filesystem path to the temporary files
define('TEMP_DIR', WWW_DIR . '/../web_temp');
// load bootstrap file
require APP_DIR . '/bootstrap.php';
napada Vas nekoho, cim by to tak mohlo byt … kdyz evidentne cesta, kterou Ladenka hlasi je v nastaveni open_basedir uvedeno (viz. cela ta chybova hlaska)?
EDIT: jeste jsem zapomenul dodat, ze Ladenka ukazuje chybu na radku v bootstrap.php
Environment::loadConfig();
a pritom config.ini je ve stejnem adresari jako bootstrap.php
Editoval ras (2. 5. 2011 19:02)
- Patrik Votoček
- Člen | 2221
A kde je tam uvedena cesta
/var/www/clients/client25/web101/web_app/..
tj.
/var/www/clients/client25/web101
?
- ras
- Člen | 135
Patrik: Nevim, zda jsem porozumel otazce.
XXXXXXXXXXXXXXXX
RuntimeException
SplFileInfo::isFile(): open_basedir restriction in effect. File(/var/www/clients/client25/web101/web_app/..) is not within the allowed path(s): (/var/www/clients/client25/web101/web:/var/www/clients/client25/web101/web_app
XXXXXXXXXXXXXXXX
Tucne jsem zduraznil, ze pozadovany soubor (prvni tucna polozka) je obsazena v nastaveni (druha zvyraznena polozka).
Zvlastni jsou dve veci:
- bootstap.php je soucasti cesty /var/www/clients/client25/web101/web_app/ a pritom ladenka hlasi chybu pri nacitani config.ini, ktery je ve stejnem adresari
- predchozi struktura byla v podstate stejna, tj. ROOT webu a na stejne urovni adresar s dalsimi soubory → a stejne nastaveni options pro open_basedir, ktere jsem ted upravoval, aby bylo v souladu s pozadavky aplikace (to predchozi nastaveni neobsahovalo vubec nic o druhem adresari, tj. byl tam uveden jen webROOT)
Fakt to zatim nechapu.
- ras
- Člen | 135
Patrik: ale inspiroval jsi me a po uprave nastaveni open_basedir, tj. webROOTu a i druheho adresare a jejich nahrazeni nadrazenym adrearem, tj. /var/www/clients/client25/web101 vse zacalo fungovat.
Presto to nechapu (chapu, ze to ted funguje). Rozdil ve strukture puvodniho a noveho usporadani neni, takze proc na to server zareagoval?
Navic se mi soucasne reseni vubec nelibi, je zbytecne volne … byt je funkcni.
- ras
- Člen | 135
Tak poznatek. Nejak to asi souvisi s CACHEi. Pote, co vse naskocilo (viz. prispevek vyse) jsem upravil nastaveni open_basedir a bylo to beze zmeny (ackoliv to „nemelo“ chodit). Tak jsem smazal cache adresar a jup, chyba zde byla zase … po uprave open_basedir, tj. doplneni vsech adresaru web_XXX se nic nezmenilo a chyba je tu stale …
Reseni jiz znam, ale duvod mi nejak porad utika …
- Patrik Votoček
- Člen | 2221
ras napsal(a):
Patrik: Nevim, zda jsem porozumel otazce.
XXXXXXXXXXXXXXXX
Tucne jsem zduraznil, ze pozadovany soubor (prvni tucna polozka) je obsazena v nastaveni (druha zvyraznena polozka).
NENÍ obsažena!!!
/var/www/clients/client25/web101/web_app/..
!=
/var/www/clients/client25/web101/web_app
ale rovná se
/var/www/clients/client25/web101
(POZOR NA TY DVĚ TEČKY
NA KONCI)
- nanuqcz
- Člen | 822
Mám stejný problém, prosím o radu:
/*soubor index.php */
$loader = new Nette\Loaders\RobotLoader;
$loader->addDirectory( __DIR__ ); //__DIR__ = /mnt/data/accounts/w/xxxxx/data/www/www
$loader->setCacheStorage( new Nette\Caching\FileStorage( __DIR__ . '/temp' ) );
$loader->register();
Zobrazí se chyba:
RuntimeException
SplFileInfo::isFile(): open_basedir restriction in effect. File(/mnt/data/accounts/w/xxxxx/data/www/www/..) is not within the allowed path(s): (/mnt/data/accounts/w/xxxxx/data/www/www:/tmp/uploads)
Proč se RobotLoader snaží dostat „nad“ úroveň, kterou jsem mu
nastavil v addDirectory()
? (viz chybova zpráva a ty dvě tečky na
konci cesty).
(Nette 2.0 alfa2 PHP5.3)
Editoval xxxObiWan (11. 6. 2011 16:04)
- David Grudl
- Nette Core | 8228
Nad úroveň by jít neměl a hádám, že by to mohla být chyba v nekonzistentním chování RecursiveDirectoryIterator. Jakou máš přesně verzi PHP a operační systém?
Taky by se mi hodilo nějaké číslo řádku a soubor, kde chyba vzniká, $loader->register nebo Environment::loadConfig() jsou příliš obecné. Ale tipnu si: pokud je to v metodě Finder::select(), možná by pomohlo prohodit tyto řádky:
$this->filter(function($file) use ($type, $pattern) {
return (!$type || $file->$type())
&& !$file->isDot()
na
$this->filter(function($file) use ($type, $pattern) {
return !$file->isDot()
&& (!$type || $file->$type())
Zkuste, jestli to pomůže.
- nanuqcz
- Člen | 822
Nepomohlo. Laděnka říká cosi o SplFileInfo->isFile()
(viz
přiložený soubor).
PHP: 5.3.6
Nette: 2.0 alfa2 PHP5.3 (má cenu zkoušet tam hodit nejnovější betu?)
OS: předpokládám že linux
Hosting: http://www.savana.cz
Přikládám výpis laděnky a phpinfo.
Díky
- CZechBoY
- Člen | 3608
na savaně mi to faká v cajku, viz můj zkušební projekt bike :)
struktura:
- app
- document_root
- --css
- --images
- --js
- --index.php
- libs
Editoval CZechBoY (29. 6. 2011 19:50)
- nanuqcz
- Člen | 822
CZechBoY napsal(a):
na savaně mi to faká v cajku, viz můj zkušební projekt bike :)
Pokud použiju celé Nette, taky mi to jede. Problém nastane, když chci použít RobotLoader samostatně.
Melmen napsal(a):
Na serveru používají (aspoň podle definic cest) ISPConfig, na serveru ho mám taky. a taky mi to blblo. Napiš jim ať ti do open_basedir přidají „/var/www/clients/client5/web6/“ nebo „/var/www/clients/client5/“
To nechápu, podle výpisu chyby všechny potřebné adresáře už v open_basedir jsou. RobotLoader se snaží dostat „nad“ adresář, který jsem mu nadefinoval (viz dvě tečky na konci adresy v chybě) – a v tom vidím chybu.
- nanuqcz
- Člen | 822
David Grudl napsal(a):
možná by pomohlo prohodit tyto řádky: …
Dívám se na github, že už jsi to udělal. K vyřešení problému ale u mě bylo potřeba ještě jedné věci, poslal jsem pull request.