RSS
 

Archive for августа 18, 2011

Хостинг: Борьба с ISPManager – php 5.3, cgi и timezone

18 Aug

Начинаем цикл о борьбе с 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 пути будут другими, но, надеюсь, направление мысли (что и где искать) понятно.

Далее будет…

 
 
http://deineka.net/feed/rss/">Entries (RSS) and Comments (RSS)

best cybersecurity companies