Linux откатить версию php

Как переключаться между несколькими версиями PHP в Ubuntu

Иногда самая последняя версия установленного пакета может работать не так, как вы ожидали.

Приложение может не соответствовать обновленному пакету и поддерживать только определенную старую версию пакета.

В таких случаях вы можете просто отказаться от проблемного пакета до его ранней рабочей версии в кратчайшие сроки

Однако вам не нужно понижать некоторые пакеты.

Мы можем использовать несколько версий одновременно.

Например, скажем, вы тестируете приложение PHP в стек LAMP, развернутое в Ubuntu 18.04 LTS.

Через некоторое время вы обнаружите, что приложение отлично работает в PHP5.6, но не в PHP 7.2 (Ubuntu 18.04 LTS устанавливает PHP 7.x по умолчанию).

Вы собираетесь снова установить PHP или весь пакет LAMP? Не обязательно.

Вам даже не нужно понижать PHP до более ранней версии.

В этом кратком уроке я покажу вам, как переключаться между несколькими версиями PHP в Ubuntu 18.04 LTS. Это не так сложно, как вы думаете.

Полное обучение PHP вы всегда можете пройти здесь : https://webshake.ru/php-training-course

Переключение между несколькими версиями PHP

Чтобы проверить установленную по умолчанию версию PHP, запустите:

Как вы можете увидеть, установленная версия PHP – 7.2.7.

После тестирования вашего приложения пару дней вы узнаете, что ваше приложение не поддерживает PHP7.2.

В таких случаях неплохо иметь версию PHP5.x и версию PHP7.x, так что вы можете в любой момент легко переключаться между любой поддерживаемой версией.

Вам не нужно удалять PHP7.x или переустанавливать стек LAMP. Вы можете использовать как версии PHP5.x, так и 7.x вместе.

Я предполагаю, что вы еще не удалили php5.6 в своей системе.

На всякий случай, вы удалили его уже, вы можете установить его снова, используя PPA, как показано ниже.

Вы можете установить PHP5.6 из PPA:

Переключитесь с PHP7.x на PHP5.x

Сначала отключите модуль PHP7.2, используя команду:

Затем включите модуль PHP5.6:

Установите PHP5.6 в качестве версии по умолчанию:

Кроме того, вы можете запустить следующую команду, чтобы установить, какую версию PHP по всей системе вы хотите использовать по умолчанию.

Введите номер, чтобы установить его как версию по умолчанию или просто нажмите ENTER, чтобы сохранить текущий выбор.

В случае, если вы установили другие расширения PHP, установите их как по умолчанию.

Наконец, перезапустите веб-сервер Apache:

Теперь проверьте, является ли версия PHP5.6 версией по умолчанию или нет:

Переключитесь с PHP5.x на PHP7.x

Аналогично, вы можете переключиться с PHP5.x на версию PHP7.x, как показано ниже:

Источник

Установка старой версии php на Linux (пример, с 7.2 к 7.0)

Приветствую, мой читатель!

На днях, после обновления системы Linux (Ubuntu 18.04) я столкнулся с проблемой совместимости версий языка программирования PHP.

В чем была выражена проблема? В системе на локальном была установлена версия php 7.2 (о да, это круто, новая версия), но на внешнем сервере была установлена версия php 7.0. А мне нужна такая же версия интерпретатора как у хостинга для разработки и тестирования сайтов.

Читайте также:  Linux install java jdk

Вроде бы проблема изначально неочевидна, т. к. в composer указана версия 7.0… и выше, кроме этого, используемая версия фреймворка Laravel 5.5 также работает с версией 7.0. Но composer затянул версии пакетов для новой версии языка, т. е. php 7.2 и соответственно, на сервере ничего не заработало (установить на сервере нужную версию интерпретатора на используемом тарифе нельзя).

