Zend Framework: zaten orada dosyasına erişemiyor

1 Cevap php

Ben zend framework mekanizması ile yüklenen bir dosyayı okumak ve tarayıcıya geri göndermek için çalışıyorum.

Ben kontrol gibi dosya istenilen yere doğru yüklenen ve olmuştur

su www-data

ve ls ve bir kedinin sonra, web kullanıcı okumak ve düzgün değiştirebilirsiniz.

Sorun bir denetleyici içinde ben çalıştığınızda olduğunu:

if(!file_exists($fileName)) {
die("File ($fileName) wasnt set or it didnt exist");
}

$ FileNamebir dize olmasına rağmen ben her zaman, (...) ölmek alıyorum ve ben bu konumu görüntülemek ben her zaman (daha önce belirtildiği gibi) komut satırından okuyabilirsiniz.

ls çıktı:

$ ls -lah
total 112K
drwxr-xr-x 2 www-data www-data 4.0K 2009-10-07 18:21 .
drwxr-xr-x 3 www-data www-data 4.0K 2009-10-07 13:57 ..
-rw-r--r-- 1 www-data www-data  70K 2009-10-07 17:33 Eclipse_Icon_by_TZR_observer.png
-rw-r--r-- 1 www-data www-data  27K 2009-10-07 18:24 eclipse_logo2.png

Stat çıkışı:

stat() [function.stat]: stat failed for .../eclipse_logo2.png

Ben "30 gün boyunca deneyin" sitesi için çok benzer bir soru gördüm, bu yüzden başıma bir şey değildir ...

Herhangi bir fikir?

1 Cevap

PHP tarafında oluşturulan dosya sahibi Apache olacak çünkü chmod yeni oluşturulan dosyaya sahip (grup: www-data, httpd, www, ya da benzeri bir şey). Www-data bunu sahibi ve yanlış izinlere sahip olduğundan yüzden bir dahaki sefere PHP dosyasına erişemiyor.

Here's how you create new files so that you can access them later.
<?php
$path = '/path/to/new/file';
touch($path)
chmod($path, 0777);
// TRY to change group, this usually fails
@chgrp($path, filegroup(__FILE__)); 
// TRY to change owner, this usually fails
@chown($path, fileowner(__FILE__));