Chybová hláška na hostingu

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

Zdravím, nedávno jsem se začal učit Nette a zasekl jsem se na této chybové hlášce, když jsem zkoušel prod. hosting.

Nette\Debug FATAL ERROR: thrown DirectoryNotFoundException: Directory ‚/www/sites/5/site5365/public_html/document_root/../app/../log‘ is not found or is not directory. while processing InvalidStateException: Unknown environment variable ‚tempDir‘.

htaccess

"# disable directory listing
Options -Indexes

# mod_rewrite
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# front controller
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
</IfModule>":null

bootstrap

<?php

use Nette\Debug;
use Nette\Environment;
use Nette\Application\Route;
use Nette\Application\MultiRouter;
use Nette\Application\SimpleRouter;



// Step 1: Load Nette Framework
// this allows load Nette Framework classes automatically so that
// you don't have to litter your code with 'require' statements
require LIBS_DIR . '/Nette/loader.php';



// Step 2: Configure environment
// 2a) enable Nette\Debug for better exception and error visualisation
Debug::enable();

// 2b) load configuration from config.ini file
Environment::loadConfig();



// Step 3: Configure application
$application = Environment::getApplication();

$application->onStartup[] = 'BaseModel::initialize';


// Step 4: Setup application router
$router = $application->getRouter();

// mod_rewrite detection
if (function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules())) {

  # AdminModule routes
  $router[] = new Route('admin/<presenter>/<action>/<id>', array(
      'module'    => 'Admin',
      'presenter' => 'Default',
      'action'    => 'default',
      'id'        => null
  ));

	$router[] = new Route('index.php', array(
		'module' => 'Front',
		'presenter' => 'Default',
	), Route::ONE_WAY);

	$router[] = new Route('<presenter>/<action>/<id>', array(
		'presenter' => 'Front:Default',
		'action' => 'default',
		'id' => NULL,
	));

} else {
	$router[] = new SimpleRouter('Front:Default:default');
}



// Step 5: Run the application!
$application->run();

Zkoušel jsem různé rady zde z fóra, ale nepovedlo se mi rozchodit ani laděnku.

Šaman
Člen | 2666
+
0
-

Do index.php si přidej proměnnou:

define('TEMP_DIR', WWW_DIR . '/../temp');

A zkontroluj, že existuje adresář /temp na stejné úrovni jako /app nebo /www


TEMP_DIR je nová konstanta prostředí, která se objevila v Nette2.0 relativně nedávno, tak asi ještě není příkladech podle kterých se inspiruješ. Podívej se na nový Sandbox (bývalý to Skeleton).

Editoval Šaman (17. 1. 2011 11:08)

Januson
Člen | 3
+
0
-

O TEMP_DIR jsem našel zmínku v jiném topicu, ale ani po přidání se nic nezměnilo. Cestu k adresáři temp jsem zkontroloval.

Šaman
Člen | 2666
+
0
-

Tak radši od začátku: funguje ti Sandbox (nebo Skeleton) který je přibalený k distribuci Nette? A jakou verzi vlastně máš?
Pokud ano, budem hledat v kódu, pokud ne, tak bude chyba v nastavení věcí okolo.

Januson
Člen | 3
+
0
-

Nette verzi 2.0 Alpha 2 pro PHP 5.3. Sandbox mi funguje na hostingu php5.cz, ještě jsem zkusil ic.cz ale tam nabehla jen bílá stránka.

Editoval Januson (17. 1. 2011 13:18)