Centos понизить версию php

Обновлено: 08.07.2024

Использование для обновления репозитория Atomic - наиболее оптимальный и стабильный метод. Прежде всего необходимо подключить репозиторий и принять лицензию скрипта установки:

По умолчанию в репозитории ставится версия PHP 5.3.x. Чтобы поставить версию PHP 2.1.7, необходимо в секцию [atomic] файла /etc/yum.repos.d/atomic.repo добавить исключение:

После этого можно обновить PHP:

При этом не обновляется модуль mcrypt, поэтому его необходимо установить дополнительно:

Или одной командой:

После завершения обновления необходимо перезагрузить Apache:

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

и список установленных расширений.

Использование репозитория CentOS-Testing

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

Сначала необходимо создать файл /etc/yum.repos.d/CentOS-Testing.repo:

После чего нужно запустить обновление:

После зварешения обновления необходмио перезагрузить Apache. В результате будет установлена версия PHP 5.2.10

Обновлние с PHP 5.1.6 до PHP 5.3.x

Как и при обновлении до PHP 5.2.x, рекомендуется использование репозитория Atomic. Но для обновления до PHP 5.3 не требуется прописывать исключение.

Использование репозитория REMI

Если по какой-то причине репозиторий Atomic не нравится, можно использовать репозиторий REMI. Сначала необходимо подключить репозиторий EPEL, так как он требуется для репозитория REMI:

Затем подключить репозиторий REMI:

После подключения репозиториев обновляем PHP до версии 5.3.x и MySQL до версии 5.1, так как это необходимо для корректной работы:

Использование штатного репозитория

Использование штатного репозитория не рекомендуется из-за возможной несовместимости и проблем с зависимостями. Для обновления сначала необходимо удалить старую версию PHP. Для этого надо для каждого пакета выполнить команду:

После этого можно устновить версию PHP 5.2.x:

Downgrade PHP 5.3 до версии 5.2 в CentOS 6.x

Часто для выполнения скриптов, написанных для старых версий PHP, требуется понижение версии PHP 5.3.x до версии PHP 5.2.17. Как и в случае с обновлением PHP с версии 5.1.6 до версии 5.2.17, оптимально воспользоваться репозиторием Atomic.

После подключения репозитория Atomic требуется отключить возможность установки содержащих PHP пакетов в стандартном репозиториии. Для этого в секции [base] и [updates] файла /etc/yum.repos.d/CentOS-Base.repo нужно добавить исключение:

После этого следует удалить версию PHP 5.3.x (вместе с PHP будут удалены PhpMyAdmin и SquirrelMail) командой:

Теперь можно установить нужную версию PHP, необходимые расширения, PhpMyAdmin, SquirrelMail и вернуть файлы конфигурации:

yum install php-5.2.17 php-mcrypt-5.2.17 php-gd-5.2.17 php-mbstring-5.2.17 php-pdo-5.2.17 php-mysql-5.2.17 mv / etc / phpMyAdmin / config.inc.php.rpmsave / etc / phpMyAdmin / config.inc.php mv / etc / squirrelmail / config.php.rpmsave / etc / squirrelmail / config.php

Для избежания смены версии PHP при установке программного обеспечения следует отключить возможность автоматической установки расширений, добавив в секцию [atomic] файла /etc/yum.repos.d/atomic.repo исключение:

После завершения установки необходимо перезагрузить Apache.

Если на сервере используется ISPmanager, то для корректного отображений версий в панели необходимо обновить кэш пакетов:


Проблема “ хочу новую версию %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 или редактор по умолчанию в системе. Подход этот универсален для различных систем. Не изобретая своего велосипеда, используя существующие инструменты, вы можете быть уверенным, что не устроили для ваших коллег квеста “Ну почему оно так работает?!”. Настраивайте свою систему правильно.

Если у вас установлено несколько версий php в системе, то при вызове команды php в консоли, будет использоваться одна из них. Иногда необходимо для каких-то скриптов или сервисов управлять версией php в консоли. Я расскажу, как ее изменить.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на . Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

