Jedna aplikace s moduly, dva stroje a podivné chování
- Bernard Williams
- Člen | 207
Nazdárek,
mám napsanou aplikaci, která využívá moduly. Běží na PHP 5.2.5 a Nette 0.9.2 (zkoušel jsem i 0.9.3). Na desktopu, kde jsem ji vyvíjel jede vše jak má. Když ji ale překopíruji na laptop, tak už to nefunguje.. nebo nefunguje aspoň z části.
Routy mám nastavené takto:
$router = $application->getRouter();
$router[] = new Route('index.php', array(
'module' => 'Front',
'presenter' => 'Login',
'action' => 'default',
), Route::ONE_WAY);
$router[] = new Route('<module>/<presenter>/<action>/<id>', array(
'module' => 'Front',
'presenter' => 'Login',
'action' => 'default',
'id' => NULL,
));
Adresářová struktura v app:
AclModule
\ (na stejném principu jako FrontModule)
FrontModule
\ presenters
\ LoginPresenter.php
\ templates
\ Login
\ default.phtml
\ @layout.phtml
log
models
presenters
\ BasePresenter.php
\ ErrorPresenter.php
temp
templates
\ Error
\ 404.phtml, 500.phtml
Když aplikaci spustím (a to jak přes virtuální doménu nebo přímo
přes localhost/…), tak se mi úvodní stránka (LoginPresenter
v FrontModule) zobrazí. Lze se taky normálně přihlásit. Po úspěšném
přihlášení chci přejít do jiného modulu přes
<a href="{link :Acl:Users:}">GUI Acl</a>
, ale to už se
nepodaří. Odkaz mě správně hodí na adresu
http://<virtualdomain>/acl/users/ (stejně tak se děje i bez virtuální
domény), ale požadovaný obsah se už nezobrazí. Hodí to chybovou hlášku
generovanou Apachem, že požadovaná stránka neexistuje. To se mi zdálo
divné, a proto jsem se podíval do Apache/logs/arror.log kde byl tento
záznam:
[Fri Apr 09 13:51:59 2010] [error] [client 127.0.0.1] File does not exist: C:/Apache/WWW/BC/GUI_Acl/document_root/acl, referer: http://bc/
Není chybou, že to přesměrovává do složky acl místo toho, aby to vedlo jen do document_root? Ví někdo, čím je to způsobené a jak to vyřešit?
Předem děkuji za každou radu!
Bernard
- Bernard Williams
- Člen | 207
To by mě taky zajímalo. U obou je to Apache 2.0.63 a PHP 5.2.5. Jediný rozdíl je v PostgreSQL – na desktopu je 8.4 a na laptopu je to 8.2, ale přihlášení, které bere data z DB funguje na obou strojích v poho. Oba stroje používají stejný httpd.conf – jediná změna je snad v názvech disků a že na desktopu mám navíc spuštěný modul PDO a SQLite. Jako poslední rozdíl a možná zásadní je v OS. Na desktopu je to Win XP a na laptopu Win 7. Před chvilkou jsem zkoušel použít ukázkový příklad na použití modulů z distribuce a chová se to stejně špatně jako v mém případě.
Funguje někomu ukázka použití modulů (modules-usage) z distribuce na Windows 7?
- Bernard Williams
- Člen | 207
Vyki napsal(a):
A není to hláška, která vypadá jako z apache, ale dole je malým písmem napsáno Nette framework?
Titulek: 404 Not Found
Not Found
The requested URL /BC/GUI_Acl/document_root/acl/users/ was not found on this server.
Apache/2.0.63 (Win32) DAV/2 PHP/5.2.5 Server at localhost Port 80
- Bernard Williams
- Člen | 207
Hurá!! Problém se mi podařilo najít! Jedná se o parametr AllowOverride v httpd.conf. U adresáře s webem byl nastavený správně:
<Directory "F:/Apache/WWW">
Options Indexes Includes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ale o pár řádků níž se nacházel znovu a podle všeho ten výše uvedený přepisoval:
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
Stačilo jej tedy přepsat na:
AllowOverride All
a už vše šlape! Ještě jednou upozorňuji, že httpd.conf jsem měl v obou případech stejný (kontroloval jsem to), takže problém bude nejspíš v operačních systémech. Možná by nebylo od věci to k modulům někam poznamenat.. aby se s tím někdo další nemusel taky celý den trápit.
Editoval Bernard Williams (9. 4. 2010 20:44)
- Vyki
- Člen | 388
Osobně mi ukázka z mobile usage funguje, ale používám Nette 1.0dev. Tam
by už měla být defaultně pohřbena stará struktura modulů.
V BasePresenteru vypni staré moduly myslím, že takto:
$this->oldModuleMode = FALSE
. Vyzkoušej i Nette 1.0dev jestli
to bude běhat. EDIT: Tak už nic :o)
Editoval Vyki (9. 4. 2010 20:52)
- Bernard Williams
- Člen | 207
Vyki napsal(a):
EDIT: Tak už nic :o)
Každopádně díky za tvůj čas a snahu.