2009-05-05 13 views
5

मैं PHP में एक साधारण वेब ऐप लिख रहा हूं जिसके लिए सर्वर पर निर्देशिका में लेखन पहुंच की आवश्यकता है, यदि निर्देशिका लिखने योग्य नहीं है, तो मैं निर्देशिका के मालिक को सेट करने के लिए समझाते हुए एक त्रुटि संदेश प्रदर्शित करना चाहता हूं वेबसर्वर को चलाया जा रहा है (उदाहरण के लिए www-data, कोई नहीं) लेकिन अधिकांश लोगों को यह नहीं पता है कि यह कहने में सक्षम होना अच्छा होगा कि निर्देशिका को किसने चिह्नित किया है। क्या इसे PHP से ढूंढना संभव है?क्या मुझे पता चल सकता है कि कौन सा उपयोगकर्ता वेब सर्वर को PHP में चलाया जा रहा है?

+0

यह http://stackoverflow.com/questions/805907/get-apache-linux-user-from-php पर एक बहुत ही समान प्रश्न है। आपको वहां भी आपका उत्तर मिल सकता है। – zombat

उत्तर

0

आप कुछ बैश चला सकते हैं, तो आप whoami उपयोग कर सकते हैं या आप /proc

3

त्वरित और गंदा चाल का उपयोग मैं एक फ़ाइल में लिखने के लिए है में चारों ओर से प्रहार कर सकता है /tmp/ पर। यह PHP प्रक्रिया द्वारा उपयोग किए गए उपयोगकर्ता और समूह के साथ बनाया जाना चाहिए।

0

यह त्रुटि संदेश एक विंडोज सर्वर वातावरण में अलग हो जाता है। "कृपया सुनिश्चित करें कि वेब सर्वर निर्देशिका में लेखन पहुंच है" शायद एक बेहतर त्रुटि संदेश है।

2

लिनक्स/यूनिक्स पर हैं:

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

मैं इसका उपयोग कर रहा हूं लेकिन यह कुछ भी प्रिंट नहीं करता है। –

3

यूनिक्स प्लेटफार्मों पर, इस समाधान भी पर सुरक्षित मोड के साथ, काम कर सकते हैं, बशर्ते कि POSIX विस्तार स्थापित या में संकलित किया गया है

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

डॉक्स here हैं।

संबंधित मुद्दे