Zprovoznění (úplné základy)

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

Jsem úplný začátečník v nette a chtěl bych se v tomto frameworku naučit pracovat. Zatím se pokouším alespoň rozběhnout základní ukázkovou stránku v sandboxu. Bohužel, jediné, čeho jsem zatím dosáhl, je „Fatal Error: Class ‚BasePresenter‘ not found“. Zkoušel jsem různé návody a řešení této chyby, které jsem našel na internetu, čímž jsem se pouze dostal k jiným chybám. Chci se zeptat jestli se dá někde najít nějaký zaručeně funkční návod pro aktuální verzi s nějakým postupem jak nette správně naistalovat (jak začít) a alespoň rozběhnout přiložené příklady.

  • použitá verze: Nette Framework 2.0-beta (revision 8a3182e released on 2011–10–11)
Michal Vyšinský
Člen | 608
+
0
-

Uvnitř staženého archivu máš složku sandbox – tak to by mělo být funkční. Možná ti to hodí chybu class „Model“ not found – řešení je tu

Pepis
Člen | 16
+
0
-

Ahoj, jsem na tom stejně jako SandroBlack = úplný začátečník.
Stáhnul jsem si verzi 2.0,sandbox zkopíroval na produkční server, checker mi nehlásí žádnou chybu, ale při zadání sandbox/www se mi zobrazí hláška – Server Error We're sorry! The server encountered an internal error and was unable to complete your request. Please try again later.Error 500.
Nedaří se mi ani v bootstrapu zapnout laděnku, pokud postupuji podle návodu na zapnutí laděnky, tak se mi při vyvolání sandbox/www zobrazí pouze bílá stránka.

Vím, že se tento problém tady řešil už několikrát, prošel jsem si to, ale nějak se do toho zamotávám a začínám z toho být docela unavený. Prosím o radu, ať se pohnu kousek dál. Předem díky.

Jan Endel
Člen | 1016
+
0
-

Ahoj, pakliže se ti objeví na serveru hláška " Server Error We're sorry! The server encountered an internal error and was unable to complete your request. Please try again later.Error 500." tak se podívej na hostingu do složky log, tam nette automaticky vygeneruje obsah ladenky, ktera by se normalne zobrazila (paklize tam ten soubor neni, zkontroluj si pristupova prava do slozky log). Jeden z nejjednodusich zpusobu jak donutit server aby ti misto techto stranek posilal skutecnou ladenku (a bezneho navstevnika s ni „neobtezoval“) je, ze najdes ve slozce app soubor bootstrap.php a zamenis tam radek:

Debugger::enable();

na

Debugger::enable('12.34.56.78');

kde 12.34.56.78 je tvoje IP. Zjistitelna treba na této stránce.

Přeji štastné nettení :-)

22
Člen | 1478
+
0
-

ještě asi bude potřeba catchExceptions = FALSE nějak donutit asi podle modu..

Pepis
Člen | 16
+
0
-

Tak se mi nakonec podařilo ten error 500 odstranit, dopsal jsem do .htaccess

php_flag eaccelerator.enable 0

php_flag eaccelerator.optimizer 0

Teď mi jde ještě o tu laděnku, přepsal jsem
catchExceptions = FALSE na catchExceptions = TRUE
a
Debugger::enable(); na Debugger::enable('moje IP');

dá se nějak odzkoušet, že ta laděnka je funkční.

Děkuji

Editoval Pepis (2. 11. 2011 21:57)

wodCZ
Člen | 49
+
0
-

Nejsem zkušený nettista, ale tuším, že když funguje debugbar (ta lištička dole na stránce s logem nette) tak funguje i laděnka.
Odzkoušel bych to vyhozením nějaké podmínky: throw Zkusebnichyba.
Dlouho jsem nedělal, omlouvám se pokud mlžím

22
Člen | 1478
+
0
-

catchExceptions = FALSE ! Jinak neuvidíš laděnku na produkci imho..

Pepis
Člen | 16
+
0
-

Lišta se mi zobrazuje, catchExceptions = FALSE ! – opravím, díky

