श्रेणी: लेख

कार्यालय ग्रिड आभासी वातावरण का उपयोग कम्प्यूटिंग - भाग 1

, शुक्रवार 4 दिसंबर, 2009 11:23 बजे

परिचय

मैं एक कंपनी में जहाँ हम कई बैच प्रसंस्करण नौकरियों डेटा के अभिलेखों का लाखों प्रत्येक दिन चलाने और मैं सभी मशीनों है कि प्रत्येक के आसपास बैठते हैं और हर दिन कई घंटे के लिए कुछ नहीं कर रही के बारे में किया गया है हाल ही में सोच काम करते हैं. यह अच्छा नहीं होगा अगर हम उन मशीनों का उपयोग करने के लिए हमारे सिस्टम के प्रसंस्करण शक्ति सिलेंडर सकता है? लेख के इस सेट में मैं एक कार्यालय रोजगार के संभावित लाभ को देखने जा रहा हूँ ग्रिड virtualised वातावरण का उपयोग .

मैं एक के रूप में PHP डेवलपर उपकरण है कि मैं हर दिन अर्थात् का उपयोग करते हैं, लिनक्स, उपयोग जा रहा हूँ MySQL , PHP, VirtualBox और तोड़फोड़ (SVN) . हालांकि मुझे उम्मीद है कि इस गाइड अन्य भाषाओं और प्रौद्योगिकियों के लिए बस के रूप में अच्छी तरह से अनुकूल होगा.

समाधान मैं प्रदान बहुत शिथिल हम लेकिन पूरे लेख के माध्यम से यह सच नहीं हो सकता है को प्राप्त करने की आवश्यकता के रूप में मैं सादगी के लिए चीजों को बदलने, या अधिक दिलचस्प उपयोग परिदृश्यों का उत्पादन चाहते हैं प्रसंस्करण के प्रकार पर आधारित होगा.

इन virtualised वातावरण खिड़कियों मशीनों पर चलाने के बाद से इस है कार्यालयों के बहुमत क्या चलाने के. प्रसंस्करण कि कार्यालय मशीनों उन मशीनों का उपयोग करते हुए कर्मचारियों के साथ हस्तक्षेप नहीं करना चाहिए, मशीन पर कोई रखरखाव की आवश्यकता होती है, और नई मशीनों के लिए आसानी से deployable होना चाहिए के रूप में वे उपलब्ध हो जाते हैं. इसके अलावा, नई वर्चुअल मशीनों के रूप में यह बहुत scalability और आसानी जिस पर ग्रिड प्रणाली बढ़ाया जा सकता है कम कर देता है किसी भी अतिरिक्त विन्यास की आवश्यकता नहीं चाहिए.

क्यों एक कार्यालय कम्प्यूटिंग ग्रिड तैनात?

पहले तुम सोच हो सकता है, जैसे बादल कंप्यूटिंग संसाधन का उपयोग नहीं क्यों अमेज़न EC2 मंच ? वैसे कई कारणों से हो सकता है उदाहरण के लिए,

  • आप कुछ डेटा क्लाउड कम्प्यूटिंग वातावरण को नहीं सौंपना होगा
  • आप कुछ डेटा (जैसे डेटा देश छोड़ने) कानूनी कानूनी कारणों से, जैसे एनएचएस रिकॉर्ड के लिए संभावित कारणों, के लिए एक क्लाउड कम्प्यूटिंग वातावरण में नहीं रख सकते हैं.
  • आप अपने प्रसंस्करण इकाइयों को बंद करने और हार्डवेयर पर पूरा नियंत्रण भी रखना चाहता हूँ
  • तुम परियोजना धन नहीं है बादल उदाहरणों को चलाने के
  • अपने कार्यालय इंटरनेट से एक कनेक्शन नहीं है और इसलिए अपनी एक बादल संसाधन का उपयोग करने के लिए संभव नहीं
  • तुम्हें पसंद नहीं है बारिश बादलों बारिश सुझाव है, इसलिए आप अच्छी तरह से दूर रखना

मुझे यकीन है कि सूची जारी सकता हूँ, लेकिन मुझे लगता है कि अब के लिए काफी है.

किसी Office कम्प्यूटिंग ग्रिड के लाभ

खैर, चलो कुछ गणित (और सच भौतिकी शैली में कुछ व्यापक मान्यताओं बनाने की सुविधा देता है). कल्पना कीजिए कि आप बड़े मांसल प्रसंस्करण सर्वर प्रति दिन 100 नौकरियों चल रहा है. अपने कार्यालय में आप 50 मशीनों जो निष्क्रिय कर रहे हैं 16 घंटे एक दिन, प्रत्येक इन मशीनों के 10% के रूप में अपने मांसल प्रसंस्करण तोड़ के रूप में शक्तिशाली है. (सभी परिणाम यहाँ के प्रदर्शन को बढ़ाने के बहुत मूल्यवान समझना के लिए गोल कर रहे हैं).

तो, निष्क्रिय समय में 1 मशीन * 10% * 2 / 3 बार = 0.067 यानी एक डेस्कटॉप प्रसंस्करण शक्ति प्रति दिन 6 पूर्ण नौकरियों प्रक्रिया सकता है.

यदि आप अब इस पैमाने पर यह 15 निष्क्रिय डेस्कटॉप लेता है प्रति दिन के रूप में कई काम की प्रक्रिया के रूप में अपने मुख्य प्रसंस्करण सर्वर करता है.

तो हमारे 50 मशीनों के नाटक कार्यालय में हम 4 पूर्ण प्रसंस्करण सर्वर के लिए एक सर्वर से हमारे प्रसंस्करण शक्ति, बढ़ाया जा सकता है या हम प्रति दिन 400 नौकरियों प्रसंस्करण किया जा सकता है 100 के बजाय.

सूचना, नए हार्डवेयर में कोई निवेश के लिए आपकी कंपनी सिर्फ अपने बैच प्रसंस्करण क्षमता 4 बार बढ़ गया है ! संभवतः आप के लिए अपने बिजली के उपयोग को बढ़ाने जा रहे हैं, लेकिन आम तौर पर मैं मशीनों के लिए किया गया है सबसे कार्यालय वातावरण से रातोंरात वैसे भी पर छोड़ दिया जाता है, तो आप एक हरे रंग की पहल के रूप में इस देख सकता था.

अन्य लाभ भी नए (या अद्यतन) में है कि निवेश प्रसंस्करण सर्वर विलंब हो सकता है मतलब है कि अगर अपने कार्यालय मशीनों के लिए पर्याप्त हैं और अपने कार्यालय के रूप में आप अपने कार्यालय मशीनों की शक्ति में सुधार ग्रिड अधिक शक्तिशाली स्वचालित रूप से हो जाता है कि.

टेक्नोलॉजीज

तुम क्या जरूरत है? : (या अधिक सही ढंग से मैंने क्या उपयोग किया)

  • निष्क्रिय कार्यालय मशीनों (मेरे मामले में एक अतिरिक्त पुराने विंडोज़ XP लैपटॉप)
  • VirtualBox के (या एक और वर्चुअलाइजेशन क्लाइंट सॉफ्टवेयर)
  • PHP, MySQL running के साथ एक आभासी मशीन के ओएस नीचे एक कट चल रहा है, मैं इन मेरे लंगड़ा सर्वरों को बुला रहा हूँ:)
  • चलाने नौकरियां
  • नौकरी सर्वर (एक और आभासी मशीन कहीं जा सकता है)

ठेठ नौकरियां

नौकरियों के प्रकार है कि इस प्रणाली को चलाने के लिए डिज़ाइन किया गया है निम्नानुसार है:

  • सिस्टम जिस पर हम मैच और परिणाम की जरूरत है डेटा की एक सूची प्राप्त
  • मिलान की जाँच शामिल है / कई (काफी स्थिर) डेटा स्रोतों की खोज
  • परिणाम के डेटा स्रोतों से आगे सत्यापन की आवश्यकता होती है, विलय, परिणामों के जवाब में अतिरिक्त डेटा स्रोतों की जाँच कर सकते हैं
  • डाटा मिलान रिकॉर्ड के साथ वापस आ रहा है, पूरी तरह से मान्य है और संसाधित
  • एक नौकरी के भीतर प्रत्येक रिकॉर्ड आराम से स्वतंत्र है

तो बुनियादी तौर पर हम नौकरियों जो डेटाबेस lookups और कुछ संख्या crunching, एक कारोबारी माहौल में एक काफी ठेठ परिदृश्य का एक मिश्रण की आवश्यकता चल रहा है पर देख रहे हैं.

ग्रिड समाधान केवल इस प्रकार की नौकरियों के प्रसंस्करण के लिए फायदेमंद नहीं हैं. असल में, किसी भी प्रक्रिया है जो स्वतंत्र इकाइयों में विभाजित किया जा सकता के समानांतर में चलाया जा सकता है. उदाहरण और अधिक जानकारी के लिए देखिए यह विकिपीडिया : ग्रिड कम्प्यूटिंग, लेकिन प्रसिद्ध उदाहरण के एक जोड़े हैं SETI @ होम और BIONC . कंप्यूटिंग ग्रिड चलाने के लिए व्यवस्थाएं हैं, और इन अच्छी तरह से में देख के लायक हैं.

हम क्या हासिल होगा?

इन लेखों के अंत तक मुझे पता चलता है कि एक कार्यालय ग्रिड तैनाती बेहद महंगा या समय लेने की जरूरत नहीं है उम्मीद है. मैं चर्चा करने जा रहा हूँ:

  • नौकरी नियंत्रण प्रणाली की स्थापना, नौकरी विन्यास
  • एक उचित प्रसंस्करण आभासी मशीन बनाना
  • कैसे एक विंडोज़ मशीन पर सिस्टम सेटअप करने के लिए
  • सुनिश्चित करना आप नवीनतम कोड और डेटा का उपयोग कर रहे हैं
  • तैनाती और बेंच मार्किंग
  • आगे देख रहे हैं