В итоге, нужно было понизить версию php 7.2 до версии 7.0. В этой статье мы узнаем как сменить версию php, это будет продемонстрировано на примере версий 7.2 и 7.0, но решение подойдет для всех стабильных и новых версий php.

Установка старой версии php (понижений версии php)

Я нашел два решения (точнее одно, но с разными ветками).

Одно рассчитывало на постоянную смену интерпретатора, второе — замена версии php с возможностью переключения версий php, например с 7.2 на 7.0, с 7.0 на 5.6.

Начальные пункты установки предыдущих версий php не отличаются.

В терминале выполняем следующие команды:

Так мы подключили репозитории launchpad.net и пополнили список наших пакетов всеми стабильными версиями php и последней версией php. На октябрь 2018 года, это версии 5.6, 7.0, 7.1, 7.2 и RC (кандидат релиза) 7.3.

Теперь вы можете установить необходимые версии php. Например, для установки php 7.0 на Ubuntu 18.04 нужно выполнить следующие команды:

Конечно, кому-то понадобятся еще другие пакеты, но о них вы узнаете из предупреждений при запуске composer или php.

После установки новой (старой) версии php, нужно выполнить переключение текущего интерпретатора с одной версии на другую. Иначе, вы все еще работаете с версией php по умолчанию и не получите нужного эффекта.

Переключение версий php

Для переключения версий php работающем на Apache (если все работает через браузер):

Результат выполнения данной команды вы увидите при исполнении скрипта php с функцией phpinfo().

Для переключения версий на CLI (командной строке, если работаете с php и терминала, например с composer, artisan и т.п.):

Результат изменения версии можно проверить при помощью команды php -v.

Выше показан пример на изменении версии php 7.2 на 7.0. Для ваших же версий, подставляйте свои номера.

Для изменения версий обратно, проделайте те же команды, но с другими номерами версий.

Возможные проблемы при изменении версий php

Installation request for PHP extension

Первое, с чем я столкнулся, это php ругался на отсутствие библиотек для текущей версии.

Пример вывода из терминала:

Но, в этом выводе указано, какие команды нужно сделать и какие пакеты установить. На текущий момент у вас уже скорее всего установлены пакеты с такими именами, но они не совпадают в номере версии с используемой версией php.

Composer требует другие пакеты

Вторая проблема, это если вы установили пакеты через composer с предыдущей установленной версией языка, то и зависимости подтянулись к ним. Это значит, вам просто нужно выполнить команду composer update.

Так вы получите все нужные пакеты под текущую версию php.

Постоянная смена версий интерпретатора php

Второе найденное решение, про которое я писал выше, основывалось на тех же принципах (установки php), но проблема была другой: запускать скрипты php с разными версиями php.

Как вы могли догадаться, ответ уже написан выше: нужно перед запуском скрипта изменять версию PHP командами sudo a2dismod php7.2 ; sudo a2enmod php7.0 и sudo update-alternatives —set php /usr/bin/php7.0.

Конечно, каждый раз вводить такие длинные команды неудобно, поэтому создайте aliase в bash и выполняйте данную команду через алиас.

Еще одно решение: использование виртуальных машин для разных версий php. Оно может быть менее интересное, для слабых компьютеров или кто не хочет заморачиваться с виртуалками.

Читайте также:  После удаления линукс не загружается виндовс

Источник

Как понизить версию php 7.4 до 5.6 в Vesta на Ubuntu

Понижение и повышение версии PHP в Ubuntu вариант 1

В этом руководстве мы покажем вам, как обновить PHP 7.0, который по умолчанию установлен Vesta CP во время установки, до последней версии PHP 7.1.xx, 7.2.xx, 7.3.xx или 7.4.xx на сервере Ubuntu.

Зачем переходить на php 7.1, 7.2, 7.3 или 7.4?

Это даст вам повышение безопасности и производительности + KICK, поскольку WordPress или поддерживаемые скрипты будут загружаться намного быстрее и потреблять меньше ресурсов.

