सवाल उबंटू 16.04 पर मैं PHP 7 से PHP 5.6 तक डाउनग्रेड कैसे कर सकता हूं? [डुप्लिकेट]


इस प्रश्न का उत्तर यहां दिया गया है:

मैं अपने PHP संस्करण को 7 से 5.6 तक वापस करने की कोशिश कर रहा हूं और हालांकि मैंने PHP 7 को हटा दिया और फिर PHP 5.6 स्थापित किया है, फिर भी मुझे संस्करण 7 चल रहा है।

PHP संस्करणों के माध्यम से जाने के लिए कोई आसान तरीका है जहां apache, phpMyAdmin और co उचित रूप से कॉन्फ़िगर किए गए हैं?

फ्लाई पर PHP के वर्तमान संस्करण को बदलने और साइट पर साइट को बदलने का एक आसान तरीका बहुत अच्छा होगा।


157
2018-04-24 09:21


मूल


मुझे लगता है कि 5.6 स्थापित है लेकिन मेरा सभी PHP अब पाठ के रूप में प्रस्तुत कर रहा है। - dibs
का उत्पादन क्या है dpkg -l | grep php| awk '{print $2}' |tr "\n" " " ? - storm
डीएच-पीएचपी libapache2-mod-php5 php-common php-json php-pear php-xml php5-cli php5-common php5-json php5-readline php5.6 php5.6-bz2 php5.6-cli php5.6-आम php5.6-curl php5.6-dev php5.6-fpm php5.6-gd php5.6-json php5.6-mcrypt php5.6-mysql php5.6-opcache php5.6-readline php7.0-common php7.0-json php7.0-xml pkg-php-tools - dibs
मैं कुछ php7 संकुल देखता हूं वहां उन्हें हटा दें aptitude purge php7.0-common php7.0-json php7.0-xml  मैं भी जानना चाहता हूं कि आपका क्या मतलब है all my php is rendering as text now - storm
इसका मतलब है कि आप याद करते हैं libapache2-mod-php5.6 पैकेज ... नीचे मेरा जवाब देखें, आपको हटाने की जरूरत नहीं है php7.0 - Postadelmaga


जवाब:


अद्यतन करें
आज भी मुझे अक्षम होने के बावजूद PHP 7 चलने में समस्या मिली है php7.0 अपाचे मॉड्यूल: phpinfo फास्टसीजीआई का उपयोग कर PHP 7 दिखा रहा था ...
... तो यदि आप नीचे दिए गए निर्देशों का पालन करने के बाद इस स्थिति का सामना करते हैं, तो आपको इसे अक्षम करने की आवश्यकता हो सकती है proxy_fcgi अपाचे मॉड्यूल:

sudo a2dismod proxy_fcgi proxy; sudo service apache2 restart

1. PHP 5.6 पुन: स्थापित करें 

मेरे लिए क्या काम किया यह गाइड था: http://www.lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu

वास्तव में हटाने के लिए आवश्यक नहीं है php7.0, आप एक साथ php5.6 स्थापित कर सकते हैं (क्योंकि भी आप के साथ निर्भरता समस्या होगी phpmyadmin पैकेज जो आवश्यक php7.0)

यह मानते हुए libapache2-mod-php आपके लिए अपाचे में PHP को सक्षम करने का एक उपयुक्त तरीका है, आप इस तरह आगे बढ़ सकते हैं:

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-mbstring php7.0-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0

2. PHP संस्करण स्विच करें:

  • Php5.6 से php7.0 तक:

    • अमरीका की एक मूल जनजाति:

      sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart
      
    • CLI:

      sudo update-alternatives --set php /usr/bin/php7.0
      
  • Php7.0 से php5.6 तक:

    • अमरीका की एक मूल जनजाति:

      sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart
      
    • CLI:

      sudo update-alternatives --set php /usr/bin/php5.6
      

296
2018-04-25 02:58



तुम सही हो, धन्यवाद, मैंने आदेश तय कर दिए हैं :) - Postadelmaga
@Postadelmaga यह वेब ऐप्स के लिए PHP संस्करण को बदलने के लिए काम करता है। आपका बहुत बहुत धन्यवाद! लेकिन सीएलआई अभी भी PHP7 चलाता है। क्या आप जानते हैं कि इसे PHP5.6 पर कैसे स्विच करें? - John Linhart
ऐसा करने का सबसे अच्छा तरीका स्टॉक php संकुल को निकालना है, ओन्ड्रेज पीपीए जोड़ें और फिर php7 और php5.6 इंस्टॉल करें, याद रखें कि आपके पास php5.6 मॉड्यूल और phpenmod -v 7.0 को एक php 7.0 मॉड्यूल सक्षम करने के लिए phpenmod -v 5.6 है, यहां अधिक जानकारी disqus.com/home/discussion/serversforhackers/... - razor7
पोस्ट ने मेरा दिन बचाया। - Shoaib Nawaz
@Denu कि php -v आपको php cli संस्करण दिखाएगा ... आदेश दिया गया आदेश Apache के लिए है ... यदि आप करते हैं phpinfo() एक वेबपेज में आप अंतर देखेंगे। - Postadelmaga


उबंटू 16.04 के साथ आता है php 7.0, और कुछ php एप्लिकेशन अभी भी असफल हो सकते हैं php 7.0 इसलिए, कुछ मामलों में, दोनों को समझना समझदार हो सकता है php 7.0 तथा php 5.x, ताकि आप किसी भी समय अपनी आवश्यकताओं के लिए किस संस्करण का उपयोग कर सकें चुन सकें।