मैं इमारत (ठीक है मैं बनाया है, तो यह लिखा था) एक उदाहरण के आवेदन के लिए एक स्थानीय मशीन पर Windows XP और मेरा 'GridMachine' वर्चुअल मशीन का उपयोग अवधारणाओं परीक्षण हूँ. मेरा काम - नियंत्रण सर्वर मेरे मुख्य मशीन है जो रन Fedora 11 .

यह कोई रास्ता नहीं है एक मजबूत प्रणाली पूरी तरह से काम का प्रदर्शन करने का मतलब में है, इसकी एक प्रदर्शन के और अधिक दिखा रहा है कि इन बातों को समय का एक यथोचित कम अंतरिक्ष में और कम कीमत पर हासिल किया जा सकता है है पर चर्चा का मतलब है. कृपया मुझे किसी भी टिप्पणी, सुधार, सुधार या भेजने के लिए स्वतंत्र महसूस हो रहा है और मैं अपना सर्वश्रेष्ठ करने के लिए इस लेख के लिए मैच के लिए अद्यतन रखने करेंगे.

अगली बार

भाग 2 मैं नौकरी नियंत्रण प्रणाली को देख द्वारा शुरू होगा और कैसे नौकरियों सुनिश्चित करना है कि प्रत्येक नौकरी के बिना असफल हो संसाधित है whilst प्रसंस्करण की सबसे बड़ी राशि प्राप्त करने के क्रम में कॉन्फ़िगर किया जाना चाहिए में देखो.

कार्यालय ग्रिड आभासी वातावरण का उपयोग कम्प्यूटिंग - भाग 2

, शुक्रवार 4 दिसंबर, 2009 11:23 बजे

परिचय

मैं एक कंपनी में जहाँ हम कई बैच प्रसंस्करण नौकरियों डेटा के अभिलेखों का लाखों प्रत्येक दिन चलाने के लिए और मैं सभी मशीनों है कि प्रत्येक के आसपास बैठते हैं और हर दिन कई घंटे के लिए कुछ नहीं कर रही के बारे में किया गया है हाल ही में सोच काम करते हैं. यह अच्छा नहीं होगा अगर हम उन मशीनों का उपयोग करने के लिए हमारे सिस्टम के प्रसंस्करण शक्ति सिलेंडर सकता है? लेख के इस सेट में मैं एक कार्यालय रोजगार के संभावित लाभ को देखने जा रहा हूँ ग्रिड virtualised वातावरण का उपयोग .

में भाग 1 मैं प्रणाली और प्रौद्योगिकियों मैं के रूप में उपयोग किया जाएगा अच्छी तरह के रूप में संभावित कारणों तुम क्यों एक कार्यालय ग्रिड बनाने के लिए चाहते हो जाएगा के कुछ चर्चा के एक सिंहावलोकन दिया.

कार्य नियंत्रण

यदि आप के लिए रोजगार चल रहा हो जा रहे हैं तो आप कुछ तरह उन्हें प्रबंधित की आवश्यकता के लिए जा रहे हैं. आपका काम नियंत्रण प्रणाली (अपनी नौकरी सर्वर पर) के लिए भी एक कार्यालय ग्रिड को चलाने का प्रयास करने से पहले वास्तव में अच्छी तरह से बाहर सोचा की जरूरत है. सबसे पहले तो, एक नौकरी नियंत्रण प्रणाली के लिए क्या कार्य कर रहे हैं:

  • कामगारों से अनुरोध पर हाथ बाहर नौकरियों
  • श्रमिकों नौकरियों के लिए किस प्रकार चलाने के लिए को बताएँ
  • ट्रैक नौकरियों
  • सुनिश्चित करें कि नौकरियों केवल एक बार चला रहे हैं
  • श्रमिकों को नौकरी डेटा प्रदान करें, या कम से कम उन्हें बताओ यह कहाँ पाने के लिए

इस प्रणाली को भी एक्स्टेंसिबल, एक समाधान है कि एक भी मामले में अब के लिए काम करता है के लिए नौकरियों के कई प्रकार के भाग के रूप में व्यापार में एक ग्रिड समाधान के लायक देखता बढ़ाया जा सकता है है की जरूरत है. उदाहरण के लिए, नौकरियों प्राथमिकताओं लाभ, एक नौकरी से अधिक प्रकार मौजूद हो सकता है हो सकता है (यानी कई कोड अड्डों), अंततः आप भी कई अलग अलग कार्यकर्ता मशीनों है कि नौकरी के प्रत्येक प्रकार के लिए अनुकूलित कर रहे हैं रन आउट (हो सकता है कि हालांकि 'सामान्य कार्यकर्ता से दूर कदम नहीं 'विचार). हमेशा के भविष्य के बारे में लगता है कि जब प्रणाली विकसित करने की कोशिश, एक अल्पकालिक दृष्टि लंबी अवधि हताशा और वृद्धि विकास के समय के लिए नेतृत्व कर सकते हैं.

नौकरी सर्वर

हम कहीं जरूरत करने के लिए हमारी नौकरियों नियंत्रण से जा रहे हैं, यह अपने ग्रिड में केवल प्रणाली है कि एक निश्चित रिसोर्स लोकेटर है हो सकता है, होना चाहिए कि एक आईपी पता, मेजबान का नाम, यूआरएल (आंतरिक DNS का उपयोग), आदि इसका कारण यह है श्रमिकों नौकरियों के लिए कहाँ देखना पता करने की जरूरत है, कामगारों को नौकरी नियंत्रण प्रणाली (नौकरी नियंत्रण प्रणाली नहीं कार्यकर्ताओं को खोजने के) खोजने की जरूरत है.

नौकरी सर्वर ही वास्तव में एक जटिल कार्य नहीं है (एक बुनियादी तंत्र में किसी भी तरह), यह नौकरियों की एक सूची की दुकान, हाथ नौकरियों बाहर परिणाम प्राप्त करने के लिए, और बाद में उन्हें बाद में पुनः प्राप्ति के लिए दुकान की जरूरत है. कैसे इन भागों (जैसे 'नौकरियों बाहर हाथ') को परिभाषित कर रहे हैं बहुत ही बुनियादी किया जा सकता है. बाद में हम प्रणाली का विस्तार करने के लिए एक प्रशासन इंटरफ़ेस जोड़ने, संपादित करने, हटाने, रोजगार निलंबित लेकिन इस व्यायाम से परे है शामिल कर सकते हैं.

वहाँ कोई कारण जो भी तो है कि अपनी नौकरी सर्वर एक आभासी मशीन अपने मुख्य प्रसंस्करण सर्वर के भीतर चल रहे नहीं किया जा सकता है बशर्ते वह भी कई संसाधनों से पलायन नहीं करता है. नौकरी सर्वर लेकिन उच्च उपलब्धता की जरूरत नहीं है, अगर यह एक शुक्रवार की शाम आप प्रसंस्करण के एक पूरे सप्ताहांत खोने जा रहे हैं पर नीचे चला जाता है, संभवतः आप सप्ताह के प्रसंस्करण समय के लायक एक जोड़े (जब अपने मुख्य प्रसंस्करण अकेले सर्वर की तुलना में) लागत . आप एक लोड संतुलित वातावरण पर उच्च उपलब्धता के लिए अपनी नौकरी सर्वर डालने पर विचार करना चाहते हो सकता है.

मूल सेटअप

हमारा काम के सर्वर के लिए बुनियादी सेटअप क्या मैं बुला रहा हूँ मेरी लंगड़ा सर्वर के (कि ली nux, मीटर ySql, पी हिमाचल प्रदेश) से मिलकर करेंगे . Thea कार्यकर्ताओं पर चल रहे कोड वास्तव में बाहर काम नियंत्रण प्रणाली डेटाबेस के साथ के साथ बातचीत के द्वारा काम करेंगे क्या यह नौकरियों चला सकते हैं. बाद में हम कार्यकर्ता कड़ी मेहनत खुद करते हैं बजाय एक वेब सेवा और रोजगार के बाहर वास्तव में हाथ बनाने के लिए, लेकिन हो सकता है अभी के लिए हम चूमने के सिद्धांत (यह सरल, बेवकूफ रखें !) का उपयोग जारी रखेंगे.

तो देता है, तीन बनाने mySQL तालिकाओं के लिए नौकरियों के साथ सौदा. ये `नौकरियों,` jobRecords `, और` jobResults जाएगा.

नौकरियों तालिका यहाँ मैं का उपयोग कर रहा हूँ SQL दोस्त एक महान थोड़ा वैकल्पिक phpMyAdmin सिर्फ इसलिए अपने CentOS पर स्थापित करने के लिए आसान (के लिए दूसरों को देखते हैं: 10 phpMyAdmin करने के लिए महान विकल्प )

इस तालिका 5 सरल क्षेत्रों के होते हैं,

  • आईडी: विशिष्ट नौकरी की पहचान
  • नाम: एक ग्राहक संदर्भ, या अन्य identifiers के किसी भी संख्या हो सकता है
  • स्थिति: तुम्हें पता है, जहां काम उदाहरण के लिए, की जरूरत है
    • 0: प्रारंभ नहीं किया गया
    • 1: उठाया
    • 2: पूर्ण
  • started_by: कौन काम कर रही शुरू कर दिया है? यह पूरी तरह नहीं बल्कि आवश्यक है एक अच्छा है. मैं उनके अपने नेटवर्क पर आईपी पते के द्वारा ट्रैकिंग श्रमिकों सुझाव चाहते हैं
  • started_at: कर्मचारी काम कब शुरू किया? नौकरियों है कि समय की एक्स राशि है जो हम जानते हैं कि हम करने के लिए एक बार फिर से काम लेने और एक अन्य कार्यकर्ता द्वारा प्रसंस्करण शुरू करने की आवश्यकता के भीतर पूरा नहीं किया है पर नज़र रखने. श्रमिक रोक प्रसंस्करण / के किसी भी संख्या कारणों से, बिजली विफलता, दुर्घटना, नेटवर्क हानि, आदि के लिए ऑफ़लाइन जा सकते हैं

