কমান্ডলাইন উবুন্টু 16.04 এ পিএইচপি সংস্করণগুলি স্যুইচ করুন


96

আমি আমার উবুন্টু 16.04 এ পিএইচপি 5.6 এবং পিএইচপি 7.1 ইনস্টল করেছি

আমি আপাচিকে আমার ওয়েব সার্ভার হিসাবে জানি, আমি এটি করতে পারি

a2enmod php5.6 #to enable php5
a2enmod php7.1 #to enable php7

যখন আমি অ্যাপাচি মডিউলগুলিতে php7.1 অক্ষম করি এবং পিএইচপি 5.6 সক্ষম করি তখন আপাচি পরিবর্তনটি স্বীকৃতি দেয় এবং প্রত্যাশা অনুযায়ী পিএইচপি 5.6 ইন্টারপ্রেটার ব্যবহার করে।

কিন্তু যখন আমি কমান্ডলাইন থেকে অভ্যন্তরীণ পিএইচপি ওয়েব সার্ভারটি চালিত করি:

php -S localhost:8888

পিএইচপি পিএইচপি 7 ব্যবহার করে অনুরোধগুলি পরিচালনা করে তবে কীভাবে আমি কমান্ড লাইনে পিএইচপি 5.6 এবং পিএইচপি 7.1 এর মধ্যে স্যুইচ করব?


উত্তর:


229

ইন্টারেক্টিভ সুইচিং মোড

sudo update-alternatives --config php

ম্যানুয়াল স্যুইচিং

পিএইচপি 5.6 => পিএইচপি 7.1 থেকে

ডিফল্ট পিএইচপি 5.6 আপনার সিস্টেমে সেট করা আছে এবং আপনাকে পিএইচপি 7.1 এ স্যুইচ করতে হবে।

অ্যাপাচি:

$ sudo a2dismod php5.6
$ sudo a2enmod php7.1
$ sudo service apache2 restart

কমান্ড লাইন:

$ sudo update-alternatives --set php /usr/bin/php7.1

পিএইচপি 7.1 => পিএইচপি 5.6 থেকে

ডিফল্ট পিএইচপি 7.1 আপনার সিস্টেমে সেট করা আছে এবং আপনাকে পিএইচপি 5.6 এ স্যুইচ করতে হবে।

অ্যাপাচি:

$ sudo a2dismod php7.1
$ sudo a2enmod php5.6
$ sudo service apache2 restart

কমান্ড লাইন:

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

সূত্র


4
sudo আপডেট-বিকল্পগুলি --set php /usr/bin/php5.6 এই আদেশগুলি আমার সময় সাশ্রয় করেছে .. ধন্যবাদ @ স্টেভিজি
জিজ্ঞাসা করুন

তুমি সেরা ভাই ... অনেক অনেক ধন্যবাদ
Fendi Septiawan

অ্যাপাচি 2 রিস্টার্টে আমার সেগমেন্টেশন ত্রুটি ছিল। আমি তখন দেখতে পেলাম যে আমার একসাথে একাধিক পিএইচপি সংস্করণ সক্ষম ছিল। 5.6 সক্ষম করার আগে আমাকে 7.1 এবং 7.2 উভয়ই অক্ষম করতে হয়েছিল।
ডানকুইক্সোট

প্রকৃতপক্ষে, আমি এই সমাধানটি php -v7.2 থেকে 7.1 থেকে পরিবর্তিত করতে ব্যবহার করেছি ! এটি দুর্দান্ত এবং সাধারণ।
সৈয়দবাকআর

পরামর্শের দুর্দান্ত অংশটি এখানেও রয়েছে - Askubuntu.com/questions/761713/… । উপায় দ্বারা, আপনি বেশ কয়েকটি পিএইচপি মডিউল ইনস্টল করতে পারেন - উদাহরণস্বরূপ, 5.6, 7.0, 7.1, 7.2, এবং তারপর তাদের জাগল করুন, যদি আপনি পিএইচপি এর প্রদত্ত সংস্করণে নির্দিষ্ট ত্রুটি পান তবে (উদাহরণস্বরূপ, create_functionপিএইচপি 7.2 থেকে শুরু করে আর সমর্থন করা যায় না) ।)
ভাদিম আনিসিমভ

97

আপনার কমান্ড লাইনে এটি টাইপ করুন, 16.04, 18.04 এবং 20.04 এর মধ্যে সমস্ত উবুন্টুর পক্ষে কাজ করা উচিত।

$ sudo update-alternatives --config php

এবং এই কি আপনি পাবেন

There are 4 choices for the alternative php (providing /usr/bin/php).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/php7.2   72        auto mode
  1            /usr/bin/php5.6   56        manual mode
  2            /usr/bin/php7.0   70        manual mode
  3            /usr/bin/php7.1   71        manual mode
  4            /usr/bin/php7.2   72        manual mode
