अपलोड को संभालने के लिए, क्लासिक समाधान मुख्य वेबस्पेस से वास्तविक निर्देशिका को स्थानांतरित करना है, इसे केवल एक नए संस्करण के लिए छोड़ दिया जाना चाहिए (जैसा कि मैं नीचे लिपि में करता हूं) और फिर अपाचे को 'उपनाम' में उपयोग करना वेबसाइट के हिस्से के रूप में वापस जगह में।
Alias /uploads /home/user/uploads/
यदि आपके पास सर्वर का अधिक नियंत्रण नहीं है तो आपके लिए कम विकल्प हैं।
मुझे एक स्क्रिप्ट मिली है जिसे मैं किसी दिए गए स्क्रिप्ट को dev/live sites (वे दोनों एक ही सर्वर पर चलाते हैं) पर तैनात करने के लिए उपयोग करते हैं।
#!/bin/sh
REV=2410
REVDIR=$REV.20090602-1027
REPOSITORY=svn+ssh://[email protected]/var/svn/website.com/trunk
IMAGES=$REVDIR/php/i
STATIC1=$REVDIR/anothersite.co.uk
svn export --revision $REV $REPOSITORY $REVDIR
mkdir -p $REVDIR/tmp/templates_c
chown -R username: $REVDIR
chmod -R 777 $REVDIR/tmp $REVDIR/php/cache/
chown -R nobody: $REVDIR/tmp $REVDIR/php/cache/ $IMAGES
dos2unix $REVDIR/bin/*sh $REVDIR/bin/*php
chmod 755 $REVDIR/bin/*sh $REVDIR/bin/*php
# chmod -x all the non-directories in images
find $IMAGES -type f -perm -a+x | xargs -r chmod --quiet -x
find $STATIC1 -type f -perm -a+x | xargs -r chmod --quiet -x
ls -l $IMAGES/* | grep -- "-x"
rm dev && ln -s $REVDIR dev
मैंने संशोधित संख्या, और दिनांक/समय चेक-आउट निर्देशिका नाम के लिए उपयोग किया है। मध्य में chmod भी छवियों पर अनुमतियों को ठीक कर देता है ठीक है क्योंकि वे हमारे समर्पित छवि सर्वर से भी जुड़े हुए हैं।
आखिरी चीज जो होती है वह पुरानी सिम्लिंक है .../वेबसाइट/dev/नई चेक आउट निर्देशिका से जुड़ जाती है। अपाचे कॉन्फ़िगरेशन के बाद इसमें एक दस्तावेज़-रूट है .../वेबसाइट/dev/htdocs/
एक मिलान भी है .../वेबसाइट/लाइव/htdocs/docroot, और फिर, 'लाइव' एक और सिम्लिंक है। यह मेरी दूसरी स्क्रिप्ट है जो लाइव सिम्लिंक को हटा देगी, और जो भी देव बिंदुओं के साथ इसे प्रतिस्थापित करेगी।
#!/bin/sh
# remove live, and copy the dir pointed to by dev, to be the live symlink
rm live && cp -d dev live
मैं केवल हर कुछ dats साइट का एक नया संस्करण धक्का कर रहा हूँ, तो आप एक दिन (मेरी एपीसी कैश के कुछ संस्करणों की तुलना में अधिक नहीं करना चाहते हैं यह कई बार उपयोग किया जा करने के लिए नहीं चाहते हो सकता है साइट के आसपास), लेकिन मेरे लिए, मुझे यह लगता है कि यह मेरी खुद की तैनाती के लिए बहुत अधिक समस्या मुक्त है।
स्रोत
2009-05-04 15:44:03
मुझे यह एक दिलचस्प सवाल है। मैं स्वचालित अद्यतनों को कभी भी लागू नहीं करूंगा लेकिन मैं जो चाहता हूं वह एक चेक आउट लाइव कॉपी की तरह है जो मैं स्विच कर सकता हूं और सब ... तो एक काम करने की प्रतिलिपि बनाने के बजाय और फिर वहां से लाइव सर्वर पर अपलोड करना सर्वर पर लाइव 'काम करने' की प्रतिलिपि बनाने के लिए। शायद यह होना चाहिए कि यह कैसे होना चाहिए लेकिन मैंने कभी कोशिश नहीं की है। – markus
मुझे लगता है कि स्टैक ओवरफ्लो सुन रहा है, वही –
एक हालिया पॉडकास्ट मैंने सुना है (आईटीसी से) इस मुद्दे पर ब्लॉग प्रविष्टि को http://timothyfitz.wordpress.com/2009/02/10/continuous-deployment पर भी संदर्भित किया गया है -मैट-इमू-कर-असंभव-पचास बार-एक-दिन/मैं सिर्फ कुछ हफ्ते एक मिनट को पसंद करता हूं, लेकिन फिर, वास्तव में मैं बस विकास कर रहा हूं। –