यह आसान है कि कैसे इस तालिका में कुछ अतिरिक्त फ़ील्ड के साथ बढ़ाया जा सकता है और आँकड़ों पर नज़र रखने, एक खत्म समय स्तंभ देखने के लिए कितनी देर तक काम लिया, एक काउंटर को देखने के लिए कितने कार्यकर्ताओं नौकरी उठाया (जाहिर है इस की जरूरत के लिए करते हैं के लिए अनुमति 1), नौकरी प्राथमिकता, सूची में और पर जा सकते हैं. अधिक जटिल काम परिदृश्य में यह संभव हो सकता करने के लिए निर्दिष्ट कितना स्मृति कार्यकर्ता (और इसलिए केवल उपयुक्त श्रमिकों का उपयोग करें), या यहाँ तक कि कार्यकर्ता की किस प्रकार की आवश्यकता होगी उपयोग की आवश्यकता होगी.

चलो कुछ उदाहरण नौकरियों जोड़ने:

उदाहरण नौकरियों

अगले तालिका फिर से समझने के लिए काफी सरल है, ये हमारा काम रिकॉर्ड कर रहे हैं. वे एक `स्तंभ jobs_id` द्वारा मुख्य नौकरियों तालिका से जुड़े हुए हैं. इस तालिका के मेकअप बहुत डेटा पर निर्भर करता है कि आप अपने कर्मचारियों के लिए आपूर्ति की जरूरत है देता है, एक बहुत ही सरल उदाहरण है, जहाँ हम चार स्तंभों:

  • आईडी: रिकॉर्ड के आईडी
  • नाम: व्यक्ति का नाम
  • पता: व्यक्ति के पते
  • नौकरी आईडी है कि इस रिकॉर्ड के लिए जुड़ा हुआ है : jobs_id

तीसरे और अंतिम तालिका एक परिणाम तालिका के होते हैं, यह बहुत ही हमारे रिकॉर्ड की तालिका के रूप में बनाने, और कुछ स्तंभों के अलावा के साथ रिकॉर्ड तालिका का हिस्सा हो सकता है:

  • job_record_id: नौकरी तालिका में परिणाम लिंक
  • परिणाम: परिणाम डेटा

... और कहा कि तुम काम पर नियंत्रण के लिए की जरूरत है! (हालांकि एक बहुत ही बुनियादी स्तर पर) मेरे मामले में मैं किसी अन्य तालिका जहां प्रक्रिया के लिए अपने डेटा स्थित था ओर इशारा कर रहा हूँ, लेकिन यह बस के रूप में आसानी से एक फाइल हो सकता था, पैरामीटर अनुकार कोड को चलाने के लिए, तुम यह नाम है.

एक नौकरी का चयन

जैसा कि पहले कहा, श्रमिकों के लिए हमें अब हमारा काम प्रबंधन के लिए क्या करेंगे, तो हम सब सच में करने की ज़रूरत है कि संसाधन की जरूरत है एक नौकरी खोजने के लिए और जानकारी मिल. हम यह कैसे करना चाहते हैं? खैर हमारा काम चयन मानदंड लेने और नौकरियों के लिए देखो, एसक्यूएल में मैं निम्नलिखित किया:

  1. किसी भी नौकरियों है कि पूरा के रूप में, लेकिन हमारे कार्यकर्ता से चिह्नित नहीं कर रहे हैं और उन्हें रीसेट (एक पहचानकर्ता के साथ __ME__ विकल्प, आसान IP पता होगा) ले लो:
      अद्यतन `नौकरियों` सेट `स्थिति` = 0 कहां `स्थिति` = 1 और `started_by` = __ME__; 
  2. हमारी नौकरी के चयन के मापदंड का उपयोग, एक नौकरी का चयन करें और नियंत्रण प्रणाली बताओ कि इस कार्यकर्ता के साथ काम कर रहा है:
      अद्यतन `नौकरियों` `स्थिति` = 1, `started_by` = __ME__, `started_at` अब = () कहां `स्थिति` = 0 या सेट
     (`स्थिति` = 1 और `started_at`> DATE_SUB (अब), अंतराल एक्स HOUR ()) द्वारा `id` ए एस सी आदेश; 

    नौकरियों है कि परिणाम समय की एक्स राशि हम सुनिश्चित करें कि सभी नौकरियों को दुर्घटनाग्रस्त या AWOL जा कार्यकर्ता की घटना में चलाए जा रहे हैं में नहीं लौटे हैं हथियाने.

  3. अगले नौकरियों खुद रिकॉर्ड द्वारा पीछा विवरण हड़पने:
      SELECT * `से नौकरियों` जहां `started_by` = __ME__ एक सीमा;
     * `से job_records` का चयन करें जहाँ `आईडी` = __JOBID__; 

नौकरी हम अपने परिणाम रिकॉर्ड डालने और पूरा के रूप में नौकरी का निशान के पूरा होने पर. याद रखें के रूप में नौकरी निलंबित / किसी भी समय कर सकते हैं फिर से शुरू अपनी स्क्रिप्ट में कुछ मजबूती के लिए अनुमति देते हैं. यह हो सकता है कि कार्य नौकरी नियंत्रण प्रणाली अद्यतन के माध्यम से आधे रास्ते निलंबित, तो एक नौकरी में अभिलेखों की संख्या की जाँच और नौकरी नियंत्रण प्रणाली के लिए वापस बचाया परिणामों की संख्या एक बुद्धिमान कदम होगा.

इसके अलावा, whilst यह दर्शाता है कैसे नौकरियों और चयनित किया जा सकता है एक एसक्यूएल क्वेरी फ्रेम तुम सच में जाना चाहिए से प्रबंधित abstracting अपनी नौकरी नियंत्रण इतना है कि यदि आप एक वेब सेवा, एक फ़ाइल आधारित प्रणाली का उपयोग करने के लिए स्विच करने का फैसला XML, या किसी अन्य सिस्टम की संख्या यह ऊपर कोड को प्रभावित नहीं करेगा.

नौकरी विन्यास

अगले पहलू पर विचार करने के काम आकार और विन्यास है. नौकरी विन्यास के साथ खेलने से हम गति, प्रक्रिया, प्रतिकृति, और विश्वसनीयता के बीच एक उत्कृष्ट संतुलन कर सकते हैं. लो एक जोड़े OFA परिदृश्यों:

  1. नौकरियां 1 दिन ले प्रत्येक चलाने के लिए इसका मतलब यह है कि अपने कर्मचारियों को 15 दिनों की जरूरत है हर काम प्रक्रिया (समय के 2/3rds के लिए शक्ति का 10 % याद). यह स्पष्ट रूप से एक बुद्धिमान विन्यास नहीं है, अपनी नौकरी का आकार रास्ता भी बड़ा है! यह कम से कम दोगुना समय लेने के लिए एक संसाधित नौकरी पाने के प्रारंभिक कार्यकर्ता AWOL (समय लेने के लिए कि यह एक परिणाम प्लस पुनर्संसाधन समय नहीं वापस आ गया है) जाना चाहिए. एक आदर्श आप कम से कम एक पूरा काम आसानी से प्रत्येक लंबे समय से निष्क्रिय अवधि के अंत तक मंजूरी दे दी है, तरीका है कि आप अधिक और सबसे खराब स्थिति में एक नौकरी बजाते नौकरियों रखना चाहते हैं और प्रक्रिया के लिए दो दिन लगेंगे पहली लापता जाना चाहिए.
  2. नौकरियां 1 मिनट लेने के लिए चलाएँ: इसका मतलब यह है कि अपने कर्मचारियों के बारे में 15 मिनट लेने के लिए हर काम चलाने है . Whilst यह शुरू में आदर्श लग सकता है, आप दोपहर के भोजन के समय के दौरान अतिरिक्त काम प्रसंस्करण हासिल करने के लिए, कॉफी ब्रेक, बैठकों, आदि इस परिदृश्य में अपने सिस्टम के अन्य क्षेत्रों पर दबाव डालता है और अपनी ही समस्याओं का परिचय. उदाहरण के लिए, सबसे पहले अपने समय सेटअप / प्रसंस्करण अनुपात ठीक नीचे जाना है, इसलिए प्रणाली दक्षता को खोने जा रहा है. अपने नेटवर्क के लिए लगातार विभिन्न कार्यकर्ताओं को निराशा कर्मचारियों के साथ जो दांग उनके दैनंदिन कार्य कर रहे हैं के लिए काम की जानकारी स्ट्रीमिंग होने जा रहा है. तुम भी अपनी नौकरी प्रसंस्करण सर्वर पर अधिक दबाव डाल के रूप में यह बहुत सारे और एक नियमित आधार पर काम के छोटे टुकड़ों के बहुत सारे के लिए बाहर पकवान के लिए जा रहे हैं. अन्त में, इस स्थिति में अगर अपनी नौकरी सर्वर नीचे चला जाता है तुम जबकि बड़ी नौकरियों के अपूर्ण काम का एक बड़ा वापस लॉग बनाने जा रहे हैं blissfully अनजान प्रसंस्करण कि नौकरी सर्वर कठिनाइयों का सामना कर रहा था जारी रखा सकता है.

