php 5.2 на debian squeeze - установка php предыдущей версии

Установка php 5.3 в debian squeeze теперь не проблема. Достаточно набрать

apt-get update && apt-get install php5

Однако, многие сайты, сделанные ранее (работающие проекты на php 5.2) в php 5.3 выдают ошибки-предупреждения (deprecated), а иногда “ну совсем” не работают.

Deprecated: Function eregi() is deprecated in /home/www/php-site.ru/public_html/include/functions.php on line 152

Итак, как же установить (эм.. почти как апгрейд, только наоборот - downgrade) PHP 5.2 на debian squeeze

Посмотрим, что же в - если система “свежая” - там скорее всего только 2 строки для текущего релиза
vi /etc/apt/sources.list

Статья обновлена, т.к. lenny перемещен в архив

deb http://archive.debian.org/debian lenny main contrib non-free

Добавим туда репозитарий для debian lenny
deb http://ftp.ro.debian.org/debian/ lenny main contrib non-free

Для всех пакетов, начинающихся с php5 зададим приоритетным репозитарий предыдущей версии:
vi /etc/apt/preferences

Package: php5*
Pin: release a=oldstable
Pin-Priority: 700

Package: *
Pin: release a=stable
Pin-Priority: 600

Если php5.3 был ранее установлен - его следует удалить.. Проверить это можно командой:
dpkg -l |grep php5
Если вывод похож на следующий - удаляем
ii libapache2-mod-php5 5.3.3-7+squeeze8 server-side, HTML-embedded scripting language (Apache 2 module)
ii php5 5.3.3-7+squeeze8 server-side, HTML-embedded scripting language (metapackage)
ii php5-cli 5.3.3-7+squeeze8 command-line interpreter for the php5 scripting language
ii php5-common 5.3.3-7+squeeze8 Common files for packages built from the php5 source
ii php5-gd 5.3.3-7+squeeze8 GD module for php5
ii php5-mcrypt 5.3.3-7+squeeze8 MCrypt module for php5
ii php5-mysql 5.3.3-7+squeeze8 MySQL module for php5
ii php5-suhosin 0.9.32.1-1 advanced protection module for php5

Для удаления уже установленных пакетов, содержащих php
aptitude remove `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`
Обновим информацию о пакетах
apt-get update
И установим php5.2 на squeeze из предыдущего репозитария
apt-get -t oldstable install `dpkg -l | grep php5| awk '{print $2}' |tr "\n" " "`
Да.. при попытке установить PHP 5.2 система выдала ошибку
libapache2-mod-php5 : Depends: libkrb53 (>= 1.6.dfsg.2) but it is not going to be installed
, поэтому устанавливаем отдельно пакет libkrb53
apt-get install libkrb53
После чего установка PHP 5.2 проходит без ошибок: команда
dpkg -l | grep php5
должна вывести примерно следующее:
ii libapache2-mod-php5 5.2.6.dfsg.1-1+lenny13 server-side, HTML-embedded scripting language (Apache 2 module)
ii php5-cli 5.2.6.dfsg.1-1+lenny13 command-line interpreter for the php5 scripting language
ii php5-common 5.2.6.dfsg.1-1+lenny13 Common files for packages built from the php5 source
ii php5-gd 5.2.6.dfsg.1-1+lenny13 GD module for php5
ii php5-mcrypt 5.2.6.dfsg.1-1+lenny13 MCrypt module for php5
ii php5-mysql 5.2.6.dfsg.1-1+lenny13 MySQL module for php5
ii php5-suhosin 0.9.27-1 advanced protection module for php5

Автор будет признателен, если Вы поделитесь ссылкой на статью, которая Вам помогла:
BB-код (для вставки на форум)

html-код (для вставки в ЖЖ, WP, blogger и на страницы сайта)

ссылка (для отправки по почте)

Комментарии (4) к записи “php 5.2 на debian squeeze - установка php предыдущей версии”

  1. Unix4me сообщает :

    Тут есть полезная иформация по теме:
    http://unix4me.ru/archives/991

  2. levik сообщает :

    Дополнение для Debian Wheezy (debian 7)

    немногим отличается от установки на Debian 6

    В /etc/apt/preferences указываем lenny
    Package: php5*
    Pin: release a=lenny
    Pin-Priority: 700
    Package: *
    Pin: release a=stable
    Pin-Priority: 600

    В sources.list
    # lenny for php52
    deb http://archive.debian.org/debian/ lenny main contrib non-free
    deb-src http://archive.debian.org/debian/ lenny main contrib non-free

    Удаляем все пакеты с PHP
    aptitude remove ~iphp

    И устанавливаем из lenny репозитория
    apt-get -t lenny install libkrb53
    apt-get -t lenny install `dpkg -l | grep php5| awk '{print $2}' |tr "\n" " "`

    В итоге получаем свежеустановленный php5.2 на Debian Wheezy

    PHP 5.2.6-1+lenny16 with Suhosin-Patch 0.9.6.2 (cli) (built:)
    Copyright (c) 1997-2008 The PHP Group

  3. Иван сообщает :

    apt-get purge ‘php5*’

    Для установки конкретной версии ПО указываем через знак равенства после названия пакета саму версию
    apt-get install postgresql-common=151.pgdg12.4+1

  4. Антон сообщает :

    не подходит ваш способ, получаю ошибку аутентификации!

    WARNING: The following packages cannot be authenticated!
    libapache2-mod-php5 php5-common php5-curl php5-gd php5-mcrypt php5-mysql
    php5-cli php5-mhash php5-xsl php5-imap php5-xmlrpc php5-sqlite

Добавить комментарий