14.04 सफाई से ppa में अपग्रेड करें: ondrej / php from ppa: ondrej / php5-5.6


10

मैं आज अपने सामान्य सर्वर पैकेज अपग्रेड के माध्यम से चला गया और पता चला कि ppa:ondrej/php5-5.6मूल्यह्रास हो गया है और हमें अब अपग्रेड करना होगा ppa:ondrej/php

मूल उपलब्ध निर्देश चलाने के लिए हैं:

sudo add-apt-repository ppa:ondrej/php

और तब:

sudo apt-get update
sudo apt-get upgrade --show-upgraded

नई रिपॉजिटरी को देखते हुए, नाम पूरी तरह से लाइन में नहीं लगते हैं, इसलिए मुझे लगता है कि मुझे सभी सही पैकेज स्थापित करने के लिए कुछ apt-get इंस्टॉल करने की आवश्यकता होगी। यह भी प्रतीत होता है कि उप-संकुल (यानी php-gd) सभी php संस्करणों के लिए स्थापित होगा और php 5.5 और php 7.0 ( /programming/37197539/an-issue-after-ppaondrej-) भी स्थापित कर सकता है। php5-deprecation )

तो मेरा सवाल यह है कि पीपीए को "स्विच" करने और मौजूदा पैकेज को साफ करने का सबसे साफ तरीका क्या है, यह देखते हुए कि यह एक उत्पादन सर्वर है? क्या मुझे पिछले पीपीए से स्थापित सभी पैकेजों को हटाने और / या अपने सिस्टम से पीपीए को हटाने की कोशिश करनी चाहिए?

यह अभी तक पीपीए के लिए मुख्य पृष्ठ में नहीं है, लेकिन उन्नयन संदेश ने जून 2016 के रूप में पदावनति दी, इसलिए यह हमारी सर्वर छवि के पुनर्निर्माण के लिए बहुत लंबा समय नहीं है।

मुझे यह पृष्ठ मिला, जो PHP संस्करण अपाचे का उपयोग करने के लिए निर्देश प्रदान करता है: https://dzone.com/articles/php-70-and-56-on-ubuntu


1
मैं रेपो विकी में इस विषय पर कुछ पाठ यहां लिखूंगा: github.com/oerdnj/deb.sury.org/wiki मुझे केवल खाली समय खोजने की आवश्यकता है। हर किसी को इस बीच शुरू करने और योगदान देने का स्वागत है :)
oerdnj

जवाबों:


12

पुराने php5-*पैकेज नई phpX.Y-*स्कीम के साथ मेल खाते हैं , इसलिए नए पैकेज को स्थापित करने और सक्षम करने के लिए आपको सबसे पहले काम करना होगा:

अपाचे २.४

आपको नए libapache2-mod-phpX.Yपैकेज स्थापित करने और फिर पुराने php5 को अक्षम करने और नए संस्करण मॉड्यूल को सक्षम करने की आवश्यकता है, PHP 5.6 के लिए fe:

sudo apt-get install libapache2-mod-php5.6
sudo a2dismod php5
sudo a2enmod php5.6

PHP-FPM के साथ NGINX / Apache 2.4

यह और भी सरल है, बस स्थापित करें phpX.Y-fpmऔर अपने वेबसर्वर कॉन्फ़िगरेशन में सॉकेट पथ को बदलें /run/php/phpX.Y-fpm.sockऔर पुराने कॉन्फ़िगरेशन को कॉपी करें, PHP 5.6 के लिए:

sudo apt-get install php5.6-fpm
# now change the socket path in your nginx/apache2 configuration
# and restart the server

यदि आपने अधिक FPM पूल को परिभाषित किया है, तो आपको पुराने विन्यास को नए रास्ते में कॉपी करने की आवश्यकता है, फिर से PHP 5.6 के लिए:

# keep the new www.conf
sudo mv /etc/php/5.6/fpm/pool.d/www.conf /etc/php/5.6/fpm/pool.d/www-5.6.conf
# copy the old configuration to the new path
sudo cp /etc/php5/fpm/pool.d/* /etc/php/5.6/fpm/pool.d/
sudo update-rc.d php5-fpm disable # or uninstall php5-fpm package
# restart PHP 5.6 FPM to read the new configuration
sudo service php5.6-fpm restart

अब यदि आप पुराने पैकेजों को हटाना चाहते हैं, तो आप कुछ समस्याओं में भाग सकते हैं क्योंकि ऐसे पैकेज हो सकते हैं जिनके लिए पुराने php5 * नामों की आवश्यकता होती है, आप यह जोड़ना चाह सकते हैं ppa:ondrej/php5-compatकि संगतता पैकेजों की पतली परत प्रदान करें जो मुख्य php5 * पैकेजों के लिए मैप php5-<foo>करें php5.6-<foo>:

sudo add-apt-repository ppa:ondrej/php5-compat
sudo apt-get update
sudo apt-get dist-upgrade

निश्चित रूप से गैर-उत्पादन वातावरण में इसे पहले आज़माएं ! अच्छा पक्ष यह है कि यह पुराने कॉन्फ़िगरेशन को /etc/php5अछूता रखता है , इसलिए आप पुरानी सेटिंग्स पर माइग्रेट कर सकते हैं।

मुख्य PHP पैकेजों को अपडेट करने के बाद, आप बाकी php5-*पैकेजों को देखना चाहते हैं और उनके समकक्ष स्थापित कर सकते हैं, जैसे

apt-get install php-apcu # for php5-apcu
apt-get install php-memcached # for php5-memcached

मैं php5- कंपोजिट रेपो के लिए एक अपडेट तैयार करूंगा, जिससे यह मैपिंग अपने आप हो जाएगी।

अधिक अद्यतित पाठ, हमेशा DEB.SURY.ORG पीपीए विकी में पाया जा सकता है ।


1
आपके सभी कार्यों के लिए धन्यवाद! हमारे पास एक स्टेजिंग सर्वर है जो मैं पहले सब कुछ कोशिश करूँगा। अपने निर्देशों में, आप dpkg --get-selections | grep phpलोगों को चीजों को मैप करने में मदद करने के लिए सभी मौजूदा पैकेजों को सूचीबद्ध करने के लिए चलाने के बारे में कुछ शामिल करना चाह सकते हैं (हालांकि मैपिंग पीपीए ऐसा नहीं करने और इसे बस काम करने देने के लिए सुपर उपयोगी होगा।) यह भी अच्छा हो सकता है। शामिल करने के लिएsudo add-apt-repository --remove ppa:whatever/ppa5-5.6
लॉरेन

पुराने पीपीए को हटाने के साथ अच्छा विचार है।
oerdnj

1
अरे @oerdnj यह वहाँ phpdismod के बजाय a2dismod नहीं होना चाहिए? और phenmod के बजाय a2enmod?
वोजटेक नारुनेक

अच्छी पकड़, नियत।
oerdnj

dbase एक्सटेंशन आपके 5.6 मॉड्यूल के साथ काम नहीं करता है, मैं इसे पुराने 5.6 संस्करण के लिए पहले संकलित कर सकता हूं लेकिन नए रिपॉजिटरी के लिए नहीं। यह पुराने 5.5 संस्करण के लिए संकलित हो जाता है। लेकिन 5.6 संस्करण इतना खो मॉड्यूल चलाया जाता है। क्या कोई संभावना है कि आप किसी तरह से पुराने 5.6 ppa को निष्क्रिय नहीं कर सकते?
टेबे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.