2008-10-12 10 views

Odpowiedz

11

Edytujesz katalog wyższego poziomu, więc użytkownik PHP musi mieć prawo zapisu do tego katalogu.

0

Spróbuj uruchomić następujący skrypt:

print_r(posix_getpwuid(getmyuid())); 
print_r(pathinfo($YOUR_PATH)); 

I zobaczyć, co to zwraca.

2

To prawdopodobnie dlatego, że apache nie jest właścicielem katalogu nadrzędnego. Zmiana nazwy (lub przeniesienie) pliku to w zasadzie to samo, co tworzenie nowego pliku.

2

wyjaśnienie, php można zmienić nazwy tylko katalogów ma faktyczną własność przez:

-rwxrwxrwx user user temp/ 
-rwxr-xr-x apache apache temp2/ 
-rw-r--r-- user user script.php 

zakładać script.php stara się zmienić nazwę tych dwóch katalogów:

// this operation fails as PHP (running as apache) does not own "temp", 
// despite having write permissions  
rename('temp', 'temp.bak'); 

// this operation is successful as PHP owns "temp2" 
rename('temp2, 'temp.bak'); 
+0

Prawda w trybie awaryjnym, ale we wszystkich innych przypadkach własność nie jest wymagana - wystarczy prosty chmod z odpowiednimi uprawnieniami. – brezanac

0

Inną rzeczą, która może pomóc ci rodzaje sytuacji to próba obniżenia uprawnień. Widziałem okazje, w których apache odmawia uprawnień do działania, ponieważ jego uprawnienia są ustawione na wysokie. Domyślam się, że ma to zachęcić do dobrych praktyk bezpieczeństwa.

Powiązane problemy