वास्तविकता में वहाँ अपने ग्रिड की स्थापना के लिए नहीं एक आदर्श विन्यास हो जाएगा, बहुत उपलब्ध संसाधनों, नौकरी, नौकरी प्रतिवर्तन समय आवश्यकताओं, नेटवर्क की क्षमता, और इतने पर के प्रकार पर निर्भर करता है. हालांकि कुछ दिशानिर्देश होगा:

  • साइज नौकरियों इतना है कि प्रत्येक कार्यकर्ता 15 घंटे की अवधि में कम से कम 3-4 जॉब (सबसे लंबे समय तक होने की संभावना निष्क्रिय समय अवधि) के माध्यम से प्राप्त कर सकते हैं
  • नौकरी के आकार के साथ खेलो ताकि सेटअप समय काफी प्रसंस्करण समय (मन में ऊपर बिंदु असर) की तुलना में नगण्य हो जाता है.
  • यदि एक नौकरी डबल समय की राशि (शायद कम) आप इसे पूरा करने के की उम्मीद में पूरा नहीं होता है यह लगता है कि अपने से चला गया AWOL और यह किसी अन्य कार्यकर्ता के साथ प्रसंस्करण शुरू. इसका मतलब यह है कि आप तीन बार इसके लिए एक नौकरी की सामान्य लंबाई करने के लिए प्रतीक्षा को पूरा करने के लिए (संभवतः अब अगर बाद नौकरी में विफल रहता है) हो सकता है. आप इस समय को कम करने के लिए, लेकिन नहीं यह भी बहुत कम है के रूप में आप एक नियमित आधार पर प्रसंस्करण कार्यों duplicating शुरू हो सकता है सावधान रहना चाहते हो सकता है.
  • नौकरियां जितना संभव बाहर आवश्यकताओं के स्वतंत्र होना चाहिए. नौकरी सर्वर, उदाहरण के लिए, केवल और हर काम की शुरुआत और अंत में संपर्क किया जाना चाहिए.
  • अपने नेटवर्क तर नहीं है, इस दो नकारात्मक प्रभाव पड़ेगा, अपने दिन कर्मचारियों नेटवर्क निराशा होती है और समस्याओं कनेक्शन बाहर एक समस्या यह है कि केवल बिगड़ के रूप में आप अपने ग्रिड पैमाने पर होगा समय के साथ अनुभव किया जा सकता है का उपयोग कर पाएंगे.
  • सुनिश्चित नौकरियों अपने कार्यकर्ताओं पर चला सकते हैं. यदि नौकरियों भी स्मृति बन गहन या डिस्क स्थान गहन नौकरियों निरस्त शुरू करने के लिए और केवल एक बात तुम नोटिस हूँ कोई वास्तविक कारण के साथ कार्रवाई की नौकरियों की संख्या में एक बूंद है.

एक नौकरी के सबमिट परिणाम

जब एक नौकरी के परिणाम प्रस्तुत यह महत्वपूर्ण है कि परिणाम एक अन्य कार्यकर्ता द्वारा नहीं किया गया है प्रस्तुत किया है, खासकर अगर वर्तमान कार्यकर्ता कुछ समय के लिए निष्क्रिय किया गया है की जाँच करने के के लिए.

जब परिणाम प्रस्तुत कर रहे हैं सुनिश्चित करें कि परिणामों की संख्या नौकरी के भीतर अभिलेखों की संख्या से मेल खाता है.

जैसा कि पहले कहा, और अधिक पर जोर दिया, नौकरी की पुनर्प्राप्ति और परिणाम प्रस्तुत में दोष सहिष्णुता का निर्माण नहीं कर सकते. श्रमिकों कर सकते हैं (और सबसे अधिक संभावना होगी) को निलंबित मोड में जाने के समय की सबसे असुविधाजनक पर और इस की जरूरत के लिए catered करने के लिए. इसके अलावा एक बार फिर दूर अपने परिणाम प्रस्तुत करने abstracting अपने काम पर नियंत्रण बहुत आसान प्रणाली के साथ सौदा करने के लिए भविष्य परिवर्तन के लिए पूरा करने में मदद करेगा.

सारांश

इस section में हम एक नौकरी नियंत्रण सर्वर के लिए क्या करने की जरूरत पर ध्यान दिया है और कैसे प्राप्त करने के लिए एक बहुत ही बुनियादी प्रणाली स्थापित. हम चर्चा कैसे पुनः प्राप्त करने के लिए नियंत्रण प्रणाली से एक नौकरी और कैसे सबसे अच्छा करने के लिए नौकरियों को कॉन्फ़िगर करने के लिए सबसे अपने कार्यालय ग्रिड प्रणाली के हमारे. खत्म करने के लिए, या परिणाम प्रस्तुत वापस काम पर नियंत्रण सर्वर पर पैरा दो पेश किया गया.

  • एक काम पर नियंत्रण सर्वर नौकरियों और यह सुनिश्चित करता है कि सब काम इकाइयों पूरा कर रहे हैं का प्रबंधन
  • अपने काम का चयन परिणाम प्रस्तुत / abstracting करके हम ज्यादा समस्याओं के बिना नियंत्रण सर्वर के प्रौद्योगिकी बदल सकते हैं
  • अपनी नौकरियों को कॉन्फ़िगर करने के लिए सुनिश्चित करें कि वे जल्दी से और कुशलता से अपने नेटवर्क बुनियादी सुविधाओं पर बहुत अधिक दबाव डालने के बिना चलाए जा रहे हैं, और प्रसंस्करण एक नियमित आधार पर कार्य duplicating के बिना.
  • सुनिश्चित करें कि आप गलती सहिष्णुता और अपनी दिनचर्या में त्रुटि checking निर्माण, श्रमिकों को निलंबित और फिर से शुरू कर सकते हैं और समय की सबसे असुविधाजनक. चेक यदि परिणाम पहले से ही एक अन्य कार्यकर्ता द्वारा दर्ज़ हो गया है याद रखें.

अगली बार

इन भाग 3 हम अपने आभासी प्रसंस्करण मशीन बनाने के लिए और हमारे खिड़कियां मशीनों को सेट करने के लिए निष्क्रिय समय श्रमिकों बन हूँ .

कार्यालय ग्रिड आभासी वातावरण का उपयोग कम्प्यूटिंग - भाग 5

, शुक्रवार 4 दिसंबर, 2009 11:03 बजे

परिचय

मैं एक कंपनी में जहाँ हम कई बैच प्रसंस्करण नौकरियों डेटा के अभिलेखों का लाखों प्रत्येक दिन चलाने के लिए और मैं सभी मशीनों है कि प्रत्येक के आसपास बैठते हैं और हर दिन कई घंटे के लिए कुछ नहीं कर रही के बारे में किया गया है हाल ही में सोच काम करते हैं. यह अच्छा नहीं होगा अगर हम उन मशीनों का उपयोग करने के लिए हमारे सिस्टम के प्रसंस्करण शक्ति सिलेंडर सकता है? लेख के इस सेट में मैं एक कार्यालय रोजगार के संभावित लाभ को देखने जा रहा हूँ ग्रिड virtualised वातावरण का उपयोग .

में भाग 4 हम उपकरण का उपयोग करने के लिए सुनिश्चित करें कि हम कोड और डेटा स्रोतों के नवीनतम संस्करण चला रहे हैं इतना है कि प्राप्त परिणामों हमेशा नवीनतम व्यापार जानकारी और तर्क के साथ करने वाली तारीख को देखा .

प्री - तैनाती

तुम अगर वहाँ एक बात है अपने ग्रिड प्रणाली की तैनाती से पहले करते हैं और एक बात अकेले यह अपने वर्तमान प्रणाली बेंचमार्क है ! कोई फर्क नहीं पड़ता कि तुम क्या आपके सिस्टम कितना अतिरिक्त काम करने जा रहा है के बारे में सहयोगियों बताओ जब तक आप अपने गारंटी देता है इस वापस संख्या है कुछ भी नहीं कर रहे हैं. तो,

  • आप वर्तमान में कितने रिकॉर्ड की प्रक्रिया कर सकते हैं? प्रति दिन? प्रति घंटे?
  • कब तक यह आम तौर पर ले करता है एक नौकरी के लिए चारों ओर बारी है?
  • आप कितना अधिक क्षमता है?

वहाँ भी अतिरिक्त प्रश्न:

  • यदि आपके प्रसंस्करण सर्वर (या अपने प्रसंस्करण सर्वर के) नीचे चला जाता है यह अपनी क्षमताओं को कैसे प्रभावित करेगा है, तो आप अपंग हो जाएगा?
  • क्या लाभ / आप उम्मीद है एक ग्रिड प्रणाली से प्राप्त करने की उम्मीद है?
  • अपने कार्यालय मशीनों नौकरियों चल करने में सक्षम है?
  • क्या आपके (या आप नौकरी परिवर्तित किया जा सकता है) चल रहा है की इस शैली में काम करने के लिए?

पिछले प्रमुख बिंदु इस तरह से किसी भी बड़े बदलाव पर अपना समय ले रहा है. आपके प्रसंस्करण कोड का अद्यतन करने के लिए नई पद्धति बेंचमार्क, फिर का उपयोग कर काम है. संभवत: आपके प्रसंस्करण सर्वर स्थापित करने के लिए एक आभासी मशीन चलाने के लिए, अपने सभी संसाधन सर्वर के बाद सिर्फ एक और कार्यकर्ता (सिर्फ एक बहुत शक्तिशाली एक अपेक्षाकृत). नई प्रक्रिया को व्यवस्थित करने की अनुमति दें.

परिनियोजन

मेरा सुझाव कार्यालय एक सप्ताह के अंत में पॉप के सभी प्रतिष्ठानों और सेटअप प्रदर्शन होगा . बस एक पखवाड़े की छुट्टी से पहले यह मत करो और बहुत अन्य गरीब छोड़ ... शायद परिणाम नहीं के साथ सौदा करने के लिए आदमी ...