आप इसके साथ ऐसा कर सकते हैं:

xavi@computer# sudo su
root@computer# add-apt-repository ppa:ondrej/php
root@computer# apt-get update
root@computer# apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0 php5.6-curl php5.6-gd php5.6-mcrypt php5.6-xml php5.6-xmlrpc

दोनों स्थापित करना php5.6 & php7.0 मेरे मामले में साफ था: मुद्दों की कोई शिकायत नहीं, इत्यादि।

से स्विच करने के लिए php 5.6 सेवा मेरे php 7.0 आपको दो चीजें करने की ज़रूरत है:

# For php in web apps
sudo a2dismod php5.6 && sudo a2enmod php7.0 && sudo service apache2 restart
# For php-cli in the command line
sudo ln -sfn /usr/bin/php7.0 /etc/alternatives/php

या php7.0 से php5.6 तक:

# For php in web apps
sudo a2dismod php7.0 && sudo a2enmod php5.6 && sudo service apache2 restart
# For php-cli in the command line
sudo ln -sfn /usr/bin/php5.6 /etc/alternatives/php

Php -v चलाकर आप यह भी जांच सकते हैं कि आपका कौन सा उपयोग कर रहा है।


48
2018-05-02 09:29



उपयोग sudo a2dismod php7.0 && sudo a2enmod php5.6 && sudo service apache2 restart यह सुनिश्चित करने के लिए कि निम्न आदेश केवल तभी चलाए जाते हैं जब पहले सफल होता है। इस जवाब में एक संपादन का प्रस्ताव दिया। - Videonauth
दोनों को स्थापित करने के इच्छुक लोगों के लिए यह सबसे अच्छा जवाब है php5.6 तथा php7.0 उबंटू 16.04 पर - Amine Jallouli
एक जादू की तरह काम किया। काश मैं इसे कई बार ऊपर उठा सकता हूं। - shiva


आपके प्रश्न में महत्वपूर्ण विवरण नहीं हैं, इसलिए मैं अधिक व्यापक रूप से उत्तर दूंगा।

मान लें कि आप संकुल का उपयोग कर रहे हैं, कुछ महत्वपूर्ण विवरण हैं:

  1. Apache2 को या तो उपयोग करने के लिए कॉन्फ़िगर किया जा सकता है apache2 एसएपीआई का उपयोग कर libapache2-mod-php7.0 पैकेज या एफपीएम एसएपीआई का उपयोग कर php7.0-fpm साथ में mod_proxy_fcgi

  2. उबंटू 16.04 में रिपॉजिटरीज़ में केवल PHP 7.0 है, आप इसका उपयोग कर सकते हैं ppa:ondrej/php समान नामकरण योजना का उपयोग कर PHP 5.6 के लिए समर्थन जोड़ने के लिए (उदा। libapache2-mod-php5.6 या php5.6-fpm)।

  3. यदि आप अपाचे 2 एसएपीआई का उपयोग कर रहे हैं (libapache2-mod-php*), आपको स्थापित करने के बाद आपको PHP 7.0 को अक्षम करने की आवश्यकता है libapache2-mod-php5.6 चलाकर a2dismod php7.0 और चलकर PHP 5.6 सक्षम करें a2enmod php5.6

  4. यदि आप एफपीएम एसएपीआई का उपयोग कर रहे हैं (php*-fpm) तो आपको एफपीएम यूनिक्स सॉकेट को बदलने की जरूरत है /run/php/php7.0-fpm.sock सेवा मेरे /run/php/php5.6-fpm.sock

  5. कृपया याद रखें कि PHP (जैसे MySQL) के साथ बंडल मॉड्यूल के लिए नामकरण सम्मेलन है phpX.Y-<ext> (उदा php7.0-mysql तथा php5.6-mysql), लेकिन बाहरी पीईसीएल मॉड्यूल के लिए (एफई एपीसीयू, मोंगोडब, ...) यह बस है php-<ext> (उदा php-apcu, php-mongodb)। मैं दौड़ने की सलाह देते हैं apt-cache search php <ext> इंटरनेट पर प्रश्न पूछने से पहले अपने सिस्टम पर सही पैकेज नाम खोजने के लिए।


11
2018-04-24 10:04



क्या आप एफपीएम यूनिक्स सॉकेट को कैसे बदलेंगे इस पर थोड़ा सा विस्तार कर सकते हैं? - myol


मुझे लगता है कि आपको अपने php संकुल को हटा देना चाहिए और php5.6 इंस्टॉल करना चाहिए। आप निम्नानुसार आगे बढ़ सकते हैं:

sudo aptitude purge dpkg -l | grep php| awk '{print $2}' |tr "\n" " "
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php5.6

फिर आप सुनिश्चित करने के लिए अपने PHP के संस्करण की जांच कर सकते हैं। जैसा कि नीचे देखा गया है:

php -v

5
2018-04-24 09:38



मुझे आशा है कि यह तथ्य कि आप अपने वर्तमान PHP पैकेज को हटा देंगे और ताज़ा रूप से PHP स्थापित करेंगे, आपको बहुत मदद मिलेगी। - Yufenyuy Veyeh Dider
आपको grep-awk जादू करने की आवश्यकता नहीं है क्योंकि सभी पैक किए गए हैं php5-common, तो बस: apt-get purge php5-common आपके सिस्टम से सभी php5 संकुल को शुद्ध कर देगा। - oerdnj