Главная » Блог » Откат версии PHP до 5.4.9 на Linux

Откат версии PHP до 5.4.9 на Linux Mint 17 (Ubuntu 13.10) 

Каждый PHP-разработчик, которому приходится работать со старым кодом, отлично знает к каким проблемам приводит почти каждое обновление движка PHP. Последнее, с которым мне довелось столкнуться, сделало практически полностью неработоспособными сразу несколько проектов. Речь идет о версии 5.5. В ней мало того, что функции mysql_* оказались устаревшими, так еще и зажатый IonCube код отказался работать. И если проблему со старыми обращениями к БД можно тихо матерясь решить, то IonCube (при отсутствии исходников шифрованного кода) поставил жирную точку на этом обновлении. Короче, нужно откатываться.

В этот раз гугл меня сильно удивил, т.к. то, что я нашел на тему отката ПЫХа, либо безнадежно устарело, либо просто не работало. Потратив уйму времени и чуть не завалив свежеустановленную ОС, я все-таки нашел решение, которое здесь и привожу.

Суть в двух словах: подменяем репозитории на более старые, ставим нужный софт, блокируем его от обновлений и возвращаем новые репозитории на место. А теперь все по шагам:

Эта инструкция предназначена только для версии Linux Mint 17, именно на этой версии она была опробована и протестирована. Вы можете использовать ее на свой страх и риск. Автор не несет никакой ответственности за... да вообще ни за что он ответственности не несет! :)

  1. Сперва нужно на всякий случай обновить информацию о пакетах и Вашу систему:
    sudo apt-get update 
    sudo apt-get upgrade
  2. Теперь сносим апач и пых (если они были у Вас установлены):
    sudo apt-get purge apache2 apache2* php5 php5*
  3. Подменяем репозитории:
    sudo sed -i.bak "s/trusty/raring/g" /etc/apt/sources.list.d/official-package-repositories.list
  4. Обновляем базу пакетов:
    sudo apt-get update 
  5. Теперь запускаем synaptic и устанавливаем сразу все, что нужно (apache2, php5, ...). 
  6. После установки все пакеты, которые не должны в будущем обновляться блокируем прямо в synaptic (выбираем нужные пакеты, идем в главное меню — пакет — заблокировать версию)
  7. Восстанавливаем репозитории:
    sudo sed -i.bak "s/raring/trusty/g" /etc/apt/sources.list.d/official-package-repositories.list
  8. Снова обновляем базу пакетов:
    apt-get update

На этом все. 

ЗЫ
Если Вы используете Ubuntu или Mint, но не 17-й версии, то Вам нужно сперва определить кодовое имя Вашей версии и затем использовать это имя в командах подмены репозиториев. Для Mint 17 это имя "trusty". Места в командах где нужно вставить Ваше кодовое имя я выделил красным.

Bookmark and Share

  1. Alexander 7 July 2014, 10:59
    Спасибо, друг! Выручил. У меня почти аналогичная ситуация, но без IonCube, однако огромная куча старых проектов (10 лет и даже старше) на локальном сервере, переписывать которые на mysqli просто влом.

Добавьте Ваш комментарий:
Просто совет
Два месяца бесплатного использования VPS-сервера с 20Гб SSD на борту. Интересует?
Тогда жми сюда.
Твиттер-лента
Follow TanitaCMS in Twitter