×
Vytvárame riešenia

Hlásenie 403 Forbidden

Keďže dlhšiu dobu som profesionálnejšie nepracoval s PHP a Apache, tak narážam na rôzne problémové situácie, ktoré musím postupne riešiť. Jednou z nich bolo aj chybové hlásenie 403 Forbidden, ktoré vznikalo v situácii, keď som sa snažil v rámci AJAX-u cez metódu GET získať súbor na serveri.
Situácia bola o to zaujímavejšia, že ak som dokument vytvoril v konzole na serveri, dáta nešli načítať, ale ak som tie isté dáta nakopíroval na lokálny počítač a späť nahral na server, dáta už boli cez GET dostupné. Keďže nie som odborník na Linux, asi ide o dáky príznak súboru, ktorý moja konzola súborom nevytvára, ale FTP klient s ním pracuje. Na základe tohto zistenia sa mi vnukli tri možnosti:
  • manuálne robiť download a upload dokumentov,
  • zmeniť vytváranie súborov a identifikovať mód, v ktorom bude metóda GET podporovaná,
  • vytvoriť interface,
Nakoniec som sa rozhodol pre tretiu možnosť, kde dáta spracovávam / načítavam na serveri a následne odosielam klientovi. V rámci hľadania riešení na internete som si myslel, že tento problém súvisí s nastaveniami servera Apache, kde ak sa GET-uje rovnaká cesta ako je adresárová štruktúra servera, tak dochádza k hláseniu 403 Forbidden. Nerozumel som ale prečo mi súbory nahrané z lokálneho počítača nahrá a súbory vytvorené na serveri nenahrá. Na základe tejto nezodpovedanej otázky som pristúpil k záveru, že dôvodom bude s najväčšou pravdepodobnosťou povolený mód pre súbor. Žiaľ zmenou kódu na tretí variant sa mi výrazne spomalilo načítavanie stránok. Išlo takmer až o sekundové oneskorenie čo bolo už zjavné aj pri zobrazovaní.
Na ďalší deň mi to nedalo a vrátil som sa späť k skúmaniu problému. Môj tip na príčinu problému bol ako sa ukázalo správny. Robil som s módom 0700, ktorý nedovoľuje čítať súbory z adresára. Musel som teda zmeniť mód pre tvorbu adresárov na iný. Vo Free Commanderi som zistil, že adresár má príznak rwx --- ---. Začal som preto hľadať správny mód. Nakoniec som uspel s módom 0755, ktorý má príznak rwx r-w r-x, teda rovnaký, ako súbory nahraté na server. Takže nateraz mám jeden problém vyriešený.

Záver

Aj keď som tento problém vyriešil, ešte stále mám nezodpovedanú otázku, prečo na internom serveri s LAMP-om som tento problém s módom 0700 nemal, ale u poskytovateľa hostingu už áno. Ide o dáke nastavenia oprávnení v Linuxe? V prípade, že máte s touto problematikou skúsenosti, budem rád, ak svoje poznatky alebo odpoveď na moju nezodpovedanú otázku napíšte do komentára.
Autor: Matej Lednár
Dátum: 22.11.2012
Kategória: Programovanie
Značky: php, 403-forbidden, chmod, error


Programovanie,PHP,403-forbidden,chmod,error
Žiadna časť tohto článku nesmie byť reprodukovaná bez uvedenia autora a URL na túto stránku.
Viac informácií nájdete v sekcii O projekte.

Komentáre

Jozef Unixovy 16.12.2012 22:36 Na systemoch typu domaci NAS je sprava opraveneni neformalna, volena co najjednoduchsie. Cize root, a "bezny pouzivatel". Pod "beznym pouzivatelom" bezia asi vsetky servery atd, cize ked cez FTP nieco nahra, s pravami "bezny pouzivatel" webovy server to polahky precita. U poskytovatela webu, su opravnenia, a pouzivatelske konta organizovane strukturovanejsie. A aby som rozsiril nezmierne obrovske vedomosti autora tohto blogu, pri tom cisle opraveni sa jedna o bitovu masku. Prve cislo, pouzivatel ktoremu subor patri, druhe skupina pouzivatelov suboru, tretie vsetci ostatni pouzivatelia. 4-r, 2-w, 1-x(spustanie). Vysledne cislo tvori sucet ziadanych opravneni.
Autor 17.12.2012 20:33 Ďakujem za doplnenie.

Pridať komentár

Meno (povinné)
Web
Správa (povinné)
Odoslať
Od najnovších