Особенности поддержки PHP 5.4 (mod_fastcgi)

По умолчанию используется PHP версии 5.2. Для использования PHP 5.4 необходимо в контрольной панели переключить режим проксирования на “Apache 2.4 + PHP 5.4” (см. подробнее для разработчиков)

На нашем хостинге PHP 5.4 запускается через mod_fastcgi. Это позволяет сайтам работать значительно быстрее, однако приводит к некоторым особенностям: например, скрипты не знают, что они запущены через Apache и поддержка .htaccess с mod_rewrite есть.

Другая особенность - php_flag и php_value в .htaccess передаются пхп через расширение htscanner, однако, т.к. скрипты запущены через fastcgi - при изменении этих параметров в .htaccess они не применяются мгновенно - процессы пхп, которые запустились после изменения .htaccess, будут использовать новые параметры, но ранее запущенные процессы будут работать со старыми параметрами.

Запущенные процессы автоматически завершают свою работу при наступлении некоторых условий (например - к ним не было обращения в течении длительного времени), после чего при новом обращении запускаются новые, но можно вручную остановить текщие процессы пхп, чтобы на новый запрос запустились новые с новыми параметрами. Для этого нужно выполнить в шелле (SSH) команду

killall -r '^php-fpm'

Так же можно перезагрузить пхп по ссылке в контрольной панели, она находится в меню справа.

Подробнее про доступ по SSH

PHP 5.4 в шелле по умолчанию

Сейчас команда php, набранная в шелле, запустит пхп версии 5.2. Это оставлено для обратной совместимости с множеством сайтов, которые были написаны много лет назад и не совместимы с пхп 5.4. Если вам необходимо, чтобы для вашего аккаунта по умолчанию в шелле использовался пхп 5.4 - это можно сделать так:

mkdir -p $HOME/bin
ln -s /usr/bin/php54 $HOME/bin/php
echo 'export PATH=$HOME/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin' >> $HOME/.bashrc
  • Первая команда создает каталог ~/bin
  • Вторая - символьную ссылку на пхп 5.4 для команды php
  • Третья изменяет пути, в которых ищутся исполняемые файлы - на первое место ставится каталог ~/bin

После внесения этих изменений необходимо перелогиниться, чтобы они вступили в силу (или запустить новую сессию, например командой bash)

Тэги: php, dev