Для начала останавливаем apache, чтобы не мешался пока суть, да дело:
/etc/init.d/apache2 stop
Сносим всё PHP которое установлено:
apt-get remove php5-cli php5-common php5-suhosin php5-mcrypt php5-mysql php5-gd php5-dev php-pear php5-curl php-apc php5-memcache php5-fpm
apt-get autoremove
Лезем в конфигурационный файл /etс/apt/sources.list стираем там 2 старые строки посвященные dotdeb.org и вместо них вписываем такие:
deb http://packages.dotdeb.org squeeze-php54 all
deb-src http://packages.dotdeb.org squeeze-php54 all
Обновляемся:
apt-get update
И ставим всё новое:
apt-get install php5-cli php5-common php5-mcrypt php5-mysql php5-gd php5-dev php-pear php5-curl php5-apc php5-memcache php5-fpm
apt-get autoremove
- php5-suhosin для PHP 5.4 не нужен и не рекомендован.
- APC берём тоже с dotdeb, поэтому пакет называется php5-apc, a не php-apc как раньше.
- По ходу дела пару раз спросят что делать с конфигами (php.ini и т.п.)- решайте сами. Можно оставить старые, можно взять новые из устанавливаемых пакетов, можно посмотреть различия. Я советую ставить новые, хотя это и означает что все изменения которые в них вносились придётся делать заново
Если вы установили новые конфиги, то вносим в них изменения упомянутые в «Часть VI.PHP». Номера строк в конфигах будут другие. На всякий случай перечисляю директивы, на которые необходимо обратить внимание.
/etc/php5/fpm/php.ini:
expose_php
mail.add_x_header
sendmail_path
disable_functions
error_log
session.save_path
/etc/php5/fpm/pool.d/www.conf:
listen
pm.max_children
pm.start_servers
pm.min_spare_servers
pm.max_spare_servers
pm.max_requests
/etc/php5/cli/php.ini:
expose_php
mail.add_x_header
sendmail_path
Теперь правим конфигурации apache (потому что эти нехорошие люди, по неведомым причинам, переименовали /usr/sbin/php-fpm в /usr/sbin/php5-fpm ). Итак, в /etc/apache2/sites-available/superls.ru находим и правим две строки:
Было:
Action php-fastcgi /usr/sbin/php-fpm.fcgi
ScriptAlias /usr/sbin/php-fpm.fcgi /usr/sbin/php-fpm
Cтало:
Action php-fastcgi /usr/sbin/php5-fpm.fcgi
ScriptAlias /usr/sbin/php5-fpm.fcgi /usr/sbin/php5-fpm
Далее в /etc/apache2/mods-available/fastcgi.conf меняем строку:
Было:
FastCGIExternalServer /usr/sbin/php-fpm -socket /var/run/php5-fpm.socket -idle-timeout 30
Cтало:
FastCGIExternalServer /usr/sbin/php5-fpm -socket /var/run/php5-fpm.socket -idle-timeout 30
Cтартуем всё:
/etc/init.d/php5-fpm restart
/etc/init.d/apache2 start
Автор Gmugra
mmozg.net