[ goropad @ 16.05.2016. 09:26 ] @
Upravo sam promenio os, sa windowsa presao sam na linux i namucih se oko dozvola za .php fajlove. Mozda ovo nije mesto za temu, ali potrebna su mi iskustva php programera. Meni je sad sajt na localhostu, ali da su recimo na serveru, koji chmod da im dam, sad mi je 777, znaci totalna dozvola za sve. Ali predpostavljam da to nije bezbedno. Nego sam to uradio da se ne mucim oko dozvola. Dakle: vlasnik, grupa, svi ? koje dozvole? hvala.
[ plus_minus @ 16.05.2016. 09:47 ] @
0775 je ok za lokal. Dakle, ne moraš 0777.

Vlasnik i grupa kojoj pripada vlasnik + server proces (www-data), treba da ima dozvole da čita, piše i da izvršava. Ostali - read only, samo čitanje.

Kada taj sajt koji radiš, uploaduješ sa localhost-a na (pretpostavljam) shared hosting, jednostavno ih uploaduj, kao što si to činio i pod windowsom. Filezilla.
U 99.99% slučajeva, sve dozvole treba da su regulisane od strane provajdera, automatizovane (zato postoje *nix network admini, jel' da... zato ih i plaćaju), gde kasnije kroz cli/ssh ili GUI program možeš da modifikuješ ili direktorijume ili fajlove pojedinačno, ali kao što rekoh, onda kada ih uploaduješ i proveriš da li to radi, isto je kao što ti je i do sada bilo, dok si bio na windozi što se tiče dozvola.

Konkretno, za debian/ubuntu (za dev./testing setup, localhost na tvojoj mašini):



sudo chown -R www-data:www-data /var/www/sajt
sudo chmod -R 775 /var/www/sajt



I gotovo.

/var/www/sajt - prilagodi da bude kako jeste kod tebe.

Pre toga, dodaj samog sebe kao korisnika da budeš i u www-data (www-data jeste zapravo apache) grupi, logično.
"Sjedini se" sa apache serverom.

Npr..



sudo adduser goropad www-data
sudo adduser www-data goropad



I to je to.

Evo recimo kako izgleda jedan direktorijum sa dozvolama kada je u pitanju shared hosting na Lupiji. Ništa pod milim bogom nisam pipnuo ja lično povodom dozvola nakon upload-a, sve automatski prekršteno prilikom upload-a, a praksa sa dozvolama na mom PC računaru je identična kao gore.



[Ovu poruku je menjao plus_minus dana 16.05.2016. u 11:01 GMT+1]
[ goropad @ 16.05.2016. 09:59 ] @
Odlicno. To me je brinulo.

E sad imam jos jedno pitanje:

$root = realpath($_SERVER["DOCUMENT_ROOT"]);

E sad na windowsu to $root koristim sa backslash \ i onda dodajem sta jos treba

na linuxu sad moram da menjam to u / .. Inace koristim localhost putanju, onu iz browsera ali za reguire nece to da radi, nego moram celu putanju. Jer ima neki predlog? Ne bih koristio relativne putanje..
[ plus_minus @ 16.05.2016. 10:14 ] @
Ma kakav bre realpath kakvi bakrači.. za $_SERVER['DOCUMENT_ROOT'] .. ?!?

realpath pravi apsolutnu putanju od relativne putanje, a DOCUMENT_ROOT jeste apsolutna putanja.. *(čitaj php manual malo više)

__DIR__ ili samo $_SEVER['DOCUMENT_ROOT'], s' tim što ćeš (ako koristiš) __DIR__ da upišeš u nekom fajlu koji zaista stoji u ROOT direktorijumu i nigde drugde.
U protivnom ćeš da dobiješ apsolutnu putanju direktorijuma gde je skripta u kojoj se nalazi pozivanje magičnog __DIR__.

I čisto sumnjam da moraš da menjaš bilo šta sada povodom backslash-a. ...

Windows inače, kada je u pitanju apache i putanje, to jest, kada je u pitanju apache na windowsu... ovakva putanja: C:\www\xampp\blabla\moj_sajt/klase/shared/ime_neke_klase.php jeste potpuno - ok.

I ako si već upisivao apsolutne putanje u neki fajl, prethodno generisane za dalje čitanje *(što je jako loša praksa, btw), str_replace('\\','/',$path) rešava te sitnice...
[ Aleksandar Đokić @ 16.05.2016. 10:49 ] @
Ako ti sve radi na localhost-u sta te briga koje su dozvole ;) - inace je to ozbiljna stvar kad je u pitanju shared hostovanje.