मुझे पता है कि यह सवाल थोड़ा पुराना है, क्योंकि मैंने इसे यहां उत्तर के रूप में नहीं देखा है, मैं साझा करना चाहूंगा कि मैं सामान्य रूप से एकल-साइट गिट आधारित सेटअप और तैनाती के लिए क्या करता हूं और यह वास्तव में अच्छी तरह से काम कर रहा है, साथ ही कई से काम कर रहा है उपकरणों, स्थानों और कई डेवलपर्स के साथ (सभी अपने स्वयं के स्थानीय प्रतिनिधि होते हैं जो वे इसमें काम करते हैं)।
मैं गर्मजोशी से निम्नलिखित सेटअप का सुझाव दे सकता हूं:
यह भी उल्लिखित है (यदि आपको इसके चारों ओर अपना सिर लपेटने के लिए दूसरे संसाधन की आवश्यकता है):
यह मूल रूप से काम करता है (कम से कम तीन रिपोज के साथ):
- वेबसाइट को लाइव-होस्ट पर git के तहत डाल रहा है,
- लाइव होस्ट पर एक नया नंगे गिट रिपॉजिटरी बनाएं ।
- और फिर नंगे भंडार से अपने स्थानीय विकास गिट रेपो (ओं) के लिए कांटा।
जब काम पूरा हो जाता है, तो आप उस दूरस्थ नंगे रेपो के खिलाफ धक्का देते हैं, जिससे आपने क्लोन किया है। नंगे रेपो में लाइव रेपो (उपरोक्त प्राइम में कोड में ) के साथ सिंक करने के लिए हुक हैं ।
रेपो में वर्डप्रेस विशिष्ट सेटिंग्स के रूप में मेरे पास यह है .gitignore
:
# uploads are data, excluded from source tree
wp-content/uploads/
बाकी झुकाव। प्लगइन और विषय विन्यास मैं संस्करण / विन्यास नियंत्रण के अंतर्गत रखता हूं। यह मुझे लाइव का उपयोग करने से पहले परिवर्तनों और समीक्षा कोड को आसानी से ट्रैक करने की अनुमति देता है । मैं अपने बदलावों के साथ सुदूर पेड़ों के खिलाफ भी आसानी से विलीन हो सकता हूं। यह विशेष रूप से वर्डप्रेस कोर के खिलाफ उपयोगी है जो गिथब पर उपलब्ध है ।
यह मेरी वर्डप्रेस की अधिकांश जरूरतों के लिए बहुत अच्छा काम करता है। नंगे रेपो आपको परस्पर विरोधी परिवर्तनों को आगे बढ़ाने से रोकता है। यह लाइव-साइट को अपडेट करने से पहले एक दूरस्थ प्रतिलिपि के लिए भी सिंक करता है। इसका मतलब है, लाइव-साइट को अपडेट करना सामान्य रूप से बहुत तेज है। हुक के कारण आप चाहें तो Wordpress अपडेट हुक को बाद में भी कॉल कर सकते हैं।
अगर यह प्रयोग नहीं किया है कि गितुब हुक के साथ इसे कितना बेहतर किया जा सकता है, लेकिन मुझे आमतौर पर उनकी आवश्यकता नहीं है क्योंकि कोड स्थानीय संस्करण नियंत्रण के तहत है, न कि गितूब।
इस तरह की प्रणाली को पहली बार सेट करने के लिए, आपको यह मूल्यांकन करने के लिए कुछ समय लेना चाहिए कि क्या आपको अपने दूरस्थ होस्ट पर सभी उपकरण उपलब्ध हैं:
- एसएसएच पहुंच
- GIT
- एक निजी निर्देशिका जिसे आप फ़ाइलों और उप-निर्देशिकाओं में रख सकते हैं (जैसे आपके नंगे गिट रेपो के लिए)
पहली बार सेटअप-समय एक दो घंटे के भीतर संभव होना चाहिए। संपूर्ण वातावरण और आप पहली बार पुश प्रकाशित करते हैं।
अपने मेजबान के आधार पर, आप .git
वेब-एक्सेस से निर्देशिका को भी ढाल देना चाह सकते हैं। यहाँ कुछ उदाहरण .htaccess
कोड है जो वर्डप्रेस को उप-निर्देशिका के अंदर रखता है, जो रेपो में स्थान नहीं छोड़ता है जो ऑनलाइन प्रकाशित नहीं होता है (उपयोगी):
Options -Indexes
# fix trailing slash for .git / make it disappear + .gitignore and similar files.
RedirectMatch 404 ^/\.git(.*)$
# mask 403 on .ht* as 404
<Files ~ "^\.ht">
Order Deny,Allow
Allow from all
Satisfy All
Redirect 404 /
</Files>
RewriteEngine On
RewriteBase /
# map everything into public and set environment var
# to tag the request being valid
RewriteCond %{ENV:REDIRECT_sitealias} !set
RewriteRule ^(.*)$ /public/$1 [E=sitealias:set,L]
संक्षेप में, सार्वजनिक निर्देशिका के अंदर सब कुछ ऑनलाइन नहीं है। सार्वजनिक निर्देशिका के अंदर उदाहरण के लिए वर्डप्रेस कोडबेस हो सकता है, इसके लिए .htaccess
आपको तब आवश्यकता होगी:
RewriteEngine On
# mask as 404 if directly accessed
RewriteCond %{ENV:REDIRECT_sitealias} !set
RewriteRule .* - [L,R=404]
यह जनता के लिए सीधी पहुँच को रोकता है । इसका एक हिस्सा ।htaccess -foo का आप यहां उल्लेख कर सकते हैं: .htaccess के अनुरोधों को 403 के बजाय 404 वापस करना चाहिए । यदि आपके वातावरण में काम करता है तो पर्यावरण चर के लिए आपको परीक्षण करने की आवश्यकता है। इसके अलावा आपको यह तय करने की आवश्यकता है कि क्या आप इसे संस्करण नियंत्रण में रखते हैं या नहीं।
यदि आपके पास होस्टिंग पर अधिक नियंत्रण है, तो आप यहां और अधिक सामान (और अलग-अलग / अधिक अनुकूलित) कर सकते हैं, ऊपर दिए गए उदाहरण विशिष्ट साझा-होस्टिंग वातावरण के लिए लक्षित हैं (जो कि GIT की पेशकश करते हैं, कुछ उपयोगकर्ताओं का कहना है कि आप इसे आसानी से अपने रूप में स्थापित कर सकते हैं ठीक है, मैं आम तौर पर अपने होस्टरों को ऐसा प्रदान करने के लिए कहता हूं क्योंकि मैं पसंद करता हूं यदि वे ध्यान रखते हैं कि मैं उनके लिए क्या भुगतान करता हूं)।
नकारात्मक पक्ष पर, इसकी कुछ सामान्य समस्याएं हैं जो अन्य उत्तरों में भी उल्लिखित हैं। एक बात पर मुझे गर्व नहीं है, लेकिन विकास सर्वर को विकास की प्रतिलिपि के लिए डेटाबेस सर्वर बिंदु के लिए होस्ट होस्ट को एक परिवर्तन करने के लिए क्या काम करता है। तो आप एक डेटाबेस कॉन्फ़िगरेशन रख सकते हैं। सच में कूल नहीं। साख के कारण।
स्वचालित बैकअप
हालाँकि, मैं आमतौर पर यहां बहुत परवाह नहीं करता हूं, लेकिन इसके बजाय दैनिक बैकअप रिमोट सिस्टम पर चलते हैं जो कि वृद्धिशील रूप से खुद को किसी अन्य दूरस्थ स्थान पर संग्रहीत किया जाता है। यह आसान और सस्ता है और आपको वर्डप्रेस इंस्टॉल के साथ-साथ फाइल-अपलोड, डेटाबेस और गिट रेपो दोनों को पुनर्स्थापित करने की अनुमति देता है । मेरी बैकअप कमांड के लिए भी मैं पूरी तरह से ठीक नहीं हो सकता, लेकिन मेरे लिए वे काम हैं:
mysql: mysqldump --host=%s -u %s --password=%s %s| gzip > %s
git : git gc
git bundle
files: tar --force-local -czf %s %s
यहाँ मैं जो सुझाव देता हूँ वह यह है कि आप अपने वर्डप्रेस इंस्टालेशन की प्रक्रियाओं को वर्डप्रेस से बाहर रखें। वे एक विशिष्ट सिस्टम पर चलाने की आवश्यकता है, तो आप सामान्य रूप से उन्हें आवेदन के अंदर की जरूरत नहीं है (उदाहरण के लिए आवेदन नीचे जा सकता है, लेकिन आप की जरूरत है इन काम करना जारी है करने के लिए)।
टीम वर्क के लिए सक्षम
एक और अच्छा लाभ यह है कि आप टीम-वर्क के लिए पहले से ही सक्षम हैं। अतिरिक्त नंगे रेपो के लिए धन्यवाद आप बहुत गलत नहीं कर सकते हैं और आप अपने सहयोगियों के साथ एक मास्टर या लाइव शाखा के अलावा दूरस्थ शाखाएं भी साझा कर सकते हैं।