Бывает так, что в свежем дистрибутиве Debian может понадобиться старая версия php, не входящая в стабильную ветку дистрибутива. Например, php 5.3 для работы сайта на сервере с Debian Jessie.
Для полного разрешения зависимостей следует, помимо 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. Также этот способ вполне подходит и для Убунту, но с пересмотром используемых репозиториев.
Спасибо. Помогло.
Добрый день!
При установки libapache2-mod-php5 — выдает следующее:
root@funticket:~# apt-get install libapache2-mod-php5
Reading package lists… Done
Building dependency tree
Reading state information… Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
init : PreDepends: systemd-sysv but it is not going to be installed or
sysvinit-core but it is not going to be installed or
upstart but it is not going to be installed
initscripts : Depends: sysv-rc or
file-rc but it is not going to be installed
Recommends: e2fsprogs but it is not going to be installed
libapache2-mod-php5 : Depends: libssl0.9.8 (>= 0.9.8m-1) but it is not going to be installed
Depends: apache2-mpm-prefork (> 2.0.52) but it is not going to be installed or
apache2-mpm-itk but it is not going to be installed
Depends: apache2.2-common but it is not going to be installed
Depends: php5-common (= 5.3.3-7+squeeze19) but it is not going to be installed
Depends: ucf but it is not going to be installed
Depends: tzdata but it is not going to be installed
Recommends: php5-cli but it is not going to be installed
libblkid1 : Depends: libuuid1 (>= 2.16) but it is not going to be installed
libreadline6 : Depends: readline-common but it is not going to be installed
logrotate : Depends: cron or
anacron or
cron-daemon
Recommends: mailx
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
Буду благодарен любой помощи! Никак не получается пэху запустить в 8-ке debian
В данный момент могу порекомендовать вместо модуля libapache2-mod-php5 использовать php5-cgi.
Сначала ставим apache:
Таким образом можно даже не ставить старый apache из репозитория squeeze.
Затем ставим php:
Включаем mod_actions:
В конфиг виртуального хоста в конфиге apache добавляем строки:
Спасибо за ответ!
Мне нужно именно чтобы php работал как модуль apache.
Решил вопрос поставив Debian 7.