इस तरह एक प्रणाली के लिए तैनाती के लिए धीमी गति से होने की जरूरत है. यह अपेक्षाकृत सरल किया जा रहा करने के लिए इस प्रणाली स्थापित करने के बावजूद अपने पूरे कार्यालय के बुनियादी ढांचे (अच्छी तरह से डिजिटल एक) को प्रभावित करेगा. सबसे पहले, एक समय में मशीनों के एक जोड़े, निगरानी नेटवर्क यातायात, कैसे कार्यकर्ता मेजबान एक दिन के लिए दिन के आधार पर प्रदर्शन करने के लिए बाहर रोल. आप अपने निष्कर्षों के जवाब में अपनी नौकरी विन्यास को बदलने की आवश्यकता हो सकती है.

एक बार इस प्रणाली के कुछ मशीनों (कहते हैं कि सभी कार्यालय मशीनों के 10%, अर्थात् 5) नेटवर्क यातायात और मेजबान मशीन performance. फिर अगला बेंचमार्क निगरानी रखने की सुविधा देता है के साथ बसे है, अब तुम अपना पहला मानक की तुलना में 33% अधिक नौकरियों प्रसंस्करण किया जाना चाहिए. जाँच करें यह ऐसा है, या कि आप कम से कम इस ballpark में हो. यदि नहीं, जांच, पर जाने से पहले क्या हो जा रहा है. इस चक्र को दोहराएँ जब तक आप सभी कार्यालय मशीनों खुशी व्यक्तिगत मशीन के प्रदर्शन की हत्या के बिना चल रहा है या एक ठहराव के लिए अपने नेटवर्क पीस.

सभी समय में बेंच मार्किंग रखने के लिए, सभी की तैनाती के बाद भी बना रहे हैं. जाँचें कि नए कोड अद्यतन आपके सिस्टम की गति को प्रभावित जांच, सभी श्रमिकों में रिपोर्ट कर रहे हैं और प्रसंस्करण नौकरियों. धीरे धीरे बहुत धीरे धीरे अपनी नौकरी विन्यास वेतन वृद्धि करने के लिए अपने कार्यकर्ताओं और नेटवर्क से सबसे अच्छा मिलता है.

बंद करो!

क्या होगा अगर आप कुछ समय में चलने से अपने कार्यकर्ताओं को बंद करना चाहते हैं हैं? वे सब वहाँ से बाहर चल रहे हैं, regenerating, और उनकी पूरी कोशिश कर रही करने के लिए भूख कीड़े की तरह डेटा की प्रक्रिया कर रहे हैं. जवाब स्पष्ट लग सकता है, लेकिन इसके लायक सिर्फ मामले में इसकी अनदेखी जोड़ने. बस एक बाहर निकलें (0) के साथ अपने प्रसंस्करण स्क्रिप्ट को संपादित या मरो () या आपके प्रसंस्करण की नौकरी को मारने के लिए कुछ अन्य बयान. एक महत्वपूर्ण कारण है क्यों हम हमेशा के लिए किसी भी चलाए जाने से पहले नवीनतम प्रसंस्करण स्क्रिप्ट अद्यतन करने के लिए करने की कोशिश!

प्रदर्शन सिस्टम

आदेश में कम लेख के इस सेट को लिखने के लिए मैं एक बहुत छोटे से ग्रिड प्रौद्योगिकियों और तरीकों का प्रदर्शन बनाया. मैं लेख, ट्यूटोरियल, के बहुत पढ़ा है, और विभिन्न उपकरणों का इस्तेमाल करने के लिए सेटअप और क्या चल रहा था की निगरानी. कोई मतलब है मैं बाहर चले गए हैं और यातायात के साथ एक पूरी कार्यालय संतृप्त और न ही मैं एक नियमित रूप से स्टाफ के सदस्यों को देखने के लिए कैसे मेजबान के प्रदर्शन से प्रभावित था पीसी के लिए उपयोग किया था.

मेरा प्रदर्शन प्रणाली वास्तव में बहुत ही विनम्र था. मैं अपने नियमित रूप से एक नौकरी नियंत्रण सर्वर के रूप में सेट डेस्कटॉप का इस्तेमाल किया. मैं इस में स्थापित किया था mySQL सर्वर एक मास्टर के रूप में प्रतिकृति में सेट स्थापित , PHP, एक और SVN के माध्यम से जुड़ा हुआ एपाचे (कार्यकर्ता VM के माध्यम से पहुँच के लिए ).

मैं तो VirtualBox पर एक 6 साल पुराने विंडोज़ XP लैपटॉप पर एक CentOS कार्यकर्ता मशीन बनाया. मैं सेटअप अनुसूचित के रूप में मशीन पर VM नकल के बाद निर्दिष्ट कार्य और इसे जाने.

वर्चुअल मशीन PHP, तोड़फोड़, और mySQL के साथ स्थापित किया गया था. मैं बाहर मेरे काम पर नियंत्रण सर्वर रिपॉजिटरी से 'कार्यकर्ता' नाम शाखा की जाँच और यकीन है कि यह 'svn अद्यतन' का उपयोग कर अद्यतन किया जा सकता बनाया है. अगला एक दास के रूप में सेटअप mySQL और मैं जाँच की है कि डेटा mySQL से काम पर नियंत्रण सर्वर पर नकल कार्यकर्ता VM के लिए नीचे था. इस सब के बाद मैं bash स्क्रिप्ट और क्रॉन नौकरी सेटअप.

मेरा प्रसंस्करण स्क्रिप्ट को मूल रूप से इस की तर्ज (बहुत सरल सामान) के साथ चला गया:

  • नाम फ़ील्ड में पढ़ें
  • किसी तालिका में इसी तरह के नामों की VM पर आयोजित डेटा स्रोत से संख्या की गिनती
  • रिक्त स्थान द्वारा उपरोक्त लेकिन बंटवारे का नाम (यानी मुख्यनाम, मध्यम, उपनाम) के रूप में नामों की संख्या की गिनती
  • इस प्रक्रिया को 1,000 बार दोहराया

प्रत्येक नौकरी लगभग 20 मिनट चलाने के लिए ले लिया. एक बिंदु पर मैं खिड़कियों लैपटॉप पर कार्यकर्ता VM के कई प्रतियां खोला और देखा नौकरियों प्रत्येक कार्यकर्ता आईपी पते के द्वारा जाँच की जानी है. इस बिंदु पर मैं यह भी है कि स्वचालित रूप से पुनरारंभ प्रतिकृति की पुष्टि की.

एक नौकरी नियंत्रण सर्वर से नौकरियों प्रक्रिया शुरू कार्यकर्ता में परिणामस्वरूप निष्क्रिय लैपटॉप छोड़कर. जब लैपटॉप उपयोग शुरू करने के बारे में 30-60 सेकंड के एक देरी था, इस समय और स्टाफ के एक निष्पक्ष राशि की आवश्यकता होगी पता है कि उनके मशीन थोड़ी देर के लिए विरामित जब मशीन से लौट सकता है बनाया जा. नई मशीनों के इस लंबे समय से एक ठहराव नहीं हो सकता है. निष्क्रिय अवधि के दौरान इन मशीनों द्वारा प्रदर्शन प्रसंस्करण की राशि का लाभ है कि कर्मचारियों को एक सुबह उनकी मशीनों पर पहुंचने पर एक छोटी सी अवधि (1 मिनट कहते हैं) की प्रतीक्षा करने के सदस्यों पल्ला झुकना और अधिक (मैं बार बार होगा अब इंतजार है कि एक Windows Defender के लिए इस जगह ले) अद्यतन प्रदान वे इस के बारे में पता किए गए थे (उपयोगी समय के लिए सुबह की कॉफी हड़पने!).

कुल मिलाकर मुझे विश्वास है कि मैं प्रौद्योगिकियों कि एक ऐसी प्रणाली बनाने के लिए इस्तेमाल किया जा सकता का प्रदर्शन किया है लगता है. मुझे पता चला है कि एक ऐसी प्रणाली (बहुत) छोटे पैमाने पर और कुछ और अधिक प्रयोग को बढ़ाया जा सकता है और एक कार्यालय मशीन के संसाधनों का उपयोग के साथ काम करता है. यदि मैं ऐसा करने की बात को नहीं मिलता है मैं बहुत पता करने के लिए दिलचस्पी हो / देखो जब किसी करता है.

निष्कर्ष मूल्यांकन /

अगले स्पष्ट कदम के लिए वास्तव में एक असली दुनिया उदाहरण मिलता है और एक दफ्तर के माहौल के भीतर इस तरह के रूप में एक प्रणाली की तैनाती के लिए और देखो क्या होता है शुरू होगा. एक व्यापार पूछना एक पगडंडी धधकते कंपनी के बिना इस के लिए प्रतिबद्ध करने के लिए प्रौद्योगिकी और प्रभावशीलता को साबित करने के लिए थोड़ा मुश्किल हो सकता है. / ग्रिड कंप्यूटिंग वितरित बहुत लोकप्रिय है कुछ हलकों और कुछ बड़े अनुप्रयोगों (BIONC, SETI @ होम, Folding @ होम, आदि) है. , लेकिन मैं नहीं था, मेरे खोजों है कि एक दफ्तर के माहौल के भीतर बाहर लुढ़का सकता में एक छोटे पैमाने पर और इस तरह सरल प्रणाली मिल.

मैं मूल रूप से मुक्त प्रणाली लगभग किसी भी कार्यालय में ज्यादातर खुला स्रोत सॉफ्टवेयर और उपकरण उपलब्ध का उपयोग कर बनाया. प्रौद्योगिकियों और मूल रूप से प्रदर्शन किया गया प्रदर्शन और उम्मीद के रूप में काम को दिखाने के. उम्मीद है कि मैं पता चलता है कि नहीं बहुत काम के साथ और एक बहुत ही साधारण सेटअप के साथ आप एक कार्यालय ग्रिड कंप्यूटिंग प्रणाली को तैनात कर सकते हैं कि शक्तिशाली, सस्ते एक है, और एक ही समय में सभी स्केलेबल है है.

