Начинаем цикл о борьбе с ISPManager – тема для меня актуальна в связи с тем, что мы сейчас достаточно активно продвигаем наше направление, связанное с хостингом/VPS/выделенными серверами. Сегодня первая заметка, скорее, чтобы не забыть самому.
Дано – FreeBSD 8.2, ISPManager, Apache 2.2, PHP 5.3. Так сказать – bleeding edge Переводим ряд клиентов с mod-itk на php-cgi для чуть большего контроля за ресурсами. Включаем клиенту “PHP как CGI” в настройках сайта, и получаем в самом начале вывода скрипта неприятную фразу, ломающую весь дизайн сайта
It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Helsinki' for 'EEST/3.0/DST' instead...
Кроме этого, иногда видим warning-и разные. Идем в /usr/local/etc/php.ini – все описано верно. Смотрим, как панель включает PHP в режиме CGI: в домашнем каталоге пользователя возникает каталог php-bin, где лежит php.ini и исполняемый файл php, который состоит из одной строчки:
#!/usr/local/bin/php-cgi
Конечно, можно каждому пользователю недостающие параметры дописывать руками. Но когда пользователей на сервере сотни, нужно более промышленное решение. А глобально решить задачу с warning-ами и таймзонами просто – смотрим на любом из потерпевших сайтов phpinfo(), конкретно нас интересует, где PHP смотрит на дополнительные ini-файлы:
Логика такая – если есть php.ini у самого пользователя (а по умолчанию панель пишет каждому пользователю php.ini с парой параметров), то PHP игнорирует системный /usr/local/etc/php.ini, но будет читать все ini-файлы в каталоге /usr/local/etc/php/. Соответственно, создаем файл /usr/local/etc/php/php.ini с парой-тройкой нужных нам строчек:
date.timezone ="Europe/Kiev" display_errors="Off" display_startup_errors="Off"
После этого – все работает правильно. Для Centos/Debian пути будут другими, но, надеюсь, направление мысли (что и где искать) понятно.
Далее будет…