2014-08-30 8 views
12

मैं मूल रूप से PHP डेवलपर हूं। मैं वर्तमान में उबंटू लिनक्स 12.04 एलटीएस का उपयोग अपनी स्थानीय मशीन पर कर रहा हूं।क्या मैं PHP 5.3.10 से PHP 5.6.0 में माइग्रेट कर सकता हूं?

मैं अपने PHP परियोजना के विकास के लिए निम्नलिखित PHP संस्करण का उपयोग कर रहा हूँ:

php -v //command run at terminal to know the `PHP` version installed 

PHP 5.3.10-1ubuntu3.13 with Suhosin-Patch (cli) (built: Jul 7 2014 18:54:55) 
Copyright (c) 1997-2012 The PHP Group 
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies 

अब वापस कुछ दिनों के PHP संस्करण (PHP 5.6.0) की एक नई नवीनतम स्थिर रिलीज PHP विकास दल द्वारा जारी किया गया था।

मेरा प्रश्न के रूप में मैं अपने स्थानीय मशीन पर एक PHP संस्करण है जो बहुत पुराना है का उपयोग कर रहा है, और यह भी सभी PHP संस्करणों 5.4 की तुलना में कम सरकारी तौर पर असमर्थित हैं या घोषणा अंत के जीवन, है, मैं PHP 5.6.0 के लिए जाना चाहिए?

यदि आपका उत्तर हाँ है, तो कृपया मुझे बताएं कि यह कैसे करें? क्या मेरे प्रोजेक्ट में लिखा गया कोड इस माइग्रेशन के ठीक बाद काम करेगा? मुझे क्या परिवर्तन करने की आवश्यकता होगी?

यदि आपका उत्तर नहीं है, तो कृपया मुझे विस्तार से बताएं क्यों?

इस प्रश्न पूछने से पहले मैं Google और PHP दस्तावेज से गुजर चुका हूं। वहाँ मैं संस्करण माइग्रेशन निम्नलिखित के लिए माइग्रेशन नोट मिला:

**5.3.x->5.4.x 
    5.4.x->5.5.x 
    5.5.x->5.6.x** 

नहीं मिला PHP 5.3.10 से PHP 5.6.0 माइग्रेट करने का तरीका।

तो क्या कोई इस संबंध में मेरी मदद कर सकता है?

यदि आपको मेरी समस्या के बारे में कोई और जानकारी चाहिए तो कृपया मुझे बताएं।

+1

आपको हमेशा सॉफ्टवेयर अपडेट करने के लिए अपने पैकेज प्रबंधक का उपयोग करना चाहिए। पूरी तरह से जरूरी होने पर मैन्युअल रूप से अपडेट करें, इसलिए जब पैकेज आधिकारिक रिपोजिटर्स से गुम हो जाता है, और आप तीसरे पक्ष के रिपोजिटर्स का उपयोग नहीं करना चाहते हैं। – Luka

+0

@ लुका: पैकेज प्रबंधक द्वारा क्या मतलब है और मुझे किस पैकेज प्रबंधक का उपयोग करना चाहिए? – user2839497

+1

एक पैकेज प्रबंधक एक प्रोग्राम है जिसका उपयोग संकुल और इसकी निर्भरताओं को स्वचालित रूप से खोजने और स्थापित करने के लिए किया जाता है। 'apt' पैकेज प्रबंधक का एक उदाहरण है। सभी डेबियन-आधारित वितरण (इसलिए उबंटू भी) डिफ़ॉल्ट रूप से है। उदाहरण के लिए, रेडहाट-आधारित वितरण में 'यम' है। इसलिए आपको हमेशा 'apt-get install php' का उपयोग करके अपडेट इंस्टॉल करना चाहिए। यदि पैकेज पहले से स्थापित है और नए अपडेट उपलब्ध हैं, तो वे इंस्टॉल हो जाएंगे। यदि पैकेज बिल्कुल स्थापित नहीं है, तो इसे 'apt-get install' चलाने के बाद कुछ पलों इंस्टॉल किए जाएंगे। डेविलिश डीबी के जवाब को देखो। – Luka

उत्तर

8

टी एल; डॉ पीएचपी 5.3.x अभी भी उबंटू द्वारा सुरक्षा उन्नयन मिलता है लेकिन एक नए संस्करण

आप वेबसाइट से पीएचपी 5.6 के लिए स्रोत डाउनलोड करने और निर्माण कर सकते हैं/स्थापित है, लेकिन डॉन के लिए 14.04.1 में नवीनीकृत होगा 'टी, क्योंकि इसका मतलब है कि आप अपने सिस्टम के साथ स्थिरता खोने का जोखिम लेते हैं क्योंकि आपके सिस्टम पर अन्य पैकेज इस संस्करण के लिए डिज़ाइन नहीं किए जाएंगे और जब भी कोई नया संस्करण निकलता है, तो आपको इसे मैन्युअल रूप से अपग्रेड करना होगा, अगर वे अपग्रेड हैं तो स्थिरता को जोखिम देना सुरक्षा से संबंधित है क्योंकि आप उन्हें पैकेज प्रबंधक का उपयोग करने की तरह तेज़ी से अपग्रेड नहीं करेंगे।

इसके बजाय, मेरा सुझाव है कि आप अपने वितरण को उबंटू 14.04.1 में अपग्रेड करें, जिसमें PHP 5.5.9 है; 5.3.10 से बहुत नया है। बेशक, 5.3.x अभी भी सुरक्षा अद्यतन प्राप्त करेगा जब तक उबंटू 12.04 ईओएल तक नहीं पहुंचता है, लेकिन यदि आप नवीनतम सुविधाओं को चाहते हैं तो आपको डिस्ट-अपग्रेड करना चाहिए। यदि आप सर्वर संस्करण का उपयोग कर रहे हैं तो आप इसे Tub में Ubuntu सॉफ़्टवेयर अद्यतनकर्ता में ग्राफिक रूप से कर सकते हैं या apt-get dist-upgrade रूट (उदा। sudo के साथ) चला सकते हैं। अद्यतन: इसके बजाय sudo do-release-upgrade का उपयोग करें।

संपादित करें: बस स्पष्ट करने के लिए, पैकेज प्रबंधक उपयुक्त है। यदि आप आमतौर पर संकुल को स्थापित और अद्यतन करने के लिए आलेखीय उपकरण का उपयोग करते हैं (उबंटू सॉफ़्टवेयर सेंटर, सिनैप्टिक, आदि), यहां कुछ सरल आदेश दिए गए हैं। # इंगित करता है कि इसे रूट के रूप में चलाया जाना चाहिए (उदा। sudo apt-get install <package>), $ इंगित करता है कि आपको sudo की आवश्यकता नहीं है। चीजों को उस चीज़ के साथ बदलें जिसे आप उपयोग करना चाहते हैं (उदा।apt-get install chromium-browser)

#apt-get update अद्यतन करता खजाने
#apt-get upgrade को अपग्रेड किए जाने नए संकुल के लिए (ऊपर पहली चलाने!)
#apt-get upgrade <package> ऊपर की तरह है, लेकिन केवल एक ही पैकेज (जो उपयोगी नहीं जब तक आप एक है को अपग्रेड किए जाने विशेष कारण)
#apt-get install <package> एक पैकेज
#apt-get remove <package> को हटा एक पैकेज को स्थापित करता है
#apt-get autoremove स्वचालित रूप से संकुल कि क्वेरी आप
दिया निर्भरता द्वारा स्थापित किया गया है और अब
$apt-cache search <query> खोजें जरूरत $apt-cache show <package> एक पैकेज
#yes "" | apt-get install <package> एक पैकेज सब कुछ करने के लिए डिफ़ॉल्ट जवाब का जवाब देने को स्थापित करता है के लिए जानकारी से पता चलता निकाल देता है (आप yes उपयोग कर सकते हैं बहुत सारे आदेशों के साथ)
#apt-get dist-upgrade सब कुछ अपग्रेड करता है (और कुछ पैकेज हटा देता है) जब इसे आमतौर पर वापस रखा जा सकता है।

+0

मुझे एक रेडिटर मिला। उसे बीमार करो –

5

पैकेज के रूप में PHP 5.5.9 प्राप्त करने के लिए उबंटू 14.04.1 में अपग्रेड करें, और उबंटू अपग्रेड से लाभ प्राप्त करें। मैं वैसे भी उत्पादन वातावरण में 5.6.0 के लिए नहीं जाऊंगा।

this PHP page से आपको माइग्रेशन के बारे में जानकारी 5.3 से 5.4 और 5.4 से 5.5 तक मिलती है।

परिवर्तनों और नई सुविधाओं का उल्लेख करने के अलावा, PHP टीमों ने 5.3 और 5.5.9 के बीच मेमोरी प्रबंधन और अनुकूलन पर काम किया है। ये सुधार अकेले माइग्रेशन को प्रेरित करते हैं। माइग्रेशन

  • एपीसी के लिए सलाह के

    मोहरे: पीएचपी अब एपीसी की एक स्थानापन्न के रूप OPCache एम्बेड करता है। यदि आपने एपीसी चर का उपयोग किया है, तो OPCache के बारे में कुछ जानकारी उपलब्ध है - मेरे मामले में पुराने मॉड्यूल (नाम परिवर्तन), php5-apcu ('यू' पर ध्यान दें) के माध्यम से पुराने एपीसी का उपयोग करके, सबसे अच्छा विकल्प था।

  • मॉड्यूल एक अलग निर्देशिका में स्थापित किए गए थे। आप रखना चाहते हैं तो अपने php.iniextension_dir

  • इसके अलावा समायोजित किया जा करना पड़ सकता है, /etc/php5 निर्देशिका संरचना के संदर्भ में ज्यादा मांग है: नीचे कि dir mods-available है (ए ला nginx) की सूची में शामिल है मॉड्यूल इनआई फाइलें। फिर cli, fpm, apache2 ... dirs एक conf.d डीआईआर है जिसमें उस मुख्य mods-available मॉड्यूल इनआई फाइलों के प्रतीकात्मक लिंक हैं; यदि आप उस PHP कॉन्फ़िगरेशन के लिए उस मॉड्यूल का उपयोग करना चाहते हैं तो केवल एक लिंक जोड़ें (उदाहरण के लिए mysqlicli के लिए आवश्यक नहीं हो सकता है)।

  • JSON: मॉड्यूल php5-json आदेश पीएचपी JSON कार्य (json_encode, decode प्राप्त करने के लिए स्थापित किया जाना है (apt-get install php5-json) ...)

  • टिप्पणी ऐसा लगता है कि वहाँ जोड़ने /etc/php5/MODE/php.ini (साधन के रूप में cli एक समस्या, ...) एक मुख्य php.ini है कहीं (जैसे fpm में) - उबंटू अपडेट के दौरान, एक त्रुटि स्थापित करने से रोकती - मैंने सिर्फ php.ini की प्रतिलिपि बनाई है क्योंकि वे मेरे मामले में सभी मोड के लिए समान हैं।

इसके अलावा माइग्रेशन सुचारू रूप से चला गया।

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