PHP kullanarak Directory yazın: Bu izinleri bir sorun var mı?

5 Cevap php

Bir jpg görüntü oluşturabilirsiniz böylece benim PHP komut bir dosyaya yazar.

fwrite($handle, $GLOBALS['HTTP_RAW_POST_DATA']);
fclose($handle);    
print $newfile.'.jpg';

Ben yeni bir sunucuya ancak görüntü kurtulur asla bu senaryoyu koyduk. Klasörün izni bunun 755 kaydeder ama bunu sahibi değil. Son kez, ben bu PHP olarak çalışır ne gibi apache için dizin sahibi değiştirerek sorunu sabit düşünüyorum. Ben kök değilim çünkü ben yine aynı yapamaz.

Öncelikle., Başka bir düzeltme var mı? Geçen seferki gibi dizinin sahibini değiştirmek olsaydı İkincisi, bu sorunu çözecektir?

Herhangi bir yardım için teşekkür ederiz

5 Cevap

  1. 777 klasörün izinlerini değiştirmek (rwxrwxrwx)
  2. PHP mkdir ile alt dizin oluşturmak
  3. geri 755 dizin izinlerini değiştirmek (rwxr-xr-x) veya daha iyi 711 (rwx--x--x)
  4. artık şimdi www-data ait (ya da hangisi kullanıcı Apache kullanan) bir alt dizininde, resimlerinizi kaydedin.

BTW. Eğer aşağıdaki kodu azaltabilirsiniz:

fopen($newfile.'.jpg','wb');
fwrite($handle, $GLOBALS['HTTP_RAW_POST_DATA']);
fclose($handle);    
print $newfile.'.jpg';

için:

file_put_contents($newfile.'.jpg', 
                  file_get_contents('php://input', 
                                      FILE_BINARY), 
                  FILE_BINARY)

Eğer sahibi değilseniz, o zaman evet, 755 olan dizin bir sorundur.

Bunu yıkmak için, 755:

  • kullanıcı (sahibi) (4), (2), yazma ve yürütme okuma (1)
  • grubu (4) okuma ve yürütme vardır (1)
  • diğerleri (4) okuma ve yürütme var (1)

only sahibi 755 ile yazma ayrıcalıkları dikkat edin.

P.S. açık başarısız olursa fopen bir hata dönmelidir.

Bu kullanabilirsiniz:

>chown dir_name www-data

Ben birkaç hafta önce benzer bir sorun vardı. Bu sunucusunda ayarlanan PHP güvenli mod olarak sona erdi.

Dikkat edin!

Senaryonun üstündeki error_reporting (E_ALL) koyun ve bir resim kaydetmek için çalışırken herhangi bir uyarı basar olmadığını kontrol edin.