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

Бывает так, что в свежем дистрибутиве 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. Также этот способ вполне подходит и для Убунту, но с пересмотром используемых репозиториев.

Как вы оцените статью?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (1 оценок, среднее: 5,00 из 5)
Загрузка...

4 Комментарии “Установка php 5.3 на Debian 7

  1. Добрый день!
    При установки 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

    1. В данный момент могу порекомендовать вместо модуля libapache2-mod-php5 использовать php5-cgi.

      Сначала ставим apache:

      aptitude install apache2-mpm-itk -t squeeze

      Таким образом можно даже не ставить старый apache из репозитория squeeze.

      Затем ставим php:

      aptitude install php5-cgi php5-cli php5-mysql -t squeeze

      Включаем mod_actions:

      a2enmod actions

      В конфиг виртуального хоста в конфиге apache добавляем строки:

      ScriptAlias /local-bin /usr/bin
      AddType application/x-httpd-php .php .php3
      Action application/x-httpd-php /local-bin/php5-cgi
      1. Спасибо за ответ!
        Мне нужно именно чтобы php работал как модуль apache.
        Решил вопрос поставив Debian 7.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *