2009-04-10 4 views
6

मैं अपने विकास पर्यावरण के लिए एमएएमपी का उपयोग कर रहा हूं और वेब सर्वर पर/var/www/project-name/फ़ोल्डर की फ़ोल्डर संरचना को वास्तव में समझ नहीं पाया है। मैं सोच रहा हूं कि क्या आप वेब सर्वर को htdocs फ़ोल्डर में इंगित करने के लिए हैं या यह प्रोजेक्ट फ़ोल्डर की जड़ को इंगित करना है?/var/www/PHP प्रोजेक्ट के लिए फ़ोल्डर संरचना

कारण मैं पूछता हूं क्योंकि पुस्तकालयों का उद्देश्य सुरक्षा उद्देश्यों के लिए htdocs फ़ोल्डर के बाहर मौजूद होना है, लेकिन वे वेब एप्लिकेशन से कैसे इंगित किए जाते हैं? निश्चित रूप से वेब एप्लिकेशन htdocs फ़ोल्डर के बाहर फ़ोल्डर तक नहीं पहुंच सकता है यदि वेब सर्वर वेब अनुप्रयोग के लिए htdocs फ़ोल्डर को इंगित कर रहा है?

उत्तर

9

एक सरल समाधान तो जैसे एक फ़ोल्डर संरचना है। उन सभी पुस्तकालयों को रखें जिन्हें आप libraries निर्देशिका में वेब से एक्सेस नहीं करना चाहते हैं। अपने PHP कोड में, पुस्तकालय कोड तक पहुंचने के लिए निर्देश शामिल करें का उपयोग करें।

चाल यह समझना है कि PHP में आपके सिस्टम पर किसी भी फ़ाइल को शामिल किया जा सकता है, जिसने इसे एक्सेस पढ़ा है। आपकी वेबसाइट ब्राउज़ करने वाला व्यक्ति केवल आपकी वेबूट निर्देशिका के अंदर फ़ाइलों तक पहुंच सकता है।

+0

यह वही जवाब है जिसे मैं ढूंढ रहा था। बहुत बहुत धन्यवाद! – Kezzer

+0

@ किज़ज़र, क्या आप समझा सकते हैं कि वहां अपने एमएएमपी को कैसे कॉन्फ़िगर किया जाए? – doublejosh

0

आप लाइब्रेरी को PHP के include_path में रखते हैं जो सामान्य उपयोगकर्ता के लिए पहुंच योग्य नहीं है।

+0

तो अपाचे बिंदु/var/www/project/htdocs पर/या फिर कहता है कि आपके पास index.php है, आप include_path ('/ var/www/project/mylib/lib.php') कह सकते हैं? – Kezzer

1

PHP फाइल सिस्टम में किसी भी फ़ाइल तक पहुंच सकता है जिसके लिए अपाचे सर्वर उपयोगकर्ता की सही अनुमतियां होती हैं। वर्चुअल होस्ट के बिना एपैच चलाने वाले लिनक्स बॉक्स पर,/var/www आपके htdocs निर्देशिका के लिए उपयोग करने के लिए एक आम जगह है।

3

यदि आपके पास एक ही सर्वर पर एकाधिक vhosts हैं, तो प्रत्येक साइट को /var/www के अंतर्गत निर्देशिका में रखना आम बात है, और इनमें से प्रत्येक के पास htdocs फ़ोल्डर है, जिसे वेब रूट के रूप में रखा गया है। फिर आप वेब रूट के ऊपर एक फ़ोल्डर में लॉग और एप्लिकेशन-विशिष्ट पुस्तकालय रख सकते हैं।

/var/www/project-name/ 
    + webroot/ 
    + libraries/ 

प्वाइंट webroot निर्देशिका में अपनी apache2 DocumentRoot: उदाहरण के लिए .:

/var/www/lolcats.com 
/var/www/lolcats.com/htdocs 
/var/www/lolcats.com/htdocs/index.php 
/var/www/lolcats.com/lib 
/var/www/lolcats.com/log 
0

यह आपके स्थानीय वेबसाइटों को उसी तरह निर्देशिका में मैप करने के लिए एक गूढ़ विचार है जैसे आपके डोमेन काम करते हैं।

अक्सर आपके पास एक ही वेब होस्टिंग खाते पर कई वेबसाइटें होती हैं, इसलिए सेटअप को मिरर करने के लिए वर्चुअल होस्ट सेट करें।

अपने साझा होस्टिंग है:

/var/www/root 
/var/www/root/website1 
/var/www/root/website2 
/var/www/root/website3 

अपने स्थानीय पीसी पर 3 vitual मेजबान बनाएं लेकिन एक समान फ़ाइल संरचना रखने के लिए।

इसके अलावा, सर्वर कॉन्फ़िगरेशन फ़ाइलों के आधार पर साइट को अलग-अलग सेट करने के लिए अपनी कॉन्फ़िगरेशन फ़ाइलों में स्थितियों का उपयोग करें, यह सुनिश्चित करने के लिए कि एक ही कॉन्फ़िगरेशन फ़ाइल दोनों सेटअप पर काम करती है। इसका मतलब है कि आप अपनी एक-चरण निर्माण प्रक्रिया को रखते हैं।