Установка php 5.3 на Debian 7

Бывает так, что в свежем дистрибутиве Debian может понадобиться старая версия php, не входящая в стабильную ветку дистрибутива. Например, php 5.3 для работы сайта на сервере с Debian Jessie.

Установка php 5.3 на Debian 7

Для полного разрешения зависимостей следует, помимо php, устанавливать пакеты apache, актуальные для предыдущего стабильного дистрибутива Debian.

И самый важный аспект: всегда делайте бэкапы всех конфигурационных файлов!

Возможно, вам понадобится удалить уже установленные пакеты php из стабильной ветки, если были установлены ранее. Это можно сделать командой:

# aptitude purge `dpkg -l | grep php | grep -w 5 | awk '{print $2}' | xargs`

И ту же самую команду выполняем для apache, соответственно, заменяя php на apache2.

Добавление репозиториев

Пакеты для Debian Squeeze, в настоящее время, доступны только в архивном репозитории. Список будет выглядеть так:

deb http://archive.debian.org/debian/ squeeze main deb-src http://archive.debian.org/debian/ squeeze main

Добавляем его одной командой:

# echo -e "deb http://archive.debian.org/debian/ squeeze main ndeb-src http://archive.debian.org/debian/ squeeze main" > /etc/apt/sources.list.d/php-squeeze.list

И обновляем кэш пакетов.

# aptitude update

Определение приоритета пакетов

Далее создаём файл /etc/apt/preferences.d/php-apache-squeeze, где прописываем следующее:

Package: *php5* Pin: release a=squeeze Pin: version 5.3* Pin-Priority: 1000  Package: *apache* Pin: release a=squeeze Pin: version 2.2* Pin-Priority: 1000

Наибольшего внимания заслуживают два параметра.

Pin: release a=squeeze — полужирным выделено имя ветки дистрибутива.

Pin: version — версия пакетов.

Сохраняем файл, устанавливаем пакеты стандартным образом:

# apt-get install apache2-mpm-prefork libapache2-mod-php5 php5-cli php5-mysql

При этом методе не требуется замораживать пакеты, так как во время обновления системы, они затронуты не будут. Также следует отметить, что в старых ветках могут отсутствовать некоторые пакеты (php5-fpm для версии 5.3).

P.S. Также этот способ вполне подходит и для Убунту, но с пересмотром используемых репозиториев.