У меня на сервере Debian установлены 2 версии php - 5.6 и 7.0. Для начала проверим, какая версия используется в данный момент:

Посмотрим, где располагается сам бинарник php:

Оказывается, что /usr/bin/php является символьной ссылкой. Посмотрим, куда она ведет:

Это еще одна символьная ссылка. Смотрим, куда ведет она:

На седьмую версию php. Заменим ее на 5.6, которая у меня установлена по адресу /usr/local/bin/php. Редактируем символьную ссылку:

Проверяем текущую версию php в консоли:

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

Можно было поступить и по-другому. При вызове php в консоли, имя проверяется в переменной $PATH. Посмотреть ее значения можно командой:

Директории проверяются в том порядке, как они перечислены. Где будет найдено первое совпадение, тот файл и будет использоваться. В моем случае директория /usr/bin, где жила символьная ссылка на php7.0 стоит раньше, чем /usr/local/bin, где расположена php5.6. Можно было просто поменять местами эти директории в PATH и версия по-умолчанию станет 5.6, так как ее бинарник php будет найден раньше.

Более гибко управлять версиями php в системе можно с помощью программы update-alternatives. Она может делать в том числе и то, что мы сейчас проделали, только автоматически, в зависимости от своих настроек. С ее помощью можно более гибко управлять версиями, задавать приоритеты использования той или иной версии, быстро их переключать в полуавтоматическом режиме.

Мне все это не надо, поэтому не стал сильно разбираться с ее работой, только познакомился с возможностями. Рассказываю о ней в качестве наводки для тех, кому захочется более подробно разобраться в этой теме. Она может быть актуальна, если у вас установлена какая-нибудь панель управления хостингом с разными версиями php. Например - plesk.

Если Вы в процессе работы над своим проектом столкнулись с тем, что текущая версия php Вам не подходит / не устраивает, то понизить или повысить версию php на на сервере вы сможете довольно таки просто с помощью интерфейса панели CentOS Web Panel.

Обратите внимание, что следуя данной инструкции Вы измените версию php глобально, для всего сервера!

О том, как изменить версию php для отдельно взятого сайта / папки мы расскажем в конце данной статьи.

Сперва переходим в меню PHP Settings => PHP Version Switcher


Далее из выпадающего списка в меню Select PHP Version выбираем нужную нам версию и нажимаем кнопку Next


В новом окне вы увидите меню с возможностью ручного управления конфигурацией будущей версии php на сервере. В данном примере мы добавили для "сборки" libJPEG (для корректной обработки jpeg-изображений модулем gd).


После этого (или же, если Вас устраивает стандартная конфигурация) нажимаем кнопку Start Compiler in Background.

tail -f /var/log/php-rebuild.log

После завершения перезапускаем Apache

И проверяем версию


Теперь сразу переходим в меню PHP Settings => PHP Addons и нажимаем кнопку Install возле меню Install IonCube Loader



Панель CentOS Web Panel позволяет так же изменить версию php для отдельно взятого сайта, или даже для конкретной папки сайта.

Для этого сначала переходим в меню PHP Settings => PHP Selector


Если у Вас нужная версия не установлена (Not Installed) для Selector'а - в таком случае устанавливаем галочку справа от нужной версии, нажимаем, для начала, Install Dependencies, после завершения (проверяем через tail -f /var/log/php-dependencies.log в консоли сервера) снова устанавливаем галочку и нажимаем Start Compiler. Процесс компиляции можете наблюдать запустив команду

tail -f /var/log/php-selector-rebuild.log

После завершения процесса, переходим в папку, для которой нужно изменить версию php (непосредственно в консоли сервера или через файловый менеджер панели - File Management => Simple File Manager), открываем файл .htaccess (или создаем его, если такового нет) и вносим в него необходимую строку, в зависимости от требуемой версии php

Читайте также: