पीपीए जोड़ें
PHP 5.6 और PHP 7.0 पैकेज एक तृतीय पक्ष PPA से हैं, जो कि Canonical से आधिकारिक Ubuntu रिपॉजिटरी द्वारा प्रदान नहीं किया गया है। मैं यहाँ जिन PPA की सिफारिश कर रहा हूँ, वे Ondjej Surý के हैं, जो PHP को Debian (जो कि उबंटू द्वारा प्रयोग किया जाता है) के लिए पैकेज करता है, जबकि यह एक आधिकारिक भंडार नहीं है, वह बिल्कुल यादृच्छिक नहीं है! पीपीए खुद
यहां है
अपने सेटअप में पीपीए जोड़ने के लिए:
sudo add-apt-repository ppa:ondrej/php
फिर हम इस नए पीपीए से ऑफर पर क्या है, के बारे में भी जानकारी हासिल करना चाहते हैं, इसलिए फिर रन करें:
sudo apt-get update
नए PHP संस्करण स्थापित करें
मेरे पास पहले से ही कुछ php5 संकुल स्थापित थे, लेकिन मैंने कुछ भी अनइंस्टॉल नहीं किया, मैंने अभी उपयुक्त काम करना शुरू किया जब मैं इसे नए संस्करणों को स्थापित करने के लिए कहता हूं:
sudo apt-get install php5.6 php7.0
इसके परिणामस्वरूप बहुत सारी शिकायतें सामने आईं और बहुत सारे झगड़े हुए। पहला सुझाव दिया गया था कि सभी स्टॉक php5 संकुल को हटा दिया जाए ताकि PHP 5.6 स्थापित हो सके - इसलिए मैंने सिर्फ पहला सुझाव स्वीकार किया।
मैं अपाचे का उपयोग करता हूं, इसलिए इस सेटअप ने मुझे php5.6 और php7.0 दोनों उपलब्ध मॉड्यूल के साथ अपाचे दिया, और वास्तव में लोड किए गए php5.6 मॉड्यूल।
साथ ही सिर्फ PHP ही, सभी एक्सटेंशन और अन्य उपकरण जो आप PHP से अपेक्षा करेंगे, PHP के दोनों संस्करणों के लिए हैं, इसलिए आपके द्वारा आवश्यक मॉड्यूल में जोड़ना बहुत आसान है। मैं बहुत, बहुत प्रभावित था कि यह कैसे किया जाता है।
संस्करणों को कॉन्फ़िगर और स्विच करना
अब आपके पास अपने सिस्टम पर स्थापित PHP के दो पूरी तरह से अलग संस्करण हैं, तो चलिए एक नज़र डालते हैं कि सभी टुकड़े कहाँ गए!
कॉन्फ़िगरेशन फ़ाइलें सभी
क्रमशः /etc/php/5.6
और /etc/php/7.0
क्रमशः हैं - यहां अंदर है जहां आप कॉन्फ़िगर कर सकते हैं कि कौन से एक्सटेंशन लोड किए गए हैं, इनआई सेटिंग्स सेट करें, और अलगाव में प्रत्येक संस्करण के लिए बाकी सब कुछ।
मैं एक अपाचे उपयोगकर्ता हूं, और जैसा कि मैंने उल्लेख किया है कि दोनों मॉड्यूल उपलब्ध हैं। तो एक से दूसरे में जाने के लिए मुझे क्या करना होगा:
sudo a2dismod php5.6
sudo a2enmod php7.0
sudo service apache2 restart
नगनेक्स उपयोगकर्ताओं के लिए, परिवर्तन लगभग आसान हैं, डिजिटल महासागर के पास इस पर अच्छे दस्तावेज हैं (उनके पास महान डॉक्स हैं!) इसलिए उनके मार्गदर्शक देखें:
https://www.digitalocean.com/community/tutorials/how-to- उन्नयन-से-php-7-on-ubuntu-14-04,
क्योंकि इसमें PHP के किसी अन्य संस्करण का उपयोग करने के लिए nginx को पुन: कॉन्फ़िगर करने पर एक अनुभाग शामिल है।
कमांड-लाइन से, मेरे पास php5.6 और php7.0 दोनों कमांड के रूप में उपलब्ध हैं। मेरे पास अभी भी एक php कमांड है - देखने के लिए / etc / विकल्प में यह देखने के लिए कि यह PHP cli * के किसी विशेष संस्करण के लिए सहानुभूति रखता है। आप यह भी जल्दी से जांच सकते हैं कि आपका कौन सा उपयोग कर रहा है php -v
।
* अधिक विशेष रूप से, यह देखने के लिए कि PHP का कौन सा संस्करण इस्तेमाल किया जा रहा है - लेकिन यह संभवतः इस ओर इशारा करेगा /usr/bin/php
, जो मेरे लिए स्वयं /etc/alternatives/php
कमांड के लिए एक सिमलिंक है ।
एक्सटेंशन के साथ काम करना
यह PPA सामान्य php-pear पैकेज के साथ आता है जो PHP के दोनों संस्करणों के लिए pecl कमांड प्रदान करता है, इसलिए PECL के माध्यम से उपलब्ध कोई भी एक्सटेंशन सामान्य तरीके से स्थापित किया जा सकता है। आपको प्रासंगिक हेडर की भी आवश्यकता होगी ताकि या तो php5.6-dev या php7.0-dev स्थापित हो।
जब pecl स्थापना पूर्ण हो जाती है, तो आपको अपने .p फ़ाइल में * .so फ़ाइल जोड़ने के लिए एक नोट मिलेगा; वास्तव में सबसे अच्छी बात यह है कि यहाँ क्या देखना है /etc/php/mods-available
। यहां पहले से ही कुछ मॉड्यूल होंगे, प्रत्येक अपनी फ़ाइल में एक्सटेंशन और इनिनी के नाम पर होगा। आप एक टेम्पलेट के रूप में उपयोग करने के लिए एक कॉपी कर सकते हैं या अपना खुद का बना सकते हैं और इसमें एक्सटेंशन के लिए सभी प्रासंगिक कॉन्फ़िगरेशन डाल सकते हैं (न्यूनतम के रूप में, आपको आवश्यकता है extension=[extensionName].so
)।
नया एक्सटेंशन उपलब्ध होने के बाद, सक्षम करें और फिर इसे करके देखें:
sudo phpenmod extension
php -m
यह इस मॉड्यूल को लोड करने के लिए PHP के आपके वर्तमान संस्करण के लिए सही स्थानों पर सहानुभूति पैदा करेगा, और आपको इसे मॉड्यूल आउटपुट की सूची में देखना चाहिए php -m
। प्रो टिप: यदि आप इसे आउटपुट में नहीं देखते हैं, तो आउटपुट के शीर्ष पर सभी तरह से स्क्रॉल करें और देखें कि क्या कोई उपयोगी त्रुटि संदेश हैं।