$configurator->createRobotLoader() Error 500
- plasmo
- Člen | 66
Ahoj,
přesunul jsem se s vývojem aplikace z Win na Ubuntu. Práva na složky,
.htaccess, rewrite mám nastavený, ale při spuštění aplikace mi končí
s E500 na tomto kódu v bootstrap.php
$configurator->createRobotLoader()
->addDirectory(APP_DIR)
->addDirectory(LIBS_DIR)
->register();
Už mi došli nápady kde by mohla být chyba, poradí někdo?
- LeonardoCA
- Člen | 296
zkus se podivat jeste do hlavniho php logu, pravdepodobne /var/log/apache2/error.log, kdyby ne tak pres phpinfo() zjistis, kde je
- plasmo
- Člen | 66
V logu php je jen
[Sun Jun 17 15:21:06 2012] [error] [client ::1] PHP Fatal error: require(): Failed opening required '/var/www/erp/aplikace/www/../libs/Nette/loader.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/erp/aplikace/app/bootstrap.php on line 9
A to v tu dobu jsem testoval smazat Nette framework.
Bootstrap.php
<?php
/**
* My Application bootstrap file.
*/
use Nette\Application\Routers\Route;
use Nette\Forms;
// Load Nette Framework
require LIBS_DIR . '/Nette/loader.php';
// Configure application
$configurator = new Nette\Config\Configurator;
// Enable Nette Debugger for error visualisation & logging
//$configurator->setProductionMode($configurator::AUTO);
$configurator->enableDebugger(__DIR__ . '/../log');
// Enable RobotLoader - this will load all classes automatically
$configurator->setTempDirectory(__DIR__ . '/../temp');
$configurator->createRobotLoader()
->addDirectory(APP_DIR)
->addDirectory(LIBS_DIR)
->register();**
// Create Dependency Injection container from config.neon file
$configurator->addConfig(__DIR__ . '/config/config.neon');
$container = $configurator->createContainer();
function Form_addDateTimePicker(Forms\Form $_this, $name, $label, $cols = NULL, $maxLength = NULL)
{
return $_this[$name] = new Nette\Extras\DateTimePicker($label, $cols, $maxLength);
}
Forms\Form::extensionMethod('addDateTimePicker', 'Form_addDateTimePicker');
Kdyby\Forms\Containers\Replicator::register();
// Setup router
$container->router[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY);
$container->router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
// Setup database
dibi::connect($container->params['database']);
// Configure and run the application!
$container->application->run();
Když smažu $configurator->createRobotLoader() … tak vyskočí laďenka Nette že se nepodařilo nahrát třídu ACL …
- LeonardoCA
- Člen | 296
A už ti to funguje? Log php říká jasně kde je problém. Možná máš problém v nastavení práv/vlastníka adresářů/souborů projektu vůčí uživateli pod kterým běží Apache.
- klip
- Člen | 11
Zkus zkontrolovat práva všech adresářu po cestě od kořene file systému až k tomu loaderu.
Uživatel, pod kterým apache běží, musí mít tuším práva +x pro průchod na všech úrovních.
Buď povol +x všem a nebo nastav všemu po cestě skupinu, pod kterou běží apache, a nastav to +x na to. To je možná bezpečnější trochu, ale je s tím trochu víc práce to udržovat.