Debian: Apt-Pinning на примере php5-fpm и nginx 1.0.4 (Debian way)

Всем Debian'щикам известно, что Debian настолько же стабилен, насколько тормознут на «новинки». В частности, пакета php5-fpm, так многими любимого, в стабильном репозитории до сих пор нет. Решив чуток поискать, как делают люди, понял, что многие собирают его из «сорцов». Мне это как-то стало не по душе. Поэтому сегодня я поставил его в стиле Debian-way, с помощью Apt-Pinning.

Apt-Pinning - вкратце, это технология, которая показывает, из какого репозитория предпочтительнее ставить пакет.


Делается все очень просто.

Дописываем репозитории testing и unstable в /etc/apt/sources.list.
Осторожно, в URL сделаны пробелы после http:. Там их быть не должно

    # deb http: //ftp.ru.debian.org/debian/ squeeze main

    deb http: //ftp.ru.debian.org/debian/ squeeze main non-free contrib
    deb-src http: //ftp.ru.debian.org/debian/ squeeze main non-free contrib

    #security
    deb http: //security.debian.org/ squeeze/updates main contrib non-free
    deb-src http: //security.debian.org/ squeeze/updates main contrib non-free

    # squeeze-updates, previously known as 'volatile'
    deb http: //ftp.ru.debian.org/debian/ squeeze-updates main contrib non-free
    deb-src http: //ftp.ru.debian.org/debian/ squeeze-updates main contrib non-free

    #UNSTABLE
    deb http: //ftp.ru.debian.org/debian/ unstable main non-free contrib
    deb-src http: //ftp.ru.debian.org/debian/ unstable main non-free contrib

    #TESTING
    deb http: //ftp.ru.debian.org/debian/ testing main non-free contrib
    deb-src http: //ftp.ru.debian.org/debian/ testing main non-free contrib


Далее создаем файл /etc/apt/preferences

    #Обновляем PHP5 и NGINX
    #Поле Pin-Priority говорит о том, из какого репозитория предпочтительнее брать пакеты
    #Пакеты php5-fpm, nginx и все вспомогательное лучше брать из stable, затем искать в testing, а потом в unstable, если оно подходит.
    #PHP5, NGINX
    Package: php5-fpm nginx php5-common libpcre3 nginx-full libgeoip1
    Pin: release a=stable
    Pin-Priority: 700

    Package: php5-fpm nginx php5-common libpcre3 nginx-full libgeoip1
    Pin: release a=testing
    Pin-Priority: 650

    Package: php5-fpm nginx php5-common libpcre3 nginx-full libgeoip1
    Pin: release a=unstable
    Pin-Priority: 600

    #OTHER
    Package: *
    Pin: release a=stable
    Pin-priority: 550

    #OTHER
    Package: *
    Pin: release a=testing
    Pin-priority: 500


Делаем «пробу пера»

sudo apt-get update


#Флаг -s означает «Симуляция». При правильной настройке у вас будет немного пакетов для обновления.

sudo apt-get -s upgrade


#Внимательно смотрите на пакеты.

sudo apt-get -s install php5-fpm nginx


#Смотрим внимательно на зависимости, которые вызывают проблемы и добавляем их в Package из первой тройки

sudo apt-get -s install php5-fpm nginx


#Делаем симуляцию до тех пор, пока не покажется, что все хорошо, если что не так — правим конфиги APT

#Устанавливаем nginx и php5-fpm

sudo apt-get install php5-fpm nginx
sudo /etc/init.d/php5-fpm start
sudo /etc/init.d/nginx start


Идем по http: //нашIP, nginx должен приветствовать тебя!

Включаем PHP:

sudo echo '' > /usr/share/nginx/www/info.php


Правим /etc/nginx/sites-available/default

sudo nano -w /etc/nginx/sites-available/default


Врубаем fcgi_pass в конфиге: ищем (CTRL+W) строку «9000» и раскомментируем весь блок, кроме комментария. Подправляем под себя.

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

location ~ \.php$ {
fastcgi_pass unix:/var/php-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}


Перезапускаем nginx

sudo /etc/init.d/nginx restart


Идем http:// нашIP/info.php

Вуаля.




Вас также может заинтересовать:

Релиз Debian 6.0.4. Заморозка Debian 7 ожидается в июне
Выход Debian GNU/Linux 5.0.8 и Debian Installer 6.0-RC2
Доступен Debian 7.1
Релиз Debian 6.0.1
Релиз Debian 6.0.2
Релиз Debian 6.0.3