Я установил php 5.6 и php 7.1 на свой Ubuntu 16.04
Я знаю, что с Apache в качестве моего веб-сервера я могу делать
a2enmod php5.6 #to enable php5
a2enmod php7.1 #to enable php7
Когда я отключаю php7.1 в модулях Apache и включаю php 5.6, Apache распознает изменение и использует интерпретатор php 5.6, как и ожидалось.
Но когда я запускаю внутренний веб-сервер php из командной строки:
php -S localhost:8888
php обрабатывает запросы с помощью php 7. Итак, как мне переключаться между php 5.6 и php 7.1 в командной строке?
Ответы:
Интерактивный режим переключения
sudo update-alternatives --config php
Ручное переключение
Начиная с PHP 5.6 => PHP 7.1
В вашей системе установлен PHP 5.6 по умолчанию, и вам необходимо перейти на PHP 7.1.
Apache:
$ sudo a2dismod php5.6 $ sudo a2enmod php7.1 $ sudo service apache2 restart
Командная строка:
$ sudo update-alternatives --set php /usr/bin/php7.1
Начиная с PHP 7.1 => PHP 5.6
В вашей системе установлен PHP 7.1 по умолчанию, и вам необходимо перейти на PHP 5.6.
Apache:
$ sudo a2dismod php7.1 $ sudo a2enmod php5.6 $ sudo service apache2 restart
Командная строка:
$ sudo update-alternatives --set php /usr/bin/php5.6
Источник
источник
php -v
с 7.2 на 7.1! Это здорово и просто.create_function
больше не поддерживается, начиная с php 7.2 .)введите это в свою командную строку, он должен работать для всех ubuntu между 16.04, 18.04 и 20.04.
и это то, что вы получите
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:
Выберите подходящую версию
источник
На самом деле я бы не рекомендовал использовать
a2enmod
для php 5 или 7. Я бы использовалupdate-alternatives
. Вы можетеsudo update-alternatives --config php
указать, какую общесистемную версию PHP вы хотите использовать. Благодаря этому ваша версия командной строки и версии apache будут работать одинаково. Вы можете узнать большеupdate-alternatives
на странице руководства .источник
Я думаю тебе стоит попробовать это
С php5.6 на php7.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
С php7.1 на php5.6
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
источник
Чтобы перечислить все доступные версии и выбрать из них:
Или сделать вручную
sudo a2dismod php7.1 // disable sudo a2enmod php5.6 // enable
источник
Вы можете создать сценарий для переключения с версий:
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.Вот и все, теперь вы можете легко переключиться с PHP7 на PHP 5.6!
источник
Например
Я хочу переключиться
PHP Version
с7.1
на,7.2
мы можем использовать команду нижеsudo a2dismod php7.1 && sudo update-alternatives --set php /usr/bin/php7.2 && sudo a2enmod php7.2 && sudo service apache2 restart
a2dismod
используется для отключения текущей версии php иa2enmod
используется для включения версииисточник
Возможно, у вас в системе установлена старая версия PHP, такая как PHP 5.6, и вы также установили PHP 7.2, так что на вашем компьютере есть несколько PHP. Есть некоторые приложения, которые были разработаны, когда более ранняя версия PHP 5.6 была последней версией, они все еще существуют, и вы работаете над этими приложениями. Возможно, вы работаете над Laravel одновременно, но Laravel требует PHP 7+ для начала. Получили картину?
В этом случае вы можете переключаться между версиями PHP в соответствии с вашими требованиями.
Переход с PHP 5.6 => PHP 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
И наоборот, переключиться с PHP 7.2 => PHP 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
источник
Введите данную команду в свой терминал ..
Чтобы отключить выбранную версию PHP ...
Для включения другой версии PHP ....
Он обновит версию Php, то же самое в обратном порядке, если вы хотите понизить версию, вы можете увидеть это с помощью PHP_INFO ();
источник
Переключитесь с PHP 5.6 на PHP 7.2, используя:
sudo a2dismod php5.6 && sudo a2enmod php7.2 && sudo service apache2 restart
Переключитесь с PHP 7.2 на PHP 5.6, используя:
sudo a2dismod php7.2 && sudo a2enmod php5.6 && sudo service apache2 restart
источник
Вы можете использовать эти сценарии переключения PHP с открытым исходным кодом, которые были разработаны специально для использования в Ubuntu 16.04 LTS.
https://github.com/rapidwebltd/php-switch-scripts
Есть
setup.sh
скрипт, который устанавливает все необходимые зависимости для PHP 5.6, 7.0, 7.1 и 7.2. После этого вы можете просто запустить один из следующих сценариев переключения, чтобы изменить версию модуля PHP CLI и Apache 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
источник
Начиная с PHP 5.6 => PHP 7.1
$ sudo a2dismod php5.6 $ sudo a2enmod php7.1
для старых версий linux
для более свежей версии
источник
пожалуйста, следуйте инструкциям:
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
источник
Я сделал сценарий bash для переключения между различными версиями PHP в Ubuntu.
Надеюсь, это кому-то поможет.
Вот сценарий: (сохраните его в /usr/local/bin/sphp.sh, не забудьте добавить флаг + x с помощью команды: sudo chmod + x /usr/local/bin/sphp.sh)
источник
Вы можете использовать приведенный ниже сценарий для простого переключения между версией PHP. Я также включил конфигурацию phpize.
https://github.com/anilkumararumulla/switch-php-version
Скачайте файл скрипта и запустите
sh switch.sh
источник
При установке laravel на Ubuntu 18.04, по умолчанию выбрана установка PHP 7.3.0RC3, но laravel и symfony не будут установлены должным образом, жалуясь на отсутствие php-xml и php-zip, даже если они установлены. Вам необходимо перейти на php 7.1, используя приведенные выше инструкции или,
sudo update-alternatives --set php /usr/bin/php7.1
теперь запуск нового блога laravel будет работать правильно
источник