Šta je novo?

Modular Zend Project Problem

  • Začetnik teme Začetnik teme kraft
  • Datum pokretanja Datum pokretanja

kraft

Cenjen
Učlanjen(a)
10.07.2009
Poruke
273
Poena
169
Pre svega da napomenem da sam od jako skoro poceo da ucim i radim u Zendu, tako da za sva pocetnicka pitanja molim vas imajte razumevanja 🙂

Ono sto bi ja hteo da uradim je da napravim projekat koji ce da radi sa modulima, drugim recima da struktura foldera projekta izgleda ovako:

Kod:
docroot/	
	application/
		Bootstrap.php  
		configs/
		controllers/
		models/
		modules/
			admin/
				controllers/
					IndexController.php
				models/
				views/
				   filters/
				   helpers/
				   scripts/
			blog/
				controllers/
					IndexController.php
				models/
				views/
				   filters/
				   helpers/
				   scripts/
			default/
				controllers/
					IndexController.php
				models/
				views/
				   filters/
				   helpers/
				   scripts/
		views/
	docs/
	library/
	public/
	tests/

Svaki module bio to admin, blog ili default je fakticki MVC za sebe.

Ono sto sam ja uradio je sledece:
  1. Izvrsio komandu zf create project zendmodularni
  2. U application folderu napravio folder docroot/application/modules/
  3. U config/application.ini dodato sledece linije koje bi trebalo da oznacavaju folder gde se moduli nalaze:
    Kod:
    resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
    resources.modules = ""
    Tako da sada ceo taj application.ini izgleda ovako:
    Kod:
    [production]
    phpSettings.display_startup_errors = 0
    phpSettings.display_errors = 0
    includePaths.library = APPLICATION_PATH "/../library"
    bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
    bootstrap.class = "Bootstrap"
    appnamespace = "Application"
    resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
    resources.frontController.params.displayExceptions = 0
    resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
    resources.modules = ""
    resources.frontController.params.prefixDefaultModule = "1"
    
    [staging : production]
    
    [testing : production]
    phpSettings.display_startup_errors = 1
    phpSettings.display_errors = 1
    
    [development : production]
    phpSettings.display_startup_errors = 1
    phpSettings.display_errors = 1
    resources.frontController.params.displayExceptions = 1
  4. Zatim kreirao module sa komandama:
    zf create module admin
    zf create module blog
    zf create module default
  5. I za kraj dodao View i odgovarajuce controlere u modulima sa komandama:
    zf create controller index index-action-included[=1] admin
    zf create controller index index-action-included[=1] blog
    zf create controller index index-action-included[=1] default

Kada u na svom racunaru na kome sam instalirao XAMPP iz browsera pokrenem zend aplikaciju sa putanjom adresom:
http://localhost:8080/zend/public/
dobijam onu Zendovu Welcome page (printscreen se nalazi u prilogu) sto je i ok, zatim kada probam da pokrenem neki od modula, npr:
http://localhost:8080/zend/public/default
takodje dobijem tu Zendovu Welcome stranicu, sto je takodje ok i sto me u tom trenutku jako obradovalo.

Medjutim, uvek mora da ima nesto sto kvari celu idilu, a tu lezi moj problem 🙂

Kada sve ovo isto uradim na hostingu, na kome naravno nema XAMPP, vec je rucno, jedan po jedan posebno instaliran Apache, PHP i Zend, moja modularna aplikacija radi polovicno 🙁

To jest, http://www.mojsajt.com/public/ radi i prikazuje istu stranicu ko kod mene u lokalu, medjutim http://www.mojsajt.com/public/default kaze Not Found.

Kao da Zend ili Apache, ne znam vise ni ja sam, ne vidi taj modul, sta vec.

Googlao sam i googlao, prosao skoro sve tutorijale koji opisuju slican postupak i i dalje nista. Malo mi ovo postaje frustrirajuce, pa bih zamolio za pomoc nekog ko je upoznat sa materijom.

Hvala unapred,
Poz
 

Prilozi

  • zendmodule.webp
    zendmodule.webp
    30.2 KB · Pregleda: 61
Jesi li odradio info, da vidiš šta je od modula sve učitano?

Koje verzije si Apachea/PHPa koristio u XAMPPu, a koji su na serveru?
 
Izgleda da je do mod_rewrite, ali moram jos da istrazim sta se tu tacno desava.

Na serveru je debian i kolko sam uspeo da vidim malo drugacije izgledaju apache config fajlovi na tom sistemu. Kaze da je mod_rewrite loadovan, ali kada sam probao sa prostim rulom nije hteo da radi.
 
Koja verzija Apachea je u pitanju? Postoji razlika između starog i novog u smislu uslova koje mod_rewrite prihvata.
 
Uzeo sam testa radi i kuci na ubuntu instalirao posebno apache, php i zend, zatim sam loadovao mod_rewrite i kreirao zend projekat modularno kao sto sam opisao gore i radi sve 🙂

Izgleda da je decko koji je podesavao apache na hostingu nesto konfigurisao za sta ja ne znam, pa ce sad verovatno da padne resintall apache 🙂

Sto se tice apache, instaliran je preko komande aptitude install apache2 i na hostingu na kome je debian i kod mene kuci gde imam ubuntu. Predpostavljam da je zadnja stable verzija. Sad sam na poslu, cim dodjem kuci javicu tacno koje su verzije.
 
To sto je mod_rewrite loadovan ne znaci da je omogucen na tvom virtualnom hostu.
 
Uspeo sam konacno da namestim da radi.

mod_rewrite je sve vreme bio loadovan, ali je bilo potrebno u konfiguraciji apacha za sites-enabled da se podesi AllowOverride na All umesto none.

Kod:
<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		allow from all
</Directory>

U sustini bio si u pravu, ali sam morao da se preznojim dok nisam dosao do resenja 😛

Hvala na odgovorima.
Poz
 
Čisto informacije radi. Za mod_rewrite nema potrebe postavljati AllowOverride na vrednost All jer je FileInfo sasvim dovoljan (eventualno može i Options).

Kod:
AllowOverride FileInfo Options

U test okruženju ovo nije bitno ali na produkcionim serverima AllowOveride All je potencijalna opasnost po sigurnost servera jer dozvoljava bukvalno sve od opcija koje ova direktiva podržava.
 
Poslednja izmena:
Nazad
Vrh Dno