Press <enter> to keep the current choice[*], or type selection number:

উপযুক্ত সংস্করণ চয়ন করুন


4
এটির উত্তরটি হওয়া উচিত
এটিজাদাদ

পিএইচপি 7.2 কেন দুইবার?
ভেগা বালির

@SandOfVega এটি কমান্ডের আউটপুট এবং এটি অনুমান করা ডিফল্ট হলে 2 বার কিছু প্রদর্শিত হতে পারে তবে আপনার আউটপুটটি ভিন্ন হতে পারে।
জর্জিস্কে

উবুন্টু 20.04 আমাকে "ত্রুটি: পিএইচপি-র কোনও বিকল্প নেই" দেয়
বুর্জুম

12

আমি আসলে ব্যবহারের পরামর্শ দেব না a2enmod পিএইচপি 5 বা 7 আমি ব্যবহার করবে update-alternatives। আপনি sudo update-alternatives --config phpযে সিস্টেমটি পিএইচপি ব্যবহার করতে চান তার বিস্তৃত সংস্করণ সেট করতে পারেন can এটি আপনার কমান্ড লাইন এবং অ্যাপাচি সংস্করণগুলিতে একই কাজ করে। আপনি সম্বন্ধে আরও পড়তে পারেন update-alternativesউপর man পৃষ্ঠা


4
এটা আমার পক্ষে কাজ করছে না আমি চয়ন করার চেষ্টা করার পরেও PHPINFO সর্বদা একই সংস্করণ দেখায়।
brunoramonalmeida

12

আমি মনে করি আপনার এটি চেষ্টা করা উচিত

পিএইচপি 5.6 থেকে পিএইচপি 7.1 এ

sudo a2dismod php5.6
sudo a2enmod php7.1
sudo service apache2 restart

sudo update-alternatives --set php /usr/bin/php7.1
sudo update-alternatives --set phar /usr/bin/phar7.1
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.1

পিএইচপি 7.1 থেকে পিএইচপি 5

sudo a2dismod php7.1
sudo a2enmod php5.6
sudo service apache2 restart

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

4
এই কোডটি কেন কাজ করে এবং এর অর্থ কী তা বোঝার জন্য আপনার উত্তরগুলির জন্য যথেষ্ট ব্যাখ্যা দিন। সুতরাং উত্তরটি একই সমস্যাযুক্ত ব্যবহারকারীদের জন্য কার্যকর হবে। কীভাবে ভাল উত্তর লিখতে হয় তা জানতে লিঙ্কটি দেখুন।
জিনো শাজি

12

সমস্ত উপলব্ধ সংস্করণ তালিকাবদ্ধ করতে এবং সেগুলি থেকে চয়ন করুন:

sudo update-alternatives --config php

অথবা ম্যানুয়ালি করুন

sudo a2dismod php7.1 // disable
sudo a2enmod php5.6  // enable

9

সংস্করণগুলি থেকে স্যুইচ করার জন্য আপনি একটি স্ক্রিপ্ট তৈরি করতে পারেন: sudo nano switch_php তারপরে এটি টাইপ করুন:

#!/bin/sh
#!/bin/bash
echo "Switching to PHP$1..."
case $1 in
    "7")
        sudo a2dismod php5.6
        sudo a2enmod php7.0
        sudo service apache2 restart
        sudo ln -sfn /usr/bin/php7.0 /etc/alternatives/php;;
    "5.6")
        sudo a2dismod php7.0
        sudo a2enmod php5.6
        sudo service apache2 restart
        sudo ln -sfn /usr/bin/php5.6 /etc/alternatives/php;;
esac
echo "Current version: $( php -v | head -n 1 | cut -c-7 )"

প্রস্থান এবং সংরক্ষণ করুন এটি কার্যকর করা: sudo chmod +x switch_php

স্ক্রিপ্টটি কার্যকর করতে কেবল টাইপ করুন ./switch_php [VERSION_NUMBER]যেখানে প্যারামিটারটি 7 বা 5.6

এটি এখন আপনি ফর্ম পিএইচপি 7 পিএইচপি 5.6 এ স্যুইচ করতে পারবেন!


প্রতিশ্রুতিবদ্ধ মনে হচ্ছে তবে "ln -sfn ..." ব্যবহার করার সাথে সাথে ln কমান্ডে 'এন' পতাকা কী করে। আমি ডকুমেন্টেশনে কোথাও এই পতাকাটি ("এন") খুঁজে পাইনি।
ফখর আনোয়ার

8

