के साथ में लॉग इन करने के लिए कैसे की तरह सुविधा में एक लॉग suPHP की फाइल अनुमति का उपयोग करने के लिए डिजाइन किया जा सकता है। उदाहरण के लिए, अगर मैं में एक वेबसाइट www.example.com
पर और अपने घर निर्देशिका के साथ निम्न दो उपयोगकर्ताओं को एक PHP स्क्रिप्ट test.php
के साथ प्रत्येक, और एक validateUser.php
स्क्रिप्ट जिसे किसी अन्य उपयोगकर्ता के अंतर्गत आता है (रूट, www-डेटा, अपाचे ...) है /home
निर्देशिका।कार्यान्वयन suPHP
/home/ ├── validateUser.php ├── user1 │ └── test.php └── user2 └── test.php
user1
ठीक इसके विपरीत www.example.com/user2/test.php
जाकर user2's
स्क्रिप्ट का उपयोग कर सकते हैं, और। इसके बजाय मैं क्या चाहते हैं, सब आने वाले अनुरोधों को चैनल पर, mod_rewrite की तरह कुछ का उपयोग कर, validateUser.php
है। हालांकि, ऐसा करने validateUser.php
के मालिक, नहीं लक्ष्य test.php
स्क्रिप्ट के रूप में सभी स्क्रिप्ट का निष्पादन का परिणाम होगा।
वहाँ वैसे भी पहले suPHP में लात मारता है, और फिर या तो जारी रखने के लिए suPHP, या पूरी तरह से गर्भपात की अनुमति देने के एक PHP स्क्रिप्ट कॉल कर सकता।
संपादित यह दूसरा इनाम मैं डाल रहा हूँ। मैंने पहली बार गुस्ताव बी/सी को दिया, उसने एक अच्छा partial answer दिया। मैं उल्लेख करता हूं कि मैंने अब तक क्या प्रयास किया है, और उनमें से कोई भी मेरे लिए क्यों काम नहीं करता है।
1) मैंने URL को रीडायरेक्ट करने के लिए mod_rewrite का उपयोग करने का प्रयास किया है ताकि उपयोगकर्ता को लॉग इन करने के लिए validateUser.php
पर रीडायरेक्ट किया जा सके या कॉल करने के लिए इच्छित स्क्रिप्ट को कॉल किया जा सके। समस्या यह है कि मैं अपने आभासी मेजबान निर्धारित किया है प्रत्येक उपयोगकर्ता के लिए अपने स्वयं के आभासी साइट है ऐसी है कि है (यानी। www.user1.example.com
, www.user2.example.com
... अगर यह एक बुरा डिजाइन दृष्टिकोण है, बेरूखी यह इंगित करने के लिए स्वतंत्र लग रहा है)। इसलिए, हालांकि ओएस के रूप में ऊपर फ़ाइल संरचना को देखता है, ऑनलाइन, रूट निर्देशिका के रूप में इस तरह के
VirtualHost = www.user1.example.com
├── validateUser.php
└── test.php
VirtualHost = www.user2.example.com
├── validateUser.php
└── test.php
स्वाभाविक रूप से मैं बस प्रत्येक उपयोगकर्ता के निर्देशिका में validateUser.php
की एक प्रति ले जाया सेट कर रहे हैं। समस्या यह है कि अब उपयोगकर्ता उस फ़ाइल को हटा सकता है और जो भी वे चाहते हैं उसे डाल सकते हैं, जैसे कि लॉग इन की आवश्यकता नहीं है। इस के चारों ओर एक घर के रास्ते फ़ोल्डर चिपचिपा (कुछ नहीं मैंने कभी की सिफारिश करेंगे एक घर फ़ोल्डर में कर रही है) बनाने के लिए और validateUser.php
जड़ के स्वामित्व बनाने के लिए है। लेकिन अब यह एएस रूट निष्पादित करेगा क्योंकि यह एसयूपीएचपी है। यही वह जगह है जहां मैंने छोड़ा था।
2) मैं गुस्ताव के mod_auth
सुझाव का उपयोग कर सकता हूं, लेकिन मुझे यह पसंद नहीं है कि यह पासवर्ड को सामने की ओर (पुराने स्कूल की वेबसाइटों की तरह) मांगे।
3) मैं 1 के लिए एक संस्करण पर विचार किया है) अगर मैं आभासी मेजबान के बीच अनुप्रेषित सकता है। उदाहरण के लिए, तो
VirtualHost = www.user1.example.com
└── test.php
VirtualHost = www.user2.example.com
└── test.php
VirtualHost = www.admin.example.com
└── validateUser.php
फिर www.admin.example.com/validateUser.php
करने के लिए उपयोगकर्ताओं से सभी यातायात को रीडायरेक्ट करने mod_rewrite का उपयोग की तरह आभासी मेजबान पुनर्गठन, और उपयोगकर्ता में (या यदि लॉगिन सफल हुआ) उपयोगकर्ता के लिए वापस पुनः निर्देशित किया जाता प्रवेश किया गया हो जिस साइट पर उन्होंने शुरुआत में लॉग इन करने का प्रयास किया था। इसका लाभ, यदि यह भी संभव है, तो यह है कि जब तक उपयोगकर्ता को अपने स्वयं के वर्चुअल होस्ट पर निर्देशित नहीं किया जाता है तब तक suPHP तब तक नहीं लाएगा।
मैं काफी आश्वस्त मेरे सवाल का कोई समाधान http://stackoverflow.com/a/9561335/654789 – puk