Назад | Перейти на главную страницу

PHP5.3 FastCGI не использует глобальные значения конфигурации

Есть система Centos6.3. Apache 2.2.15 + mod_fcgid + PHP 5.3.3

Проблема с date.timezone стоимость. Он упоминается в глобальном /etc/php.ini как это:

date.timezone = "Europe/Moscow"

И не упоминается в локальном php.ini пользователя. В результате я получаю множество предупреждений, например:

Warning: date() [function.date]: 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 in ...

В том числе date.timezone параметр в пользовательский php.ini решает проблему, но я не думаю, что это лучшее решение.

Может кто сталкивался с этой проблемой и может дать совет?

Спасибо!

P.S. Создание /etc/php.d/timezone.ini с информацией о часовом поясе также ничего не делает :(

Вам нужно будет добавить date.timezone запись для каждого пользователя ini файл. После некоторых экспериментов выяснилось, что часовой пояс даты по умолчанию будет иметь глобальное значение, но по-прежнему E_NOTICE и / или E_STRICT или E_WARNING.

Тестирование глобальной настройки

bash~> php -r 'print ini_get("date.timezone").PHP_EOL;'
Europe/Moscow

bash~> php -r 'print date_default_timezone_get().PHP_EOL;'
Europe/Moscow

Тестирование user.ini без date.timezone устанавливать

bash~> php -c /path/to/user.ini -r 'print ini_get("date.timezone").PHP_EOL;'
""

bash~> php -c /path/to/user.ini -r 'print date_default_timezone_get().PHP_EOL;'
Warning: ... We selected 'Europe/Moscow' for 'EEST/4.0/DST' instead in Command line code on line 1

Europe/Moscow

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

if(!ini_get('date.timezone')) {
    date_default_timezone_set('Europe/Moscow');
}