वर्तमान में मेरे विकास का माहौल उबंटू v12.04 VMWare के साथ है। मैं पूरी तरह से वीएम के अंदर, पूर्ण GUI के साथ काम करता हूं और केवल उबंटू के भीतर सांबा फाइल शेयरिंग का उपयोग करता हूं अगर मुझे अपने होस्ट ओएस से फाइलें प्राप्त करने की आवश्यकता होती है जो कि विंडोज 7 है। मैं सामान्य रूप से आंतरिक आईपी के माध्यम से नेटवर्क ड्राइव का उपयोग और मैप करता हूं। VM के लिए नेटवर्किंग के लिए NAT के माध्यम से VM। अन्य समाधानों का उपयोग करना VMWare के साझा फ़ोल्डर की तरह बहुत धीमा साबित हुआ। मैंने अपनी VMWare छवि सेटिंग में इसे अक्षम कर दिया है। हालाँकि मैं अपने होस्ट मशीन और वाइस वर्सा के लिए आसान कॉपी / पास्ता की अनुमति देने के लिए VMWare टूल स्थापित करता हूं।
जैसा कि मथायस ज़ीस ने बताया, अपने वीएम के साथ नेटवर्किंग / साझा किए गए फ़ोल्डरों के चयन में सावधान रहें क्योंकि कुछ समस्याग्रस्त साबित होंगे।
मैं वर्चुअलबॉक्स का पिछला उपयोगकर्ता था, लेकिन VMWare को अधिक स्थिर पाया और कम से कम (मेरे लिए कम से कम) प्रदर्शन करता है। लेकिन मैं आपकी आवश्यकताओं और आवश्यकताओं के अनुकूल अपने परीक्षण करूँगा, अर्थात। Vagrant VirtualBox का उपयोग करता है।
आईडीई:
मैं अपनी पसंद के आईडीई के रूप में काफी बड़े पैमाने पर नेटबीन्स का उपयोग कर रहा था, लेकिन जब से सबमिशन पॉलिसी 2 के रूप में अधिक हल्के समाधान में स्थानांतरित हुआ है । मैं शायद ही कभी एक्स-डिबग उद्देश्यों और आसान रीफैक्टरिंग के लिए नेटबीन्स खोलूंगा। Netbeans, PHPStorm, Eclipse, आदि सभी जावा आधारित IDE हैं और बहुत ही भूखे हैं।
हार्डवेयर:
अधिक जोड़ने के लिए, हार्डवेयर हमेशा प्रदर्शन में एक महत्वपूर्ण भूमिका होगी (स्पष्ट रूप से)। यदि आपके डेवलपर्स अभी भी प्लैटर एचडीडी का उपयोग कर रहे हैं तो मैं उनके लिए एसएसडी में निवेश करना चाहूंगा। चूंकि Magento के पास फ़ाइलों / फ़ोल्डरों की एक बहुत बड़ी मात्रा है, इसलिए यह डेवलपर्स के प्रदर्शन को बहुत तेज़ करेगा। विकास करते समय: सभी कैशिंग बंद करने के साथ, और एसवीएन / जीआईटी, या आपके आईडीई में केवल फ़ोल्डर ट्री का पता लगाने के लिए। अपने VM को पर्याप्त RAM देना भी उतना ही महत्वपूर्ण है।
मेरी होस्ट मशीन: सैमसंग SSD 512GB ड्राइव स्पेस, Win7 (64 बिट), 8GB रैम, i7 2.4GHz (8 कोर)
माई वीएम मशीन: सैमसंग एसएसडी, 30 जीबी ड्राइव स्पेस, उबंटू 12.04 (32 बिट), 3 जीबी रैम, आई 7 (4 कोरर आवंटित)।
पूछे जाने वाले प्रश्न:
सबसे बड़ा सवाल यह है कि एक डेवलपर VM छवि बनाने के लिए जो कई परियोजनाओं में हल्का और पुन: प्रयोज्य है, या प्रति प्रोजेक्ट एक छवि बनाने के लिए है। पहले मैं एक प्रति परियोजना के आधार पर छोटे वीएम करने की कोशिश कर रहा था, लेकिन मेरे विकास वर्कफ़्लो के साथ जाने के लिए लगातार पुनर्संरचना बहुत अधिक कोर बन गई थी, और अब एक बड़े वीएम का उपयोग करें और प्रत्येक प्रोजेक्ट को यथासंभव अलग रखने की पूरी कोशिश करें।
यदि OS का प्रति प्रोजेक्ट चुना गया मार्ग है, तो OS, IDE, LAMP स्टैक, अपडेट / कॉन्फ़िगरेशन इत्यादि बनाए रखना एक राग बन सकता है। अंततः विकास के समय के लिए अग्रणी (और स्थानीय पर्यावरण सेटअप के लिए और भी अधिक बिल रहित समय)।
यह भी मददगार साबित हुआ है, क्योंकि मैं जल्दी से एक नया वीएम खोलने और अपने होस्ट हार्डवेयर को स्लाइस करने की आवश्यकता के बिना अन्य प्रोजेक्ट फ़ाइलों तक पहुंचने में सक्षम था। नकारात्मक पक्ष यह है कि मैं चाहता हूं कि प्रत्येक परियोजना को पर्यावरण के साथ किसी भी अप्रत्याशित मुद्दों को रोकने के लिए अन्य परियोजनाओं से चुप हो जाना चाहिए (यानी। php.ini, my.cnf, httpd.conf, आदि)। अब तक सभी परियोजनाओं के आसानी से सुलभ होने का व्यापार अधिक संसाधनपूर्ण साबित हुआ है।
फिर यह आपकी आवश्यकताओं पर निर्भर करता है और जरूरत है इसलिए हाथ से पहले उनका मूल्यांकन करें।
प्रतिक्रिया:
जो प्रतिक्रिया की ओर जाता है। अपने डेवलपर्स से जितना संभव हो उतना इनपुट प्राप्त करें। अंततः उनकी आवश्यकताओं को पूरा करने की आवश्यकता है और एक उचित समाधान से पहले समझी जाने वाली उनकी समस्याओं को स्थापित किया जा सकता है। सभी के पास अलग-अलग वर्कफ़्लो हैं, और हर कोई ओएस में काम करने में सहज नहीं है जिसे आपने विकास के लिए चुना हो। मेरे अंगूठे का नियम डेवलपर को उनके ओएस और आईडीई को चुनने देता है जो वे सबसे अधिक आरामदायक होते हैं और सबसे अच्छा प्रदर्शन करेंगे। यहां तक कि एक हल्का हेडलेस लिनक्स वीएम उनकी आवश्यकताओं के लिए उपयोगी साबित हो सकता है, लेकिन जाहिर है कि होस्ट और वीएम के बीच स्थानीय नेटवर्क पर फ़ोल्डर्स साझा करने के मुद्दे में चल सकता है।
पोर्टेबिलिटी:
मैंने अपने वीएम इमेज को ड्रॉपबॉक्स जैसी किसी चीज पर रखने के विचार के साथ खिलवाड़ किया है, ताकि मुझे किसी भी समय आसानी से पहुंच सके। चूँकि ड्रॉपबॉक्स जैसी सेवाओं की तुलना बिट के द्वारा की जाती है, इसलिए यह तर्कसंगत प्रतीत होता है कि केवल बिट्स जो मैंने बदला है, उसे सिंक किया जाएगा। हालाँकि यह साबित नहीं हुआ, क्योंकि मेरा मानना है कि इसका इंटर्नल के साथ क्या करना है, छवि फ़ाइल को कैसे सहेजा जाता है, और मुझे अपने VM को सिंक करने के लिए पूरे दिन / रात इंतजार करना होगा।
नोट:
वीएम को बड़ी छवि को आवंटित किए गए ड्राइव स्पेस जितना बड़ा हो जाएगा, छवि को अपने डेवलपर्स को वितरित करते समय इसे ध्यान में रखें। प्रति प्रोजेक्ट में आपकी प्रोजेक्ट फ़ाइलों को लोड करना ओवरकिल हो सकता है और मैं प्रत्येक डेवलपर को यह स्थापित करने के लिए छोड़ दूंगा कि उनकी बनाई छवि है।
एशले श्रोडर के पास कुछ पुराना संबंधित लेख है जो एक अच्छा पढ़ा गया है, साथ ही फोमन और कॉलिन की कुछ टिप्पणियाँ भी हैं।
उम्मीद है कि यह आपकी समस्या के सूचीबद्ध आइटम, # 6 के लिए अंतर्दृष्टि के साथ मदद करता है।