एक बार एक प्रणाली है और वहाँ चल रहे लगभग अनुकूलन और सुधार कर सकते हैं की राशि का कोई अंत नहीं है. उदाहरण के लिए आँकड़े / बेंच मार्किंग आसानी से एक ऐसी प्रणाली के लायक दिखा हर दिन जोड़ा जा सकता है. नई मशीनों जल्दी और आसानी से के रूप में जोड़ा जा सकता है और जब वे अपने प्रसंस्करण शक्ति को सहारा देने के मौजूदा हार्डवेयर के उन्नयन के साथ पहुंचें.

मुझे आशा है कि आप लेख की इस श्रृंखला को पढ़ने का आनंद लिया है और अपने आप एक कार्यालय ग्रिड प्रणाली पर चल रहे विचार के लिए भोजन दिया. यहाँ प्रस्तुत समाधान के लिए जरूरी सभी स्थितियों में काम नहीं, लेकिन अनुकूलनीय होना करने के लिए तुम्हें पाने के लिए अपने डाटा प्रोसेसिंग किया है अपने खुद के समाधान का उपयोग की अनुमति चाहिए.

कृपया मुझे किसी भी टिप्पणी, सुधार, सुधार या भेजने के लिए स्वतंत्र महसूस हो रहा है और मैं अपना सर्वश्रेष्ठ करने के लिए इस लेख के लिए मैच के लिए अद्यतन रखने करेंगे.

Zend फ्रेमवर्क: बुनियादी बातों - समीक्षा

, शनिवार 28 नवम्बर 2009 10:42 बजे

मेरा नियोक्ता हाल ही में हम डेवलपर्स के एक समूह के लिए भुगतान करने के लिए ले Zend फ्रेमवर्क : बुनियादी बातों कोर्स, यहाँ मैं दूसरों के लिए पाठ्यक्रम पर मेरे विचार और राय संक्षेप हूँ. समय बचाने के लिए देख उन लोगों के लिए, यहाँ मेरे सारांश:

डेवलपर्स, जो समय पर देखने नहीं पड़ा है Zend फ्रेमवर्क आप प्रमुख क्षेत्रों के लिए शुरू करने और पर्याप्त जानकारी देने के क्रम में जारी रखने के लिए रूपरेखा का एक अच्छा समग्र चित्र प्रदान करता है: इस पाठ्यक्रम ( बुनियादी बातों Zend फ्रेमवर्क) के लिए. उन जो समय बिताया है ढांचे को देख और एक या दो ट्यूटोरियल बाद के लिए इस पाठ्यक्रम के बहुत से परे प्रदान नहीं करता है .

पृष्ठभूमि

मैं एक किया गया है PHP के आसपास 5-6 साल के लिए डेवलपर, और Zend फ्रेमवर्क के साथ एक घटक के आधार पर पिछले 6 महीनों से अधिक काम शुरू कर दिया है. मैं विकसित किया है और / या छोटे Zend फ्रेमवर्क के एक जोड़े पर एक डेवलपर MVC sites. मैं ईमानदार हो जाएगा, मैं को देखने के एक कोडन बिंदु से दूसरे चौखटे के लिए जोखिम की एक बड़ी राशि नहीं था, लेकिन कई खर्च घंटे परियोजना वेबसाइटों शोध और them. मूल्यांकन ढांचे और आसपास के समुदाय Zend फ्रेमवर्क यह काफी रोमांचक है और वहाँ के लिए जहां इसकी जा रहा में भारी संभावनाओं को लग रहे हो.

पाठ्यक्रम के बारे में

बेशक 9 दो घंटे WebEx सत्र में दिया है (बीच में एक 10 मिनट का ब्रेक के साथ). समय किसी भी समय पर चर्चा के साथ Zend द्वारा प्रदान की स्लाइड्स का एक सेट के माध्यम से जा रहा करने के लिए खर्च किया जाता है. आप प्रशिक्षक से बात करने के लिए एक माइक्रोफोन का उपयोग कर सकते हैं, लेकिन ईमानदार हो सकता है मैं नहीं देखा था किसी चैट विंडो से अधिक कुछ का उपयोग करें. इसके अलावा एक VMWare Ubuntu मशीन प्रदान की जाती है कि उदाहरण कोड है और परियोजनाओं Zend स्टूडियो के एक परीक्षण संस्करण की स्थापना की. या तो एक एकीकृत वीओआईपी समाधान पर, या आप एक संख्या में दुनिया भर में कई डायल के उपयोग में डायल कर सकते हैं पाठ्यक्रम नेता attendees करने के लिए वार्ता.

दौरान सामग्री एक नमूना गेस्टबुक आवेदन में शीर्षक से पहले फ्रेमवर्क की एक संक्षिप्त सिंहावलोकन और MVC पैटर्न के होते हैं. चर्चा का प्रदर्शन bootstrapping, Zend_Application, DB टेबल्स, डेटाबेस का उपयोग, प्रपत्र, फ़िल्टरिंग, एसीएल, मान्य, आदि, आदि मूलतः आप एक चल रहा है सब समय के ऊपर एक बुनियादी साइट तुम्हें देने के लिए उपकरणों की आवश्यकता होगी सभी विषयों को कवर जाओ और ढांचे में और अधिक उन्नत मिल (हालांकि यह राशि समय के बहुत 'वेबसाइट देखें).

समय अप करने के लिए कुछ उदाहरण कोड, और 'गेस्टबुक और सरल' विकी 'आवेदन विकसित करने के लिए दिया जाता है. निजी तौर पर मुझे लगा कि कोड या प्रत्येक बॉक्स उपलब्ध कराने और फिर हमें पूछ विकसित है क्या अनिवार्य रूप से एक प्रतिलिपि था बगल में वास्तव में एक अच्छा सीखने का अनुभव प्रदान नहीं करता था. मैं के लिए एक समान अनुप्रयोग विकसित करने के लिए पसंद होता है, लेकिन समान नहीं है. उदाहरण के आवेदन करने के लिए एक गाइड को संदर्भित होने के लाभ के साथ. वैकल्पिक रूप से प्रदर्शक के साथ खरोंच से अनुप्रयोगों के निर्माण संभवतः के बारे में क्यों और कैसे अधिक से अधिक प्रश्नों के नेतृत्व में, इस प्रकार ढांचे के एक बेहतर समझ दे, सब के बाद आप कोर्स के बाद विशेष देख सकते हैं.

पिछले व्याख्यान / प्रशिक्षक से मदद और मार्गदर्शन के साथ विकी आवेदन पर काम करने की शामिल है. पाठ्यक्रम प्रतिक्रिया के बाद लिया गया था, यह जरूर है कि Zend प्रतिक्रिया बहुत गंभीरता से लेता है के माध्यम से कई बार जोर दिया गया वास्तव में जाहिरा तौर पर हमारे पाठ्यक्रम के संस्करण काफी नया था. कंपनी में अन्य डेवलपर्स के कुछ पाठ्यक्रम ले जाएगा जल्द ही तो यह देखने के लिए अगर यह हुआ है दिलचस्प हो जाएगा.

पाठ्यक्रम शैली अनौपचारिक था, प्रतिक्रिया और उपस्थितगण और प्रशिक्षक के बीच सहयोग के लिए अनुमति दी. बेशक नेता अनुकूल था, approachable (ईमेल पते प्रश्नों के लिए साझा किया गया), और स्लाइड से अपनी प्रस्तुति, whilst एक अस्थिर सा ढांचे में पूरी तरह सक्षम लग रहा था. उन्होंने स्पष्ट रूप से कोई है जो कोई है जो बेशक सिखाने के लिए सिखाया जाता है बजाय एक नियमित आधार पर ढांचे का इस्तेमाल किया था, मैं उस संबंध में 'असली दुनिया' के अनुभव को पसंद आया.

कुल मिलाकर लग रहा है

कुछ मायनों में मैं बिल्कुल समय की बर्बादी पाया है, दूसरों में यह बहुत आसान था. उम्मीद है कि मैं स्पष्ट रूप से भर में मेरे कारण मिलता है, और शायद सोचा या उपयोगी प्रतिक्रिया के लिए कुछ खाना (मुझे जानने यह संभावना नहीं है!) प्रदान.

खुद के लिए बहुत कम स्तर पर इस पाठ्यक्रम के उद्देश्य से किया गया था. Quickstart गाइड के माध्यम से चला गया, रोब एलेन Zend फ्रेमवर्क लड़ाई में पढ़ा है, और ढांचे के एक छोटे से मैं वास्तव में कुछ भी नहीं मिला बहुत ज्यादा साथ काम किया. मैं के पाठ्यक्रम quickstart के अंत से उठा और अतिरिक्त कौशल विकसित पसंद आया होगा.

और उस पहलू में पाठ्यक्रम प्राप्त यह क्या बाहर सेट करना है: उस ने कहा, बेशक शीर्षक स्पष्ट रूप से राज्य "बुनियादी बातों Zend फ्रेमवर्क" करता है . विकास दल है कि समय खर्च नहीं ढांचे में देख के अन्य सदस्यों के उत्साह के साथ प्रत्येक सत्र समाप्त हो गया और सवाल है जो वास्तव में देखने के लिए अच्छा था पूछा.

सभी खो दिया है, यह अच्छा नहीं था करने के लिए समय बिताने के ढांचे की बुनियादी विवरण की पुष्टि और क्षेत्रों में जहां मैं 100% नहीं था में सवालों के एक जोड़े को पूछना था. यह भी समय है कि मैं प्रत्येक दिन बैठ जाओ और ढांचे और भविष्य की परियोजनाओं का उपयोग कर, मैं अन्यथा (आप अपनी कंपनी कि करने के लिए सहमत कल्पना कर सकते हैं?) करने में सक्षम नहीं होता कुछ कोडिंग के बारे में सोचना है). पिछले नहीं बल्कि कम से कम तुम भी Zend से एक अच्छा प्रमाण पत्र का कहना है कि आप (हालांकि ईमेल द्वारा) पाठ्यक्रम में भाग लिया.