দুটি পিএইচপি সংস্করণের মধ্যে স্যুইচ করতে আপনি নীচের কমান্ড লাইনগুলি ব্যবহার করতে পারেন।

যেমন

আমি নীচে কমান্ডটি ব্যবহার করতে পারি তার PHP Versionথেকে স্যুইচ করতে চাই7.17.2

sudo a2dismod php7.1 &&  sudo update-alternatives --set php /usr/bin/php7.2 && sudo a2enmod php7.2 && sudo service apache2 restart

a2dismodবর্তমান পিএইচপি সংস্করণটি অক্ষম করতে a2enmodব্যবহার করা হচ্ছে এবং সংস্করণ সক্ষম করতে ব্যবহার করা হচ্ছে


8

আপনার সিস্টেমে পিএইচপি 5.6 এর মতো আপনার কোনও পুরানো পিএইচপি সংস্করণ থাকতে পারে এবং আপনি পিএইচপি 7.2 ইনস্টল করেছেন তাই আপনার মেশিনে একাধিক পিএইচপি স্থাপন করতে পারে। কিছু অ্যাপ্লিকেশন রয়েছে যা পুরানো পিএইচপি 5.6 এর সর্বশেষতম সংস্করণ ছিল তখন সেগুলি বিকাশ লাভ করেছিল, তারা এখনও জীবিত রয়েছে এবং আপনি সেই অ্যাপ্লিকেশনগুলিতে কাজ করছেন, আপনি সম্ভবত একই সাথে লারাভেলে কাজ করছেন তবে লারাভেল পিএইচপি 7++ প্রয়োজন শুরু করতে। ছবি পাচ্ছেন?

সেক্ষেত্রে আপনার প্রয়োজন অনুসারে আপনি পিএইচপি সংস্করণগুলির মধ্যে স্যুইচ করতে পারেন।

পিএইচপি 5.6 => পিএইচপি 7.2 থেকে স্যুইচ করুন

অ্যাপাচি: -

sudo a2dismod php5.6
sudo a2enmod php7.2
sudo service apache2 restart

কমান্ড লাইন: -

sudo update-alternatives --set php /usr/bin/php7.2
sudo update-alternatives --set phar /usr/bin/phar7.2
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.2
sudo update-alternatives --set phpize /usr/bin/phpize7.2
sudo update-alternatives --set php-config /usr/bin/php-config7.2

এবং তদ্বিপরীত, পিএইচপি 7.2 => পিএইচপি 5.6 থেকে স্যুইচ করুন

অ্যাপাচি: -

sudo a2dismod php7.2
sudo a2enmod php5.6
sudo service apache2 restart

কমান্ড লাইন: -

sudo update-alternatives --set php /usr/bin/php5.6
sudo update-alternatives --set phar /usr/bin/phar5.6
sudo update-alternatives --set phar.phar /usr/bin/phar.phar5.6
sudo update-alternatives --set phpize /usr/bin/phpize5.6
sudo update-alternatives --set php-config /usr/bin/php-config5.6

3

আপনার টার্মিনালে প্রদত্ত কমান্ডটি টাইপ করুন ..

নির্বাচিত পিএইচপি সংস্করণ অক্ষম করার জন্য ...

    • sudo a2dismod php5
    • sudo পরিষেবা apache2 পুনরায় আরম্ভ করুন
  1. অন্যান্য পিএইচপি সংস্করণ সক্ষম করার জন্য ....

    • sudo a2enmod php5.6
    • sudo পরিষেবা apache2 পুনরায় আরম্ভ করুন

এটি পিএইচপি সংস্করণটি আপগ্রেড করবে, একই জিনিসটি যদি আপনি সংস্করণটি ডাউনগ্রেড চান তবে আপনি এটি পিএইচপিএনপিএফও () দ্বারা দেখতে পাবেন;


3

পিএইচপি 5.6 থেকে পিএইচপি 7.2 ব্যবহার করে স্যুইচ করুন:

sudo a2dismod php5.6 && sudo a2enmod php7.2 && sudo service apache2 restart

পিএইচপি 7.2 থেকে পিএইচপি 5.6 এ ব্যবহার করে স্যুইচ করুন:

sudo a2dismod php7.2 && sudo a2enmod php5.6 && sudo service apache2 restart

3

আপনি এই ওপেন সোর্স পিএইচপি স্যুইচ স্ক্রিপ্টগুলি ব্যবহার করতে পারেন যা উবুন্টু 16.04 এলটিএসে ব্যবহারের জন্য বিশেষভাবে ডিজাইন করা হয়েছিল।

https://github.com/rapidwebltd/php-switch-scriptts

