2010-02-22 16 views
9

PHP अनुप्रयोगों को विकसित करते समय, आपके द्वारा विकसित/परीक्षण करने वाला सर्वर होना सर्वोत्तम होता है, और उसके बाद एक लाइव सर्वर जिसे आप तैयार होने के बाद सबकुछ डालते हैं।विकास सर्वर सेट करना

ठीक है, लेकिन कैसे?

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

क्या यह एक ही होस्टिंग कंपनी के माध्यम से बेहतर सर्वर का उपयोग करता है और उनसे पूछता है कि विकास और लाइव दोनों के पास समान सेटिंग्स हैं?

"विकास सर्वर" में उन पर "लाइव सर्वर" काम से फ़ाइलों को चेक करने के लिए उपयोग करने के लिए सबसे अच्छा काम-प्रवाह क्या है, फिर उन्हें लाइव सर्वर में वापस जांचें?

धन्यवाद !! मेरे दैनिक काम से

उत्तर

14

दो अंक:

  • XAMPP विंडोज पर एक अपाचे/mysql/पीएचपी ढेर की स्थापना के लिए अपने वन-स्टॉप शॉप है। मैं इसके साथ विकसित करता हूं और लिनक्स मशीनों पर तैनात करता हूं, कोई समस्या नहीं।

  • आप एक घर सर्वर या आभासी मशीन पर एक Linux वातावरण स्थापित करने के लिए चाहते हैं, तो मैं एक प्रश्न पूछा थोड़ी देर पहले आपकी रुचि हो सकती है कि: Pre-installed Linux for Web Developers?

बेहतर एक और सर्वर का उपयोग है एक ही होस्टिंग कंपनी के माध्यम से और उनसे पूछें कि विकास और लाइव दोनों के पास समान सेटिंग्स हैं?

यदि आप दूसरे सर्वर पर खर्च कर सकते हैं, तो यह जाने का सबसे अच्छा तरीका भी हो सकता है। दूसरी तरफ, एक स्थानीय मशीन जिसे आप अपग्रेड कर सकते हैं और इच्छा के साथ चारों ओर झुका सकते हैं, और यह सब एक दूसरे किराए पर सर्वर की लंबी अवधि की लागत के एक अंश पर। अगर संदेह में, मैं एक स्थानीय मशीन के लिए जाना होगा।

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

"विकास सर्वर" में उन पर "लाइव सर्वर" काम से फ़ाइलों को चेक करने के लिए उपयोग करने के लिए सबसे अच्छा काम-प्रवाह क्या है, फिर उन्हें लाइव सर्वर में वापस जांचें?

