Настраиваем сервер для LiveStreet. Приложение A. Переход на PHP 5.4

Предыдущие части:

PHP 5.3 Reaching End of Life
11-Jul-2013 The PHP development team announces the immediate availability of PHP 5.3.27. About 10 bugs were fixed, including a security fix in the XML parser (Bug #65236).

Please Note: This will be the last regular release of the PHP 5.3 series. All users of PHP are encouraged to upgrade to PHP 5.4 or PHP 5.5. The PHP 5.3 series will receive only security fixes for the next year.
Новости уже сто лет в обед. Поддержка PHP 5.3 завершена. Всем заинтересованным лицам предлагается переходить на PHP 5.4 или PHP 5.5. Продолжать жить на больше не поддерживаемой версии, мысль не очень хорошая, хотя бы из соображений безопасности (фиксы дыр в безопасности это то, что надо бы постоянно ставить). Учитывая, что следование инструкции устанавливало именно PHP 5.3, я решил описать что нужно сделать чтобы перевести установку на использование PHP 5.4.

Замечание: PHP 5.4 уже 20+ релизов пережило, так что «сырым» продуктом его назвать нельзя. Кроме того там куча оптимизаций и фиксов непосредственно влияющих на потребление памяти и общую производительность. Так что даже без учёта того что PHP 5.3 мёртв — смысл в переходе есть и большой.

Для начала останавливаем 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


И всё. Должно работать :)
Вам просто необходима раскрутка группы в facebook, если вы хотите найти новых клиентов. Наша компания сможет подготовить для вас грамотный социальный маркетинг.

12 комментариев

avatar
у меня на 5.3 в месяц error.log рос до 20-30 Мегабайт. после перехода на 5.5 ни одной ошибки.
мистика )))
avatar
Может просто лог не пишется? :)
avatar
как бы хостинг шаред. поэтому если раньше писался. то почему ты ему сейчас не писатся?!
avatar
Изменились директиры в файле настройки самого PHP, например. На хостинге тоже люди работают, могли просмотреть что-то…
Кстати проверить просто — с помощью PHP функции «error_log».
avatar
где смотреть их?
avatar
где смотреть их?
Их — это настройки? Пользователи шаред хостинга не имеют доступа к настройкам PHP. В лучшем случае часть директив можно переопределить в файле ".htaccess" в корневом каталоге.

Например, на хостинге, который вообще не предоставляет доступа к логам, пришлось настроить вывод ошибок PHP в отдельный файл с помощью следующего набора директив в файле ".htaccess"
# PHP error handling for development servers
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag log_errors on
php_flag ignore_repeated_errors off
php_flag ignore_repeated_source off
php_flag report_memleaks on
php_flag track_errors on
php_value docref_root 0
php_value docref_ext 0
php_value error_log /var/sites/site.ru/htdocs/logs/php_errors.log
php_value error_reporting -1
php_value log_errors_max_len 0


Ошибки apache все равно не доступны, но хоть так.
avatar
Может имеет смысл сразу на php 5.5, учитывая, что он stable? Тогда можно выкинуть из связки apc.
avatar
с 5.5 — я лично LS не тестил. И вообще с 5.5 пока дела не имел, признаться. Может и стоит. А почему «можно выкинуть из связки apc»?
avatar
Нативный open source опкодер от зенда, если по-гуглить тесты, как минимум, не устапает в скорости. В июне 2014 php 5.5 будет год и 5.4 переведут на ограниченную поддержку.
avatar
В новых версиях PHP опкод-кешер APC включен в состав в ядра PHP
avatar
Я, по наводке господина throttle , уже интеренеты почитал. И вы в корне не правы. APC для PHP 5.5 просто нету, а в само PHP 5.5 встроен Zend Optimizer+, который делает ту же работу. Но это другой совсем продукт.
avatar
SEO sprint — уникальное место! Здесь можно легко заработать реальные деньги. К вашим услугам несколько методов заработка! Просматривайте сайты, читайте письма рекламодателей, выполняйте несложные и интересные тесты и задания за вознаграждение. Для этого Вам не потребуются какие-либо особые навыки или уйма времени. Вы можете находиться где угодно и работать когда угодно! Все выплаты в системе производятся мгновенно. Начисления сбалансированы и стабильны. Вы сможете получить свои первые деньги уже сразу после начала работы. С нами надёжно и комфортно. Зарабатывайте столько, сколько захотите! РЕГИСТРАЦИЯ: www.seosprint.net/?ref=2613465 так же от меня помощь по другим вопросам.Скажу сразу: тут вы не заработаете миллионы, как пишут в других рекламах своих лохотронных проектах… типа 100$ каждый день можно снимать и зарабатывать, здесь придется первое время поработать, но заплатить за тот же интернет и мелкие нужды деньги будут.
Подробнее: смотрите видео www.youtube.com/watch?v=xQYOihHLmu4
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.