Пакеты, которые понадобится установить:

Вам нужно установить software-properties-common:

Для Apache mod_php:

Для обновления PHP 7.1:

Сначала вам нужно добавить Ondrejs PPA:

Если вы получите: “‘ascii’ codec can’t decode byte”, выполните следующую команду:

затем запустите эти команды:

Теперь установим PHP 7.1:

После установки, отключите модуль php 7.0, чтобы активировать модуль php7.1:

После включения модуля новой версии php, перезапустите службу apach2 командой:

Для обновления до PHP 7.2, 7.3, 7.4, достаточно изменит цифры версии в командах.
Пример для PHP 7.4:

Теперь, если вы установили все нужные Вам версии PHP, вы сможете переключать их, как в сторону повышения, так и понижать версию PHP.

Чтобы повысить php7.1 до php 7.4, просто выполните следующие команды:

Чтобы понизить версию с php7.4 до php 7.0, просто выполните следующие команды:

Если данный способ, не подходит Вам по каким либо причинам, вы может воспользоваться вариантом переключения PHP который описан ниже.

ПЕРЕКЛЮЧЕНИЕ МЕЖДУ ВЕРСИЯМИ PHP вариант 2

Пример: Ubuntu 18.04 как переключить PHP7.4 на php5.6

Этот метод заключается не в удалении каких-либо из версий php и установке другой версии, а в установке PHP как надстройки и в использовании одной из версий PHP по необходимости.

Данный метод не позволяет выбирать нужную версию PHP в панели управления VestaCP.

Ели Вам нужен способ позволяющий выбирать версию PHP для каждого домена, вам подойдет предыдущая инструкция.

Приступим к установке и настройке:

Вы установили версию PHP 5.6.

Проверим версию PHP командой:

Вывод может отображать вашу старую версия PHP.

Теперь переходим к переключению версий 7.4 -> 5.6

Для применения изменений, рестарт веб сервер Apache:

Обычно, сначала необходимо установить еще несколько модулей необходимых для правильной работы веб сервера:

Включение необходимых расширений >>> sudo phpenmod mbstring

Источник

Как откатить версию php 5.2 на сервере Linux ?

Если у вас на сервере установлена версия php выше чем 5.2, но у вас сайты работают только на 5.2 — Необходимо откатить версию PHP. Это можно сделать скриптом:

php_installed=`dpkg -l | grep php| awk \’\’ |tr »
» » «`

Проверяем и удаляем пакеты:

# remove all php packge

sudo aptitude purge $php_installed

# use karmic for php pakage

# pin-params: a (archive), c (components), v (version), o (origin) and l (label).

echo -e «Package: php5
Pin: release a=karmic
Pin-Priority: 991
» | sudo tee /etc/apt/preferences.d/php > /dev/null

apt-cache search php5-|grep php5-|awk \’ Pin: release a=karmic
Pin-Priority: 991
«>\’|sudo tee -a /etc/apt/preferences.d/php > /dev/null

apt-cache search -n libapache2-mod-php5 |awk \’ Pin: release a=karmic
Pin-Priority: 991
«>\’| sudo tee -a /etc/apt/preferences.d/php > /dev/null

echo -e «Package: php-pear
Pin: release a=karmic
Pin-Priority: 991
» | sudo tee -a /etc/apt/preferences.d/php > /dev/null

# add karmic to source list

egrep \'(main restricted|universe|multiverse)\’ /etc/apt/sources.list|grep -v «#»| sed s/lucid/karmic/g | sudo tee /etc/apt/sources.list.d/karmic.list > /dev/null

# update package database (use apt-get if aptitude crash)

sudo apt-get update

sudo apt-get install $php_installed

# or sudo aptitude install -t karmic php5-cli php5-cgi php5-curl //for fcgi

# or sudo apt-get install -t karmic libapache2-mod-php5 //for apache module