Zend फ्रेमवर्क प्रमाणन

यह एक सवाल है कि कोर्स के दौरान मन में आ रहा रखा था, यह मुझे प्रमाणीकरण के लिए तैयार होगा? जल्दी आसान है एक शानदार नहीं है. पाठ्यक्रम प्रशिक्षक अतिरिक्त सलाह है कि प्रमाणीकरण के लिए तुम सच में दिन पर दिन के आधार पर एक रूपरेखा चाहिए उपयोग किया हैं और बहुत आरामदायक है और इसके उपयोग और तरीके में विश्वास महसूस के साथ उस पर काफी स्पष्ट था.

सारांश

को देखते हुए सब कुछ मैं ऊपर लिखा है, मैं दो आसान गोली अंक में सब कुछ सारांशित हूँ:

  • नई Zend फ्रेमवर्क: इस पाठ्यक्रम वास्तव में आप क्या उम्मीद थी करता है यह आप ढांचे के लिए एक अच्छा परिचय और मूल बातें जिस से आप का निर्माण कर सकते हैं पर एक अच्छा ग्राउंडिंग देता है. पाठ्यक्रम के लिए ब्याज और डेवलपर्स के बीच ढांचे के लिए उत्साह उत्पन्न लगता है.
  • प्रयुक्त Zend फ्रेमवर्क: हालांकि यह अच्छा था करने के लिए बहुत मूल के कुछ है, मैं समय और प्रयास लगा और धन किनारे करने के लिए पाठ्यक्रम के बेहतर कहीं और खर्च सकता है किया गया ले . यह see Zend के लिए अच्छा हो सकता है एक नए उच्च स्तर के पाठ्यक्रम बनाने के डेवलपर्स को अगले स्तर तक ले - कम से कम प्रमाणीकरण और परे मानक के लिए कि मैं तुरंत हस्ताक्षर करेंगे.

HTML तालिका उत्पन्न कक्षा (HtmlTable.php)

, मंगलवार 5 मई, 2009 9:11 बजे

मैं से एक HTML तालिका उत्पन्न आवश्यक PHP एक परियोजना है कि मैं पर काम कर रहा था के लिए डेटा. दुर्भाग्य से Googling के एक बिट के बाद मैं वास्तव में कुछ भी है कि उपयुक्त था, इसलिए मैं अपने खुद के बनाने का फैसला किया नहीं मिल सकता है.

मुझे एहसास है कि यह सबसे अच्छा तालिका पैदा वर्ग कभी नहीं हो सकता है और वहाँ शायद कुछ कीड़े अभी भी उस में है, लेकिन मैं साझा करने के लिए पसंद करेंगे और अगर किसी को भी एक बेहतर संस्करण चाहता है मैं इसे देखता हूँ हो सकता है:) मैं मूल रूप से बनाना चाहता था एक अलग वस्तुओं के ऊपर बनाया तालिका कक्ष ऑब्जेक्ट, पंक्ति वस्तु (सेल वस्तुओं की निर्मित) जैसे, लेकिन मैं इस पर उपरि एहसास हुआ भारी होगा! तो मैं एक सरणी सेटअप करने के लिए वापस चले गए.

वर्ग ऐसा शीर्ष, पादुका, या शरीर में इस्तेमाल स्तंभों की अधिकतम संख्या की गणना और स्तंभों की संख्या लिखें. हेडर, footers, और कैप्शन वैकल्पिक हैं. गुण एक सरणी है जहां प्रमुख विशेषता नाम है के बने होते हैं और मान विशेषता मान है. गुण तालिका (तालिका सृजन पर - वर्ग initialisation) टैग करने के लिए लागू कर रहे हैं, तालिका पंक्तियों (सरणी [पंक्ति] [विशेषता]), और तालिका कक्षों (सरणी [पंक्ति] [स्तंभ] [विशेषता]) इस शीर्ष लेख, पाद लेख, और के लिए लागू होता है तालिका शरीर.

उदाहरण

मैं हमेशा लगता है कुछ पर देखने का सबसे अच्छा तरीका तो हम चलते हैं यहाँ एक उदाहरण का उपयोग करने के लिए है:

 $ तालिका = नई HtmlTable (सरणी ('वर्ग' => 'sortable',
                 'शैली' => 'चौड़ाई: 550px ;'));
 $ हेडर [0] [0] ['सामग्री'] = 'आईडी';
 $ हेडर [0] [1] ['सामग्री'] = 'शीर्षक';
 $ हेडर [0] [2] ['सामग्री'] = 'तिथि';
 $ हेडर [0] [3] ['सामग्री'] = 'साइट';

 $ टेबल> addHeader ($ हेडर);
 मैं $ = 0;
 foreach ($ $ newsItem रूप newsList) {
 $ ItemLink = "{$ [newsItem 'शीर्षक']}";
 $ TableBody [$ i] = सरणी (0 => सरणी ('सामग्री' = newsItem $> ['आईडी'],
 'विशेषताओं' => सरणी ('शैली' => 'फ़ॉन्ट वजन: बोल्ड ;')),
 1 => सरणी ('सामग्री' = itemLink $>),
 2 => सरणी ('सामग्री' = newsItem $> ['date_posted']),
 3 => सरणी ('सामग्री' = newsItem $> ['साइट']));
 मैं $ + +;
 }
 $ टेबल> addBody ($ tableBody);
 $ टेबल> drawTable () गूंज;
आईडी शीर्षक तारीख स्थल
9 एक समाचार 2009-04-04 10:40:00 स्थल नाम
10 2 समाचार 2009-04-04 12:44:11 स्थल नाम

और HTML में इस तरह दिखता है:

 = "sortable" style = "width: 550px;" > < thead > < tr <तालिका वर्ग = "sortable" शैली = "चौड़ाई: 550px;"> <thead> <टीआर    > वें <    > आईडी <वें /> 
  <वें    > शीर्षक </ वें>
		 <वें    > दिनांक </ वें>
		 <वें    > साइट </ वें>
 </ Tr>
 </ Thead>
 <Tbody>
	 <टीआर    >
		 =  "font-weight: bold;" >9</ td > <Td style = "font-वजन: बोल्ड,"> 9 </ td> 
  <Td    > 1 समाचार </ p>
		 <Td    2009/04/04 10:40:00> </ p>
		 <Td    > साइट का नाम </ td>
 </ Tr>
	 <टीआर    >
		 =  "font-weight: bold;" >10</ td > <Td style = "font-वजन: बोल्ड,"> 10 </ td>
		 <Td    > समाचार 2 </ td> 
  <Td    2009/04/04 00:40:00> </ p>
		 <Td    > साइट का नाम </ td>
 </ Tr> 
  <Tbody />
 </ P> 

कोड

HtmlTable.php
यदि आप किसी भी टिप्पणी कृपया उन्हें नीचे बना, यह बहुत अच्छा होगा कुछ सुना होगा. यदि आप अंत में इसे का उपयोग भी मुझे जानते हैं और मैं इसे भविष्य में विस्तार होगा:)

Zend फ्रेमवर्क का उपयोग करने DB के लिए प्रवेश करें

, मंगलवार 14 अप्रैल 2009 9:06 बजे

मैं के लिए एक साइट को पाने के लिए प्रबंधित किया है और के साथ चल रहे Zend फ्रेमवर्क , सब कुछ अच्छी तरह से करने के लिए लॉगिंग है / FireBug FirePHP तो अगले कदम के लिए DB के लिए लॉग इन करना था. मैं भी के लिए कुछ अतिरिक्त जानकारी लॉग उपयोगकर्ता एजेंट, दिनांक, और समय मिलता है, और पोस्ट चर जैसे ढांचे का उपयोग करना चाहता था. तो एक यहाँ थोड़ा मैंने क्या किया पुस्तिका का विस्तार करने के लिए:

// Set up logging to DB
$db = Zend_Registry ::get('dbAdapters');
$db = $db['general'];

$ = सरणी ('प्राथमिकता' => 'प्राथमिकता' columnMapping
'संदेश' => 'संदेश'
'Datetime' => 'टाइमस्टैम्प',
'User_agent' => 'user_agent',
'Get_vars' => 'get_vars'
'Post_vars' => 'post_vars'
= 'साइट'> 'साइट'
);

WriterDb डॉलर = नए Zend_Log_Writer_Db ($ db, 'error_logging', columnMapping $);
$ लकड़हारा = नई Zend_Log (writerDb $);

