2013-08-07 11 views
8

मुझे पता है कि session.save_path निर्देश (phpinfo(), session_save_path() इत्यादि) के मूल्य प्राप्त करने के आधा दर्जन तरीके हैं, लेकिन जब मान एक खाली स्ट्रिंग है, क्योंकि यह डिफ़ॉल्ट रूप से है, वास्तविक पथ कई में से कोई भी हो सकता है स्थानों। मैंने पढ़ा है कि यह आमतौर पर /tmp है, सिवाय इसके कि जब यह /var/lib/php5 है, लेकिन ओएस एक्स माउंटेन शेर पर यह निश्चित रूप से /private/var/tmp है। विंडोज़ पर, यह शायद C:\Windows\Temp है, लेकिन कौन जानता है।* वास्तविक * सत्र सहेजें पथ निर्धारित करने का कोई तरीका है?

मैं स्थान निर्दिष्ट कर सकता हूं, लेकिन यह वास्तव में मेरी मदद नहीं करेगा। मैं एक मुश्किल समस्या का निदान करने की कोशिश कर रहा हूं और मैं जानना चाहता हूं कि सर्वर पर वर्तमान स्थान क्या है जिसके पास मेरे पास पूर्ण पहुंच नहीं है। अगर ऐसा करने का कोई सही तरीका है, तो मैं इसे ढूंढने में सक्षम नहीं हूं। मैं चालाक हैक के लिए खुला हूँ।

+0

मुझे लगता है कि PHP 'save_path' खाली होने पर अस्थायी फ़ोल्डर का उपयोग करेगा। आप ['sys_get_temp_dir()'] (http://php.net/manual/en/function.sys-get-temp-dir.php) का उपयोग करने का प्रयास कर सकते हैं। –

+0

यह एक सिद्धांत है जिसे मैंने नहीं माना था, लेकिन दुर्भाग्यवश यह गलत है। जब मैं 'php -r' echo sys_get_temp_dir(); '' कमांड लाइन (ओएस एक्स 10.8.4) से चलाता हूं, तो मुझे '/ var/फ़ोल्डर्स/_k/... मिलता है। – Metaphile

+1

दरअसल, आपका परीक्षण गलत है। Temp फ़ोल्डर्स प्रति उपयोगकर्ता बदल सकते हैं। यदि मैं ओएसएक्स में कमांड लाइन से इसे चलाता हूं तो मुझे एक समान पथ मिलता है, लेकिन यह अप्रासंगिक है क्योंकि सर्वर मेरे उपयोगकर्ता खाते के अंतर्गत नहीं चलता है। अपाचे के माध्यम से जाने वाले परीक्षण पृष्ठ से 'sys_get_temp_dir()' प्रिंटिंग मुझे '/ var/tmp' देता है, जिसमें सत्र फ़ाइल होती है। –

उत्तर

4

मैंने इसकी पुष्टि करने के लिए PHP स्रोत कोड की समीक्षा नहीं की है, लेकिन ऐसा लगता है कि session.save_path खाली है, PHP sys_get_temp_dir() (जो उपयोगकर्ता द्वारा भिन्न होता है) का मान उपयोग करता है।

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

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