Nastaveni v configu / bootstrapu produkcni a development
- roghill
- Člen | 21
Ahoj, omlouvám se jestli to tady někde je. Dva dny jsem to hledal. Nedaří se mi nastavit v configu dvě db, jedna pro produkční a druhá pro development. Tedy spíš aby si to bral na hostingu z produkčního.
common:
parameters:
php:
date.timezone: Europe/Prague
# zlib.output_compression: yes
nette:
application:
errorPresenter: Error
session:
autoStart: smart
expiration: +30 days
database:
dsn: 'mysql:host=localhost;dbname=tasklist'
user: 'dev_nette'
password: 'pass'
services:
authenticator: TaskList\Authenticator
tasks: TaskList\Tasks
users: TaskList\Users
tasklists: TaskList\TaskLists
factories:
production < common:
dsn: 'mysql:host=wm5.wedos.net;dbname=dbname'
user: 'user'
password: 'pass'
development < common:
V boostrapu jsem zkoušel :
$configurator->addConfig(__DIR__ . '/config/config.neon', Nette\Config\Configurator::PRODUCTION);
Toto jsem až tak úplně nepochopil :
$environment = Nette\Config\Configurator::detectDebugMode('vaše ip adresa')
? $configurator::PRODUCTION : $configurator::DEVELOPMENT;
$configurator->addConfig(__DIR__ . '/config/config.neon', $environment);
Běžně si na na testovacim virtualu nastavuji SetEnv APPLICATION_ENV, ale tady jsem nejak nepobral kde mu mam rict ze se ma podivat jaka je ta konstanta a podle toho se zachovat…
Děkuji za odpověď.
- roghill
- Člen | 21
Unexpected '=' on line 42, column 39. search►
Laděnka mi hlásí tuto chybu. Nechápu proč, když je to úplně stejné
jako v commnon. Respective když tohle zkopíruju do common tak to funguje,
v production ne.
To nemůže být configurační soubor normální např. jako
v Zendu application.ini ? Ještě si dávat pozor jestli mi Netbeansy
nekonvertují tabulátory na mezery atp.
Nyní tam mám tedy po pracném zkoumání kde mám jakou mezeru, nebo naopak nemám tabulátor toto :
Found sections 'database' in configuration, but corresponding extensions are missing
Editoval roghill (31. 8. 2012 12:36)
- roghill
- Člen | 21
Chová se to pořád stejně.
V bootstrapu mám :
// Configure application
$configurator = new Nette\Config\Configurator;
$configurator->setProductionMode(); # přestane fungovat laděnka - zapnutý produkční mod ?
$configurator->setDebugMode(TRUE); # zapnu si ladenku
// Enable Nette Debugger for error visualisation & logging
//$configurator->setDebugMode($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', 'production'); // jeste nacpu semproduction, dam-li nesmysl, spravne napise ze tato sekce v configu neni
$container = $configurator->createContainer();
// Setup router
$container->router[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY);
$container->router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
// Configure and run the application!
$container->application->run();
a stale se to snazi pripojit ke common …
- Elijen
- Člen | 171
Koukal jsem jak to mam já a sekce database
patří pod
services
(logicky :)) … takhle to mám já:
common:
services:
database:
class: Nette\Database\Connection
production < common:
services:
database:
arguments: ['mysql:host=db.host.cz;dbname=dbname', 'login', 'heslo']
development < common:
services:
database:
arguments: ['mysql:host=dev.host.cz;dbname=dbname', 'login', 'heslo']
Editoval Elijen (31. 8. 2012 15:33)
- roghill
- Člen | 21
tohle je fakt „wopruz“, to jsem dlouho u ničeho jinýho nezažil. Neustále mě to peskuje za mezery, který tam ale nemám (aspoň je tam nedělám, nevím jestli netbeans i přes zákaz converze nedělají mezery). Nedá se to nakonfigurovat jinak než přes ten config.neon. Nechápu jak se mohlo zvolit takové formátování jakéhokoliv souboru. Zkusím ten config překopat celej přes mezery, když je to postavený na Yamlu …
- roghill
- Člen | 21
Takže se pokusím nějak shrnout.
Pokud dám do common nastavení na DB „produkcniho serveru“
tak mi to jede. To znamená, že rewrite mode, .htaccess a podobně je
v pořádku. Pokud dám nastavení do sekce production a
v bootstrapu nastavím že server je produkční (ověřím si to pomocí dump
a die()), vyhodí mi to error 500. Pokud udělám záměrně v configu chybu,
laděnka mi to zahlásí, takže je zapnutá. Tak proč mi sakra hází chybu
500 a neukáže mi wo co go ? Už jsem z toho fakt na prášky …
Editoval roghill (31. 8. 2012 17:59)