हम बातें करते हैं कैसे अबएक सुरक्षित तरीका PHP कोड को तैनात करने के
हम एक फ़ाइल सर्वर है (एनएफएस का प्रयोग करके) जो एक से अधिक वेब सर्वर माउंट और वेब रूट के रूप में इन माउंट का उपयोग के लिए देख रहे हैं। जब हम अपने कोडबेस को तैनात करते हैं, तो हम एनएफएस सर्वर पर एक संग्रह (tar.gz) एससीपी करते हैं और सीधे डेटा सर्वर की "वेब निर्देशिका" में डेटा को अनारक्षित करते हैं।
मुद्दा
तैनाती की प्रक्रिया के दौरान हम कुछ आई/ओ त्रुटि मिल रही हो, ज्यादातर जब एक अनुरोध की गई फ़ाइल को पढ़ सकता है नहीं किया जा: Smarty error: unable to read resource: "header.tpl"
इन त्रुटियों को दूर जाना के बाद तैनाती समाप्त हो गया है लगता है, तो हम यह मान ऐसा इसलिए है क्योंकि डेटा को सीधे वेब निर्देशिका में अनारक्षित करना चीजों का सबसे सुरक्षित नहीं है। मुझे लगता है कि हमें कुछ परमाणु की जरूरत है।
मेरे प्रश्न
हम कैसे atomically एक मौजूदा निर्देशिका (वेब सर्वर के रूट निर्देशिका) में नई फ़ाइलों की प्रतिलिपि कर सकते हैं?
संपादित
फ़ाइलों है कि हम वेब निर्देशिका में समझौता कर रहे हैं केवल उन्हीं फ़ाइलों को निर्देशिका में नहीं हैं। हम निर्देशिका में फाइलें जोड़ रहे हैं, जिसमें पहले से ही फाइलें हैं। तो निर्देशिका की प्रतिलिपि बनाना या सिम्लिंक का उपयोग करना एक विकल्प नहीं है (जिसे मैं जानता हूं)।
नाम बदलने परमाणु (mV) है, यह भी हो सकता है अपने सबसे अच्छे रूप सॉफ्ट लिंक का उपयोग करने के और वास्तविक वेब निर्देशिका /storage/www.revision.3282378 के लिए सिर्फ एक लिंक है उदाहरण के लिए – jackdoe