Читайте также:  Захват изображений mac os что это

sudo aptitude hold `dpkg -l | grep php5| awk \’\’ |tr »
» » «`

Делаем скрипт запускаемым:

chmod u+rx downGradeNRemove.sh

После этого мы должны получить php 5.2 на сервере.

Источник

Жонглируем версиями PHP в системе

Проблема “ хочу новую версию %software% на моем стареньк … стабильном Debian/CentOS…” так же стара, как *nix-мир. Способов добиться желаемого хватает. Есть масса решений как притащить в систему несколько версий одного и того же софта. Но дальше хочется не просто иметь ещё одну версию, но и управлять тем, какая из версий доступна в системе по умолчанию, для конкретных приложений или пользователей.

Что делать, если хочется сменить системную версию PHP на одну из кастомных сборок? Давайте отталкиваться от того, что у вас на сервере уже установлено несколько версий PHP и вы хотите, чтобы в консоли команда php была конкретной версии, отличающаяся от той, что шла с системой. В этой статье я расскажу, как правильно это настроить, чтобы не было проблем с будущими пакетными обновлениями.

В качестве примера возьмём сервер на CentOS 7, где установлен родной PHP:

Также на сервере установлен наш Plesk с парой своих сборок PHP:

Допустим, мы хотим переключить систему на использование PHP 5.6 по умолчанию (переключать глобально PHP с версии 5.4 на 7 как-то сс… страшно — чему-то в системе может поплохеть от такого). Бинарь PHP 5.6 лежит у нас тут:

Как же сделать так, чтобы система использовала эту, нужную нам, версию PHP?

Сначала посмотрим на системную переменную PATH

В ней перечислен список директорий, в которых ищутся программы по имени. Главный нюанс — поиск в директориях происходит последовательно и используется первый найденный результат. Текущий путь до текущего бинарника PHP мы можем увидеть с помощью команды:

Как видно из PATH , /usr/local/bin находится в списке раньше, чем /usr/bin . Значит, если мы поместим ссылку на альтернативную версию PHP “пораньше”, в /usr/local/bin , то именно она и будет использоваться при вызове команды php вместо /usr/bin/php . Мы можем создать эту ссылку руками (и всё даже будет работать), но правильнее использовать специально созданную для этих целей утилиту update-alternatives (в CentOS это просто alternatives , но есть симлинка update-alternatives , поэтому дальше будем оперировать именно этой командой, как универсальной для Debian/Ubuntu/CentOS/и т.д.).

Теперь, давайте зарегистрируем все доступные версии PHP с помощью этой команды:

Цифры 10, 20 и 30 — это приоритет. Он работает для автоматического выбора, если администратор сам не выбрал конкретную версию. Самое большое число определяет выбор «по умолчанию».

Проверим, что php теперь указывает на созданную командой симлинку:

Давайте разберемся, что же update-alternatives сделала для нас:

Как видно, она создала цепочку симлинок и теперь по требованию просто меняет промежуточную симлинку на нужный нам бинарь.

То есть, мы успешно настроили группу PHP в update-alternatives , где по умолчанию в автоматическом режиме выбран системный PHP. Сейчас у нас есть возможность переключить команду PHP на любую другую версию..

Давайте переключимся на PHP версии 5.6, которая идет в поставке с Plesk’ом:

Проверяем, что переключение произошло:

Все отлично работает. Теперь в системе используется нужная нам версия PHP и я не опасаюсь, что эта настройка слетит при следующих пакетных обновлениях.

С помощью update-alternatives можно выбирать не только версию PHP, но и многие другие вещи, например разные версии phpunit или редактор по умолчанию в системе. Подход этот универсален для различных систем. Не изобретая своего велосипеда, используя существующие инструменты, вы можете быть уверенным, что не устроили для ваших коллег квеста “Ну почему оно так работает?!”. Настраивайте свою систему правильно.

Источник

Оцените статью