Всем Debian'щикам известно, что Debian настолько же стабилен, насколько тормознут на «новинки». В частности, пакета php5-fpm, так многими любимого, в стабильном репозитории до сих пор нет. Решив чуток поискать, как делают люди, понял, что многие собирают его из «сорцов». Мне это как-то стало не по душе. Поэтому сегодня я поставил его в стиле Debian-way, с помощью Apt-Pinning.
Apt-Pinning, вкратце, это технология, которая показывает, из какого репозитория предпочтительнее ставить пакет.
Делается все очень просто.
Дописываем репозитории testing и unstable в /etc/apt/sources.list.
Осторожно, в URL сделаны пробелы после http:. Там их быть не должно
Далее создаем файл /etc/apt/preferences
Делаем «пробу пера»
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 '<?php phpinfo(); ?>' > /usr/share/nginx/www/info.php
Правим /etc/nginx/sites-available/default
sudo nano -w /etc/nginx/sites-available/default
Врубаем fcgi_pass в конфиге: ищем (CTRL+W) строку «9000» и раскомментируем весь блок, кроме комментария. Подправляем под себя.
Перезапускаем nginx
sudo /etc/init.d/nginx restart
Идем http:// нашIP/info.php
Вуаля.
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 '<?php phpinfo(); ?>' > /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
Вуаля.