PDA

Pogčedajte punu verziju : PHP upload fajla problem


vendi
19. 10. 2007., 23:05
Pozdrav svima,

odavno se nisam javljala. Sada imam jedan veliki problem i molim sve dzentlmene da bi pomognu. :)

Radim skriptu za upload fajlova. Svi fajlovi koje sam postavila preko ftp-a imaju vlasnika mog ftp usera. kada sa skriptom kreiram novi direktorijum za unos fajla, direktorijum galerija mora biti 777. taj direktorijum koji kreiram u okviru galerije je u vlasnistvu apache-a. sta da radim?

mislila sam da napravim neki dir koji nije javan i da tamo uplodujem i onda da prebacim u ciljni dir. medjutim uvek dobijem gresku. ciljni dir ima 755.

MorenoArdohain
19. 10. 2007., 23:17
Nisam dzentlmen :) ali sta tacno zelis da uradis?

vendi
19. 10. 2007., 23:21
zelim da dinamicki kreiram direktorijume unutar dir galerija i da u taj novi dir ubacim slike preko php skripta.

galerija dir mora da ima 777 zar ne? a kada nakon upload zelim da promenim chmod na 755 ne mogu. vlasnik galerija dir je admin:imedomena a dira koji php kreira apache:apache.

Pomoc

MorenoArdohain
19. 10. 2007., 23:34
I za taj "galerija" dir owner mora biti apache:apache.

vendi
19. 10. 2007., 23:42
chown("../galerija", "apache:apache");

sam probala i javlja false nakon var_dumpa

imam negde gresku?

MorenoArdohain
19. 10. 2007., 23:47
To moras kao root user, pretpostavljam da si tu komandu izvrsila iz browsera.

Imas li shell access na server?

vendi
20. 10. 2007., 07:53
da, iz browsera sam pokrenula komandu. Shell access nemam :( ali bih mozda mogla upitati podrsku na hostingu da mi to omoguci.

kazes da bi galerija trebala da ima apache:apache? nakon toga ja mogu da dodajem direktorijume i fajlove preko weba? KOji mod da bude kod novih direktorijuma?

ako ne dobijem shell access, sta onda ciniti?

Blood
20. 10. 2007., 13:00
nisam bas najbolje razumeo, ali ako zelis da pravis novi direktorijum to radi preko

mkdir("/galerija/1",0777);

ako ovo ne uspe, uvek mozes da probas sa

chmod("/galerija/1",0777);

ivanhoe
20. 10. 2007., 19:06
pristupi preko FTP-a tom galerija dir-u, i onda mu rucno promeni privilegije (ako koristis Total Commander za FTP imas u meniju Files->Change attributes opciju), i tu stavis da ti galerija dir bude 770 (za slucaj da je apache dodat u tvoj grupu) ili 777 (ovo ce sigurno da sljaka, ali probaj ono prvo ipak jer ovako svako na serveru ima full pristup tom dir-u)...

i onda dalje kreiraj direktorijume i setuj dozvole preko php-a...

vendi
20. 10. 2007., 20:32
Da sa 777 radi ali kada zelim da uz pomoc php-a nakon kreiranja direktorijuma promenim 777 jednostavno ne mogu. kao ftp user imam nalog admin@nesto a preko php apache.

ivanhoe
20. 10. 2007., 22:27
svaki user (izuzev root-a, odnosno superusera) moze da menja privilegije samo svojih fajlova, znaci php moze da menja pristup samo fajlovima kojima je vlasnik apache, i isto tako ti preko FTP mozes da menjas privilegije samo fajlovima kojima si ti vlasnik. I to je to, tu ne mozes nista da promenis, nego treba da osmislis organizaciju koja ce da ti omoguciti da radis sa tim limitom u vidu...

moj predlog: stavi galeriju da bude 777, i onda sa php-om kreiraj u njoj dinamicke dir-ove i fajlove.... tim fajlovima i folderima koje si kreirala iz php-a ces moci da menjas privilegije sa chmod, a dir galerija ionako ne moras vise da diras...

Misha
20. 10. 2007., 22:44
chown("../galerija", "apache:apache");

sam probala i javlja false nakon var_dumpa

imam negde gresku?

"apache:apache" je moguce iz shell-a, al ne i iz PHP-a.

Iz PHP-a bi morala:
chown("../galerija", "apache");
chgrp("../galerija", "apache");

S'tim sto ne mozes da promenis u bilo koju grupu, vec samo u onu ciji si clan. A vec neko rece da vlasnika moze da promeni samo superuser.

Ako se i dalje ove komande budu kondirile obavezno proveri jel ukljucen safe mode, posto to ume da pomrsi konce.

vendi
21. 10. 2007., 08:01
ovo sa galerija 777 je ok i sa kreiranjem dinamickih fajlova je isto ok, problem je da nakon kreiranja tih direkotrijuma preko ftp-a treba uplodovati sve slike i onda moja skripta pravi resize i kreira male slike :(

Misha
21. 10. 2007., 11:44
ovo sa galerija 777 je ok i sa kreiranjem dinamickih fajlova je isto ok, problem je da nakon kreiranja tih direkotrijuma preko ftp-a treba uplodovati sve slike i onda moja skripta pravi resize i kreira male slike :(

Pazi, ja na mom hostingu mogu glat da kombinujem rad sa file-ovima preko PHP-a i preko FTP-a. Recimo uploadujem file uz pomoc FTP-a a promenim mu privilegije iz PHP-a. To je zato sto je isti user i za FTP i za PHP kontekst.

A to je moguce jedino ako se PHP izvrsava kao CGI a ne kao Apache module sto je verujem slucaj kod tebe. Ja bi izneo ovaj problem hosting provideru ... cak mozda i krenuo da razmisljam o promeni hostinga zbog ovakvih "sitnica".

A ako si lokovana za njih ... pogledaj ovo kao zamenu za FTP:
http://upload.thinfile.com/upload/
http://www.element-it.com/DemoMultiPOW.aspx

Ili ako ti se bas programira :-) mozes i iz PHP-a da radis u FTP kontekstu koristeci ove f-je: http://www.php.net/manual/en/ref.ftp.php

ivanhoe
21. 10. 2007., 19:06
ovo sa galerija 777 je ok i sa kreiranjem dinamickih fajlova je isto ok, problem je da nakon kreiranja tih direkotrijuma preko ftp-a treba uplodovati sve slike i onda moja skripta pravi resize i kreira male slike :(

ja tu tehniku koristim stalno, znaci to sigurno moze tako, verovatno se samo ne razumemo.. Ako mozes postuj taj komad koda i koje su ti privilegije na kojim fajlovima..

Znaci da rezimiram, tvoja skripta kreira nove fajlove(thumbnails), to moze da radi u bilo kom dir-u (bez obzira na vlasnika) ako je on setovan na 777. Ukoliko je dir kreiran preko php-a, kao sto sam ti predlagao, onda moze da bude setovan i na 755, i moci ces da kreiras nove fajlove u njemu preko php-a (sem eventualno u safe modu)... naravno uploadovane (velike) slike moraju da budu 644 da bi php mogao da ih cita (ako se uploaduju preko ftp pa im je vlasnik admin)...

vendi
21. 10. 2007., 21:34
hvala svima,

izgleda da sam potpuno zaboravila na to da direktorijum galerija kreiram preko php-a :) pokusacu pa vam se javljam. hvala jos jednom