problem s nahodne objevujici se chybou (open_basedir)

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
pjoter
Člen | 118
+
0
-

Nahrál jsem na nový hosting (czechia.com, PHP 5.3, nette 0.9.6) web postavený na nette. Na localhostu i na jiném hostingu jede vše v pohodě. Ovšem na czechii se mi naprosto náhodně na libovolné stránce objeví chyba:
Warning: Unknown: open_basedir restriction in effect. File(/www/sites/1/site24431/public_html/index.php) is not within the allowed path(s): (k…) in Unknown on line 0 Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0 Fatal error: Unknown: Failed opening required ‚/www/sites/1/site24431/public_html/index.php‘ (include_path=‚.:/usr/lib/php‘) in Unknown on line 0

Prosím o radu jak chybu odstranit, řešení typu změň hosting je spíš jako nouzové řešení. Je tam verze nette

jtousek
Člen | 951
+
0
-

Předpokládám že používáš doporučovanou Nettí adresářovou strukturu, kdy jsou vlastně složky app a libs o úroveň níž. Ta chyba znamená, že nemůžeš includovat soubor z této úrovně, jinými slovy musíš ty složky dát do public_html, změnit cesty v index.php a dodat .htaccess soubory s Deny from all do obou složek, aby nebyly přístupné zvenčí.

pjoter
Člen | 118
+
0
-

.htaccess v app a libs mam, oboji jsou v public_html, jelikoz do adresare o uroven vys nemam pristup vsechny soubory a adresare z document_root vcetne index.php a .htaccess s pravidly pro rewrite jsou taky v public_html

jtousek
Člen | 951
+
0
-

Tak to je podivné. Jak vypadá tvůj index.php? Funguje když do index.php dáš třeba jen require na app/bootstrap.php, v něm něco vypíšeš a exitneš?

V každém případě tohle nevypadá jako chyba Nette, ale prostě problém toho hostingu anebo tradiční chybu mezi židlí a počítačem. ;)

Editoval jtousek (28. 9. 2010 20:40)

pjoter
Člen | 118
+
0
-

index vypada takhle:

<?php
// absolute filesystem path to the web root
define('WWW_DIR', dirname(__FILE__));

// absolute filesystem path to the application root
define('APP_DIR', WWW_DIR . '/app');

// absolute filesystem path to the libraries
define('LIBS_DIR', WWW_DIR . '/libs');

// load bootstrap file
require APP_DIR . '/bootstrap.php';
?>

Divné je že chyba se objeví na stejné stránce až třeba po třetím nebo pátém refreshi jinak funguje

jtousek
Člen | 951
+
0
-

Hmm a máš povolenej zápis do složky temp? Tahle chyba dost často znamená, že se to pokouší zapisovat ěnjakej soubor přímo do /temp, tj. někde nějaká špatně nastavená nebo vůbec nenastavená cesta.

pjoter
Člen | 118
+
0
-

app/temp mam 777, pro jistotu jsem zalozil i temp/ se 777 beze zmeny
Dela si to co chce prvni refresh stranka ok, 2 refresh chyba, 3 refresh jede atd. jednou jede jednou nejede

jtousek
Člen | 951
+
0
-

To právě vypadá jako by se skript někdy pokoušel otevřít/zapsat nějaký soubor a jindy ne. Jediné co mě napadá je nějaké kešování, generování šablon a podobné věci. Být tebou bych zkusil napsat na podporu hostingu, tady to zřejmě nevyřešíme. Dyštak dej vědět výsledek, docela by mě to zajímalo.

pjoter
Člen | 118
+
0
-

nakonec to vyresil update phpcka na serveru viz. http://bugs.php.net/48880