×
Creating solutions

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
No part of this article may be reproduced without mention of the author and URL to this website.
For more information, see the About section.

Comments

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.

Add a comment

Name (required)
Website
Message (required)
Submit
From latest