इस क्षेत्र में कई, कई राय और प्रथाएं हैं। मेरे लिए व्यक्तिगत रूप से, जहां भी मैंने इसका उपयोग किया है, निम्नलिखित वर्कफ़्लो आदर्श साबित हुआ है - मैं अभी भी सभी परियोजनाओं और सभी ग्राहकों के लिए इसे लागू करने की प्रक्रिया में हूं।के माध्यम से स्थानीय स्तर पर आईडीई

  • विकास सर्वर पर अपलोड में

    1. फ़ाइलें संपादित निर्मित आईडीई

      विकास सर्वर

    2. पर

    3. टेस्ट एक बार एक सुविधा का परीक्षण किया जाता है और काम करता है के एफ़टीपी समारोह विकास सर्वर पर (यानी यह "समाप्त" है), पूरे पैकेज को एक सबवर्जन (या अन्य) भंडार में देखें

    4. लाइव सर्वर पर, एक बिल्ड स्क्रिप्ट को रिपोजिटरी से नवीनतम संशोधन देखें, इसे संशोधन संख्या के साथ एक निर्देशिका में डाउनलोड करें, और जब समाप्त हो जाए, तो एक प्रतीकात्मक लिंक बदलें जो पिछले संशोधन के लिए पिछले संशोधन को इंगित करता है।

    इस तरह, हर आप लाइव वातावरण संस्करण नियंत्रण प्रणाली में लॉग ऑन है करने के लिए कर बदलते हैं, और पिछले पुनरीक्षण में वापस लाने में सेकंड अगर सवाल है। मेरे लिए, यह हर जगह शुद्ध एफ़टीपी के साथ काम करने की तुलना में एक बड़ी राहत थी। Setting up a deployment/build/CI cycle for PHP projects

  • +0

    नोट: यदि आपके पास एक लिनक्स मशीन है, तो XAMPP की कोई आवश्यकता नहीं है, अधिकांश लिनक्स पहले से कॉन्फ़िगर किए गए हैं (या उनके पैकेज प्रबंधन टूल के माध्यम से आसानी से कॉन्फ़िगर करने योग्य हैं) जो कुछ भी आवश्यक है। –

    +0

    चरण 1-3 मैं पूरी तरह से समझता हूं, मुझे किसी भी संस्करण नियंत्रण प्रणाली के साथ कोई अनुभव नहीं है, इसलिए मैं चरण 4 पर जानकारी के लिए Google सबवर्जन होगा। हालांकि क्या आप मुझे कहीं कहीं इंगित कर सकते हैं जो चरण 5 को प्राप्त करने के तरीके को समझाएगा? धन्यवाद!!! –

    +0

    जब मैंने चेक किया तो एक्सएएमपीपी और अन्य ढेर ने एक बकवास काम किया। उन्हें _development_ वातावरण स्थापित करना है, लेकिन उनमें से कोई भी विकास के लिए PHP सेट अप नहीं करता है। display_errors चालू होना चाहिए लेकिन यह नहीं था। उनका उपयोग करने वाले लोग मूर्खतापूर्ण प्रश्न पूछने पर खत्म हो जाते हैं। –

    3

    आप phpinfo() के माध्यम से सभी उत्पादन सर्वर का सेटअप जांच करने और उन्हें अपने विकास के वातावरण, कोई ज़रूरत नहीं उन्हें एक ही प्रदाता पर हो, इसके लिए कॉपी कर सकते हैं:

    संभवतः भी दिलचस्प सवाल

    मैं आमतौर पर स्रोत नियंत्रण में कोड करता हूं, और उत्पादन वातावरण में चेकआउट करता हूं, उदाहरण के लिए, सभी भंडार जानकारी को hhacaccess के माध्यम से छुपाता है, उदाहरण के लिए, here देखें।

    एक और (कम अनुशंसित) विकल्प केवल आपके विकास स्रोत में मास्टर स्रोत होना है, और एक बार यह एफ़टीपी तैयार होने के बाद, कई मुफ्त टूल्स हैं जो केवल बदली गई फाइलें अपलोड करेंगे।

    +1

    ऐसा एक उपकरण FileZilla है। फ़ाइलों को अपलोड करते समय, आपको अलग-अलग आकारों को ओवरराइट करने का विकल्प देता है, अलग-अलग आकारों को ओवरराइट करें, या अगर स्रोत नया है तो ओवरराइट करें – Tarka

    2

    सर्वर पक्ष के लिए, आपके पास कई संभावनाएं हैं। अपाचे होने पर आप vHosts का उपयोग कर सकते हैं, दो अलग-अलग दस्तावेज़ रूट्स के साथ: लाइव संस्करण के लिए एक और विकास के लिए एक। या आपके स्थानीय मशीन पर विकास वातावरण हो सकता है, और उसके बाद आपके समर्पित सर्वर/वेबस्पेस पर लाइव (+ स्टेजिंग) हो सकता है।

    हमारे वर्तमान परियोजना में हम एक तीन स्तरीय प्रणाली है:

    विकास, मचान और रहते हैं। स्टेजिंग और लाइव वास्तव में लगभग समान हैं, ताकि मैं देव से स्टेजिंग तक बाहर निकलने पर किसी भी समस्या को खत्म कर सकूं। यह मुझे जीने के लिए आगे बढ़ने से पहले एक और सुरक्षा परत देता है और अंततः यह देखते हुए कि कुछ गलत हो गया है।

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

    [production] 
    
    [staging : production] 
    
    [testing : production] 
    
    [development : production] 
    

    वहाँ में आप के लिए विभिन्न विकल्पों को परिभाषित कर सकते हैं, का कहना है की सुविधा देता है अपने डेटाबेस कनेक्शन जैसे कि,: अपने config.ini फ़ाइल में, आप जो इस तरह दिखता है एक टेम्पलेट है

    तो जब आप देव मशीन पर अपने परिवर्तनों को उपवर्तन में जांचते हैं और अपने लाइव सिस्टम पर रोलआउट करते हैं, तो आपको कॉन्फ़िगरेशन को बदलने की आवश्यकता नहीं है। यह सिर्फ काम करना चाहिए।

    0

    जहां तक ​​वर्कफ़्लो जाता है, आमतौर पर छोटी साइटों के लिए क्या होता है। प्रोजेक्ट के आकार के आधार पर, हालांकि, Git या सबवर्जन जैसे संस्करण नियंत्रण का उपयोग करना एक अच्छा विचार हो सकता है।

    0

    आपको किसी भी होस्टिंग कंपनी से आपके लिए दो समान होस्टिंग वातावरण स्थापित करने के लिए कहने के लिए कहीं भी जाने की आवश्यकता नहीं है। अधिकांश समय उनके पास PHP, mysql और apache के अद्यतित संस्करण हैं। मैं एक लिनक्स मशीन पर विकसित हूं, जिसमें पहले से ही दीपक स्टैक सेटअप है, इसलिए मेरा वर्कफ़्लो बहुत सहज है, और मैं लाइव सर्वर पर अपलोड करने के लिए पोस्ट-प्रतिबद्ध हुक के साथ एक svn का उपयोग करता हूं। के बीच आप 'देव' सर्वर और होस्टिंग सर्वर रहे हैं आप असंगतियां के बारे में चिंतित हैं, तो ऐसा करने के लिए सबसे आसान काम है, एक phpinfo फ़ाइल बनाने है

    <?php phpinfo(); ?> 
    

    और जाँच करें कि आपके होस्टिंग सर्वर किसी भी विशेष कार्य निषेध नहीं करता आप अपने देव सर्वर पर उपयोग करते हैं (और यह बहुत दुर्लभ है कि होस्टिंग कंपनी महत्वपूर्ण चीजों को अवरुद्ध करती है, और यदि वे करते हैं तो आप आसानी से एक ईमेल और 99% समर्थन भेज सकते हैं, जो आपको आवश्यक विशेषताओं को सक्षम करने में आपकी सहायता करेगा। लेकिन जैसा कि अपने देव पर्यावरण को स्थापित करने के लिए, मैं वर्चुअलबॉक्स को पकड़ने और उबंटू को स्थापित करने के ट्रैक को नीचे छोड़ूंगा, उबंटू को वेब सर्वर बनाने के लिए एक ट्यूटोरियल ढूंढें (गंभीरता से कुछ एपीटी-कमांड कमांड) और आप गैस से धूम्रपान करेंगे!

    संबंधित मुद्दे