Pepis
Člen | 16
+
0
-

No teď řeším, jak dál, poraďte nějaký návod

22
Člen | 1478
+
0
-

nevíme, na čem teď momentálně stojíš?

Pepis
Člen | 16
+
0
-

No stojím pro vás na úplných základech, např. teď mám stažený skeleton, kam s xhtml kódy co už mám vytvořený, ty budou zvlášť nebo se ukládají do skeletonu?

Mám stránky v xhtml pro jednu malinkou obec, chtěl bych je převést do php s nette, udělat nějakou administraci webu, ženský tam mají recepty, tak bych chtěl, aby si každá mohla tam ten recept přidat a nemusel jsem to dělat já a ještě chci dodělat nějaké diskuzní fórum.

No jedná se fakt o základy, pro vás asi směšný, našel jsem na youtube.com nějaká videa, tak zkusím podle toho jít a snad mě to někam posune. Až se zadrhnu, tak se zase ozvu, snad mi ještě poradíte. Zatím díky

Pepis
Člen | 16
+
0
-

Ahoj,
potřeboval bych zase radu.
Zkoušel jsem zprovoznit jednoduchý formulář, stažený zde http://zdrojak.root.cz/…roduktivitu/,
ale pokud si dám zobrazit stránku, tak se mi zobrazí ten kód co jsem tam napsal a ne ten formulář.

Filip Procházka
Moderator | 4668
+
0
-

Proč mám pocit, že jsi ho napsal do šablony?

Pepis
Člen | 16
+
0
-

No je to fakt začátečnická chyba, už mi to funguje, ale nevím v čem je problém.
Pokud jsem do rootu webu vytvořil soubor prvni.php a do něj vložil ten kód uvedený nahoře a vložil jsem tam i složku s Nette, tak mi to zobrazí pouze ten kód.
Pokud si v rootu webu vytvořím složku prvni do ní dám složku s Nette a soubor prvni.php, tak mi to funguje správně.

Pepis
Člen | 16
+
0
-

Ahoj,
narazil jsem na další problém, stáhnul jsem si diskuzní fórum z https://componette.org/search/?…
a hlásí mi to tuto chybu

Fatal Error Class ‚SimpleRouter‘ not found

28: $router[] = new SimpleRouter(‚Default:default‘);

Poraďte co s tím, díky.

Editoval Pepis (21. 11. 2011 10:38)

JuniorJR
Člen | 181
+
0
-

Pepis napsal(a):

Ahoj,

a hlásí mi to tuto chybu

Fatal Error Class ‚SimpleRouter‘ not found

Nechybí ti:

use Nette\Application\Routers\SimpleRouter;

Editoval JuniorJR (21. 11. 2011 11:33)

Pepis
Člen | 16
+
0
-

Pokud to dopíšu, tak mi laděnka hodí další chybu,
Cannot load presenter ‚Error‘, class ‚ErrorPresenter‘

Error presenter v tom staženém projektu není, pokud ho tam doplním, tak mi to vyhodí chybu error 500

Editoval Pepis (21. 11. 2011 21:38)

JuniorJR
Člen | 181
+
0
-

Pepis napsal(a):

Pokud to dopíšu, tak mi laděnka hodí další chybu,
Cannot load presenter ‚Error‘, class ‚ErrorPresenter‘

Error presenter v tom staženém projektu není, pokud ho tam doplním, tak mi to vyhodí chybu error 500

Pokud ti aplikace hlásí Error 500, pak nezbývá, než si zapnout chytrou laděnku, tj.:

// v bootstrapu
...
// vynucení dev modu
Debugger::enable(Debugger::DEVELOPMENT);
...
// zruší zachytávání vyjímek aplikací (automatické nasměrování na Error Presenter,
// který definuješ konstrukcí $application->errorPresenter = 'Error');
$application->catchExceptions = FALSE;

Pak napiš, co Debugger objevil za chybu.

Editoval JuniorJR (21. 11. 2011 23:27)

Pepis
Člen | 16
+
0
-

tak laděnka píše

Access denied for user ‚root‘@'localhost' (using password: NO),