$ लकड़हारा -> setEventItem ('datetime', तिथि ('Ymd एच: मैं:'));
$ लकड़हारा -> setEventItem ('user_agent, $ _SERVER [' HTTP_USER_AGENT ']);
$ लकड़हारा -> setEventItem ('get_vars', print_r ($ _GET, सच));
$ लकड़हारा -> setEventItem (post_vars ', print_r ($ _POST, सच));
$ लकड़हारा -> setEventItem ('साइट', साइट);

$ लकड़हारा -> जानकारी (सूचना संदेश ');

कहाँ $ columnMapping में सरणी चाबियाँ मेरे स्तंभ नाम हैं. 'प्राथमिकता' और 'संदेश' से समझ रहे हैं लेकिन अतिरिक्त फ़ील्ड्स Zend_Log_Writers मुझे कुछ अतिरिक्त जानकारी देने के लिए जोड़ा गया था.

जाहिर है यह मानता है कि आप काम कर रहे लॉगिंग अन्य प्रथम लेखकों में से एक का उपयोग कर:)

ब्रिटेन नाम निर्देशिका और Facebook अनुप्रयोग

द्वारा , शुक्रवार 10th अप्रैल 2009 9:33 हूँ

एक मजेदार बातें मैं whilst में शामिल किया गया है Tracesmart के लिए काम के नाम निर्देशिका . असल में हम हमारे विशाल जानकारी डेटाबेस लिया और विभिन्न नामों के बारे में आँकड़ों का एक बड़ा ढेर बाहर खींच लिया.

प्रक्रिया सभी के क्रम में करने के लिए साइट को और अधिक यातायात आकर्षित एक बड़ा एसईओ प्रयास है, लेकिन यह भी कुछ रोचक जानकारी और नाम आँकड़े प्रदान करता है.

यहाँ मेरे नाम के लिए एक उदाहरण लॉयड Watkin , या मैं सही ढंग से अधिक लगता है स्टीवन Watkin . एक मिनट ले लो अपना नाम देखने के Tracesmart साइट पर के दिलचस्प हो सकता है; )

हम भी पर नाम आँकड़ों डेटा नाम निर्देशिका पृष्ठ जो आपको बताता है क्या नाम खोजा गया है और हाल ही में कैसे. यह काफी दिलचस्प देखने के लिए प्रसिद्ध लोगों के नाम आँकड़े उड़ान भरने जब वे खबर में दिखाई देते हैं. एक ताजा उदाहरण है कि Liam Neeson , जो हाल ही में एक स्कीइंग दुर्घटना से मृत्यु हो गई पत्नी है, हालांकि जाहिर है लोगों को काफी सही (इसलिए इस नाम पर हिट की भारी संख्या) वर्तनी पर नहीं हैं - लियाम Nilson.

फेसबुक अनुप्रयोग

एक बार नाम निर्देशिका बनाया गया था हम एक बनाने के बारे में सेट facebook आवेदन जो हम duely ' नाम मेरा नाम ' . facebook आवेदन का एक विस्तार के नाम निर्देशिका और कुछ अतिरिक्त आँकड़े प्रदान करता है. आदेश में अपने Facebook खाते नाम निर्देशिका जोड़ने के लिए कृपया पर जाएँ:

http://apps.facebook.com/my-name/

विकलांग प्रपत्र फ़ील्ड्स नहीं पेश की जाती हैं ...

द्वारा , गुरूवार 4th सितंबर 2008 11:01 हूँ

एक जल्दी ध्यान दें के रूप में चल रहे के भाग के रूप में संपत्ति एजेंसी सॉफ्टवेयर परियोजना मैं वापस प्रणाली के भीतर संपादन तिथि प्रविष्टि के लिए चला गया है. अब उपयोगकर्ताओं को पाठ के किसी भी पुराने बिट में प्रवेश करने के लिए अनुमति देने के बजाय मैं एक को बंद कर दिया है जावास्क्रिप्ट दिनांक / समय पिकर (अल्पावधि के लिए) है कि उपयोगकर्ता एक पॉप अप विंडो से और दिनांक और समय 'लेने 'की अनुमति देता है.

अब, मेरे पुराने Systema के लिए पिकर पॉप अप जब उपयोगकर्ता पर क्लिक इनपुट क्षेत्र . हालांकि यह उपयोगकर्ता पाठ क्षेत्र की अनदेखी करने के लिए अनुमति देते हैं और अभी भी जाने के लिए और क्षेत्र में किसी भी पुरानी बात लिखें. यह आदर्श नहीं था. तो मेरा समाधान 'था अक्षम प्रपत्र फ़ील्ड 'और एक डाल इसे करने के लिए अगले की अवधि के साथ onclick घटना की तारीख / समय पिकर बुला . मतलब यह है कि उपयोगकर्ता लगभग अच्छा तिथि / समय पिकर का उपयोग कर ताकि तारीखों में सही प्रारूप के साथ जाने के लिए (कि हालांकि अभी भी मान्य हो गया है!) के लिए मजबूर किया गया था.

तो मैं फार्म और उन्हें साथ लेने की कोशिश कर उठा के माध्यम से मेरी अच्छी तरह से स्वरूपित दिनांक - समय ( ओं ) गुजर रहा शुरू कर दिया PHP ' $ _GET या $ _POST चर. 'Unfortunately'disabled क्षेत्रों फार्म प्रस्तुतियाँ के माध्यम से पारित नहीं कर रहे हैं यह बहुत कष्टप्रद था. समाधान के लिए इनपुट तत्व सक्षम जावास्क्रिप्ट का उपयोग कर जब प्रपत्र का उपयोग कर प्रस्तुत किया गया था onsubmit घटना.

मतलब यह कि प्रपत्र डेटा के रूप में आवश्यक के माध्यम से पारित कर दिया गया था और अच्छी तरह से सत्यापन के लिए तैयार स्वरूपित ... एक

खोज ऐरे कुंजी और वापसी से मेल खाता है

, बुधवार 13 अगस्त 2008 4:26 बजे

मैं जरूरत के एक सरणी के माध्यम से खोज और तत्वों है कि कुंजी है कि एक खोज पद के मैच वापस लिया है. तो मैंने सोचा कि मैं हिस्सा था.

'डब्ल्यू लुका मैं इस की आवश्यकता होगी?' यह शायद पहला सवाल आप से पूछना है, अच्छी तरह से अगर मैं सभी तत्वों है कि एक आइटम के आयामों से संबंधित के लिए एक सरणी के माध्यम से खोज करने के लिए चाहता था होगा तो मैं द्वारा उचित कुंजी खींच सकता है इस छोटे से समारोह का उपयोग:

 <? function searchArrayKey($array,$search) {  $search = strtolower($search);  if (is_array($array))  {   foreach ($array as $key => $data)   {    if (strpos(strtolower($key),$search) === 0) { $returnArray[$key] = $data; }   }   return $returnArray;  } else  { // User hasn't subimitted an array...   return false;  } } ?> $) <? function searchArrayKey($array,$search) {  $search = strtolower($search);  if (is_array($array))  {   foreach ($array as $key => $data)   {    if (strpos(strtolower($key),$search) === 0) { $returnArray[$key] = $data; }   }   return $returnArray;  } else  { // User hasn't subimitted an array...   return false;  } } ?> 

तो उदाहरण के लिए अगर मैं आयाम डेटा के लिए आइटम के डेटा का एक सरणी की खोज करना चाहता था तो मैं निम्नलिखित कर सकता है (और संभाव्यतः स्क्रीन करने के लिए प्रिंट):

 $dimensions = searchArrayKeys($itemArray,'dimension'); 

जो कुछ की तरह लौटेंगे:

 print_r($dimensions); Array ( [dimension_height] => 20 [dimension_width] => 30 [dimension_depth] => 40 ) 

Plesk के साथ कस्टम php.ini

, बुधवार 13 अगस्त 2008 3:53 बजे

हम एक समर्पित सर्वर के साथ ukFast एक है जिस पर हम एक नंबर चलाने डोमेन है कि आभासी के तहत चल रहे सर्वर पर मौजूद Plesk . वैसे भी, मेरे डोमेन के अधिकांश पर मैं दूर चेतावनी को छिपाने के लिए और सुरक्षा के लिए लॉग इन फ़ाइलों के लिए त्रुटियों को रखने के लिए, लेकिन मेरे डोमेन में से कुछ पर (जैसे मैं उन पर विकसित कर रहा हूँ) मैं हर छोटी बुरा चेतावनी और त्रुटि है कि दिखाना चाहते हैं चाहते हैं प्रकट होता है.

अगर मैं अपने PHP संपादित ". INI> php.ini यह एक अच्छा विचार नहीं सर्वर पर प्रत्येक और हर डोमेन को प्रभावित करता है खासकर जब साइटों के कई संस्करणों पूरी तरह से रहते हैं एक तो आदेश में इस के आसपास पाने के लिए आप एक फ़ाइल बुलाया डाल की जरूरत है vhosts.conf अपने conf निर्देशिका में उदाहरण के /var/www/vhosts/<my_domain>/conf/vhost.conf vhost.conf <my_domain>.

एक बार जब आप अपने अतिरिक्त कोड जोड़ दिया है, फिर मैं उदाहरण के लिए शामिल है,

 php_value error_reporting E_ALL php_value display_errors On 

निम्न कमांड चलाने के बाद (यह आपके सभी डोमेन की reconfigures सिर्फ अपनी तेज डोमेन नाम में टाइप की तुलना lazier ,

 # /usr/local/psa/admin/bin/websrvmng -a 

यदि आप एक बिट फुर्तीला महसूस कर रहे हैं तो आप हमेशा बाहर पूर्ण संस्करण है जो टाइप कर सकते हैं,

 # /usr/local/psa/admin/sbin/websrvmng -u --vhost-name=<my_domain> 

इस आदेश के बाद यदि आप फ़ाइल httpd.include देखो देखना होगा कि आपके httpd.include अपने vhost.conf के लिए एक शामिल हैं लाइन, कुछ इस तरह होगा:

 Include /srv/www/vhosts/domain.com/conf/vhost.conf 












पैनोरमा थीम द्वारा Themocracy

7 आगंतुकों अब ऑनलाइन
6 मेहमानों, 1 बॉट, 0 सदस्यों
08:04 am UTC पर 18: अधिकतम आज आगंतुकों
इस महीने: 47 पर 2011/03/10 02:47 बजे UTC
इस वर्ष: 130 28-03-2011 10:40 बजे UTC
सभी समय: 28-03-2011 10:40 बजे UTC 130