একটি setup.shস্ক্রিপ্ট রয়েছে যা পিএইচপি 5.6, 7.0, 7.1 এবং 7.2 এর জন্য সমস্ত প্রয়োজনীয় নির্ভরতা ইনস্টল করে। এটি সম্পূর্ণ হয়ে গেলে, আপনি পিএইচপি সিএলআই এবং অ্যাপাচি 2 মডিউল সংস্করণ পরিবর্তন করতে কেবল নিম্নলিখিত স্যুইচ স্ক্রিপ্টগুলির মধ্যে একটি চালনা করতে পারেন।

./switch-to-php-5.6.sh
./switch-to-php-7.0.sh
./switch-to-php-7.1.sh
./switch-to-php-7.2.sh

1

পিএইচপি 5.6 => পিএইচপি 7.1 থেকে

$ sudo a2dismod php5.6
$ sudo a2enmod php7.1

পুরানো লিনাক্স সংস্করণ জন্য

 $ sudo service apache2 restart

আরও সাম্প্রতিক সংস্করণ জন্য

$ systemctl restart apache2

1

দয়া করে পদক্ষেপগুলি অনুসরণ করুন:

i.e : your current version is : current_version = 7.3 , and you want to change it to : new_version = 7.2

1) sudo a2dismod php(current_version) 
2) sudo a2enmod php(new_version)
3) sudo update-alternatives --config php (here you need to select php version number) 
4) restart apache through : 
  sudo /etc/init.d/apache2 restart OR
  sudo service apache2 restart

1

আমি উবুন্টুতে বিভিন্ন পিএইচপি সংস্করণগুলির মধ্যে স্যুইচ করতে বাশ স্ক্রিপ্ট তৈরি করেছি made

আশা করি এটি কাউকে সাহায্য করবে।

এখানে স্ক্রিপ্টটি রয়েছে: (এটিকে /usr/local/bin/sphp.sh এ সংরক্ষণ করুন, কমান্ডের সাথে + এক্স পতাকা যুক্ত করতে ভুলবেন না: sudo chmod + x /usr/local/bin/sphp.sh)

#!/bin/bash

# Usage
if [ $# -ne 1 ]; then
  echo "Usage: sphp [phpversion]"
  echo "Example: sphp 7.2"
  exit 1
fi

currentversion="`php -r \"error_reporting(0); echo str_replace('.', '', substr(phpversion(), 0, 3));\"`"
newversion="$1"

majorOld=${currentversion:0:1}
minorOld=${currentversion:1:1}
majorNew=${newversion:0:1}
minorNew=${newversion:2:1}

if [ $? -eq 0 ]; then
  if [ "${newversion}" == "${currentversion}" ]; then
    echo "PHP version [${newversion}] is already being used"
    exit 1
  fi

  echo "PHP version [$newversion] found"
  echo "Switching from [php${currentversion}] to [php${newversion}] ... "

  printf "a2dismod php$majorOld.$minorOld ... "
  sudo a2dismod "php${majorOld}.${minorOld}"
  printf "[OK] and "

  printf "a2enmod php${newversion} ... "
  sudo a2enmod "php${majorNew}.${minorNew}"
  printf "[OK]\n"

  printf "update-alternatives ... "
  sudo update-alternatives --set php "/usr/bin/php${majorNew}.${minorNew}"
  printf "[OK]\n"

  sudo service apache2 restart
  printf "[OK] apache2 restarted\n"
else
  echo "PHP version $majorNew.$minorNew was not found."
  echo "Try \`sudo apt install php@${newversion}\` first."
  exit 1
fi

echo "DONE!"


0

আপনি পিএইচপি সংস্করণের মধ্যে স্যুইচ করতে নীচের স্ক্রিপ্টটি ব্যবহার করতে পারেন সহজেই আমি পিএইচপি কনফিগারেশনও অন্তর্ভুক্ত করেছি।

https://github.com/anilkumararumulla/switch-php-version

স্ক্রিপ্ট ফাইলটি ডাউনলোড করে চালান

sh switch.sh

0

উবুন্টু 18.04 এ ল্যারাভেল ইনস্টল করার সময়, ডিফল্ট পিএইচপি 7.3.0RC3 নির্বাচিত ইনস্টল করুন, তবে ল্যারাভেল এবং সিমফনি মিসিন পিএইচপি-এক্সএমএল এবং পিএইচপি-জিপ সম্পর্কে সঠিকভাবে অভিযোগ ইনস্টল করবেন না যদিও তারা ইনস্টল থাকা সত্ত্বেও। উপরের নির্দেশাবলী ব্যবহার করে আপনাকে পিএইচপি 7.1 এ যেতে হবে,

 sudo update-alternatives --set php /usr/bin/php7.1

এখন, চলমান নতুন ব্লগটি সঠিকভাবে এগিয়ে যাবে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.