JuniorJR
Člen | 181
+
0
-

Pepis napsal(a):
Access denied for user ‚root‘@'localhost' (using password: NO),

Tak to značí chybu při připojení k DB. Máš správně nastavené parametry connection stringu (username, password)?

Pepis
Člen | 16
+
0
-

Já jsem hned hledal, jak ten problém odstranit, ale s tím co jsem našel tady na fóru, tak se mi to nedaří.
Ten projekt jsem jenom stáhnul, nijak jsem to neupravoval, zkouším to na produkčním serveru a nevím, kde co upravit v config.neon je toto:

common:
  php: # PHP configuration
    date.timezone: Europe/Prague
    session.save_path: "%tempDir%/sessions"
    # zlib.output_compression: yes
    # default_charset: "UTF-8"

  services:
    robotLoader:
      option:
        directory: [%appDir%, %libsDir%/dibi, %libsDir%/Nette/Extras]
      run: TRUE

production < common:
  database:
    driver: mysql
    host: localhost
    username: root
    password:
    database: forum_control
    charset: utf8
    lazy: TRUE

development < production:
  database:
    host: localhost
    username: root
    password:
    profiler: TRUE

Editoval Pepis (22. 11. 2011 10:44)

Jan Endel
Člen | 1016
+
0
-

Zjisti si heslo do MySQL databáze tvého produkčního serveru (které my samozřejmě neznáme) a dopiš ho do

password: mujUzaPasswordKteryKazdyMiluje
JuniorJR
Člen | 181
+
0
-

@Pepis: A proč to nezkusíš nejprve na localhostu? Nezapomeň také, že si musíš nejprve tu DB vytvořit, aby ti to chodilo. Měl by tám být na to speciální .sql soubor.

Editoval JuniorJR (22. 11. 2011 12:50)

Pepis
Člen | 16
+
0
-

To JuniorJR, dělám to do školy a já jsem v tomhle fakt začátečník, na localhostu jsem měl problémy se spuštěním, mám visty. Tak jsem to zkusil na produkčním serveru, tam se mi podařilo nette rozchodit. Nemám moc času, tak nechci začít zase experimentovat na localhostu. S tou databází máš pravdu, nemám tam žádnou vytvořenou, teď jsem si s tím hrál. Vytvořil jsem databázi, ty údaje jsem dopsal do config.neon, ale laděnka píše: $container = $configurator->loadConfig(dirname(__FILE__) . '/config.neon');.
No jsem v pasti. Nemáš odkaz jak vytvořit ten .sql soubor.

JuniorJR
Člen | 181
+
0
-

Pepis napsal(a):

laděnka píše: $container = $configurator->loadConfig(dirname(__FILE__) . '/config.neon');

Nevím, co tím chtěl básník říci :)

No jsem v pasti. Nemáš odkaz jak vytvořit ten .sql soubor.

Ty ten .sql soubor právě vytvářet nemusíš. Stačí se podívat do toho staženého balíčku a měl by tam být, eventuálně na gitu. Pak tím stačí akorát nakrmit MySQL server a je to. Základ je, zda máš nějaký přístup ke správě DB, nejlépe pomocí PhpMyAdmin či podobného nástroje. Pak stačí vzít obsah toho .sql souboru a naimportovat, resp. spustit jako SQL příkaz. Ale to už neni otázka Nette.

EDIT: Ono je asi celkem problém začít s Nette a hned se vrhnout na stahování nějakých doplňků, když neznáš alespoň základy. Takhle se akorát budeš zasekávat na úplných primitivnostech a žádného valného výsledku nedosáhneš → koukni na sandbox a ten se snaž pochopit, návodů bylo napsáno už dost.

Editoval JuniorJR (22. 11. 2011 16:00)

Pepis
Člen | 16
+
0
-

Díky moc za pomoc, budu pokračovat se sandboxem, to fórum mě zaujalo, že by se mi hodilo do projektu, tak jsem se chtěl podívat, jak to funguje, ale máš pravdu s tím, že pokud neznám základy, tak mi to vezme hodně času.

Tak snad se k tomu někdy dopracuju.