2009-05-05 3 views
5

Sunucuda bir dizine yazma erişimi olması gereken PHP'de basit bir web uygulaması yazıyorum, dizin yazılabilir değilse dizinin sahibini her kim için ayarlamak için açıklayan bir hata iletisi görüntülemek istiyorum web sunucusu (örneğin, www-data, nobody) olarak çalıştırılıyor, fakat çoğu kişi bunu bilmediği için, kimlerden kimi seçtiklerini söyleyebilmemiz güzel olurdu. Bunu PHP'den bulmak mümkün mü?Web sunucusunun hangi kullanıcının PHP'de çalıştırıldığını bulabilir miyim?

+0

Bu, http://stackoverflow.com/questions/805907/get-apache-linux-user-from-php adresine çok benzer bir sorudur. Cevabınızı orada da bulabilirsiniz. – zombat

cevap

0

bazı bash çalıştırabilirsiniz varsa, whoami kullanabilir veya /proc

3

kullandığım kirli hızlı ve-hüner bir dosyayı yazmaktır burnunuzu sokacak mümkün olabilir /tmp/. PHP süreci tarafından kullanılan kullanıcı ve grup ile oluşturulmalıdır.

0

Bu hata iletisi, Windows sunucu ortamında ayrı düşüyor. "Lütfen web sunucusunun dizine yazma izni olduğundan emin olun" muhtemelen daha iyi bir hata mesajıdır. linux/unix Eğer

2

: Unix platformlarda

<?php 
$temp = tmpfile(); 
print_r(posix_getpwuid(fileowner($temp))); 
?> 
18
<?php 
    echo exec('whoami'); 
?> 
+1

Bunu kullanıyorum ama hiçbir şey yazdırmıyor. –

3

, bu çözüm, güvenli modda bile işe yarayabilecek POSIX uzantısı yüklü veya derlenmiş şartıyla

$user = posix_getpwuid(posix_geteuid()); 
echo $user['name']; 
.

Belgeler, here'dur.