dodání ihned! nové
Black Friday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
BF

Diskuze: Určení kořenového adresáře na hostingu Onebit, nahrávání webu na hosting, MVC, PHP,.htaccess

Aktivity
Avatar
Jaroslav Merta:7. března 21:47

Kontext:
Vytvořil jsem web založený na univerzálním frameworku MVC, který je součástí zdejšího kurzu E-shopu v PHP:
https://www.itnetwork.cz/…rava-pohledu

Nahrál jsem web na hosting Onebit, jehož původní adresářová struktura je:
root/
- www (složka)
- symlink(symbolický odkaz na doménu bez prefixu www)

Problém:
Když nahraju web do adresáře www, najde si to správně index.php (/public/index.php) podle .htaccess (což je zachováno ze zdejšího kurzu >>uvedeného výše), ale nefunguje to (HTTP ERROR 500).

Domněnky k možnému řešení:

  • autoloader nenačítá soubory tak, jak má, protože v adresářové struktuře je nechtěný mezičlánek, a to WWW adresář za ROOT adresářem (root/www/...) a tak to správně nereflektuje ani NAMESPACE souborů.
  • jestli je tahle domněnka správná, potřebuju ten web nahrát přímo do ROOT adresáře, ale hosting všechno přesměrovává do WWW adresáře, pokoušel jsem se to přenastavit skrz .htaccess, leč neúspěšně, měl jsem z toho pocit, jako by .htaccess v ROOT vůbec nefungoval. Původní .htaccess z kurzu v ROOT adresáři také nefungoval, pořád mi to házelo WWW adresář za doménu v URL...

Závěr
Je možné nějakou direktivou v .htaccess tohle chování spravit? Nebo je vůbec moje dedukce vedená správným směrem? Poprvé nahrávám web na hosting a tohle mi přijde jako nejpravděpodobnější příčina mého problému.

Díky za jakékoliv rady!

Editováno 7. března 21:47
 
Odpovědět
7. března 21:47
Avatar
Odpovídá na Jaroslav Merta
Jaroslav Merta:8. března 14:44

Problém vyřešen! Začátečnická chybička, která mě stála 3 dny nervů a opětovného hledání zenu :-)

Co mi pomohlo zjistit příčinu:
V administraci Onebit je možné nastavit vypisování chyb PHP. Takže místo obecných chyb http protokolu se mi začali vypisovat konkrétní soubory, které aplikace nemůže dohledat.
Nefunkčnost skutečně vyvolával autoloader.php, ale příčina byla v mé nedůslednosti v pojmenování tříd!
Soubor třídy jsem nechtěně pojmenoval Webpage.php, ale třída se jmenovala WebPage, to je moje varianta třídy Article, takže se web zasekl hned u vstupu.

To je celé!

Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět
8. března 14:44
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na Jaroslav Merta
Jaroslav Merta:8. března 16:08

Ještě dodám, že na localhostu mi apache nerozlišoval velká a malá písmena v pojmenování souborů a tříd, proto jsem to při testování neodhalil a tahle možnost mě ani nenapadla na produkci. Neměl jsem tušení, že to vůbec na apachi nastavit jde :-)

 
Nahoru Odpovědět
8. března 16:08
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.