Я получаю эту ошибку:
Сообщение: date () [function.date]: небезопасно полагаться на настройки часового пояса системы. Ты обязательный использовать параметр date.timezone или функцию date_default_timezone_set (). Если вы использовали любой из этих методов и по-прежнему получаете это предупреждение, скорее всего, вы неправильно написали идентификатор часового пояса. Вместо этого мы выбрали America / New_York для EST / -5.0 / no DST.
Я отредактировал свой php.ini и добавил это в конец: date.timezone = "America / New_York"
После сохранения php.ini и перезапуска Apache я все еще получаю ошибку. Я также попытался перезагрузить весь сервер безрезультатно.
Я запускаю cPanel / WHM на CentOS 5.6, если это имеет значение. Также обработчик PHP - suphp.
Я не уверен, что попробовать дальше ... есть какие-нибудь рекомендации?
откройте соответствующий файл php.ini и добавьте следующее, заменив часовой пояс на тот, который вам подходит (список имен часовых поясов - http://php.net/date.timezone):
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "America/Chicago"
для более подробной информации:
Похоже, что в вашей системе может быть более одного php.ini, и был отредактирован неправильный. Я считаю, что можно указать другой каталог php.ini для каждого виртуального хоста с помощью suPHP (используя параметр suPHP_ConfigPath).
Есть несколько вариантов. Во-первых: вы можете (как предлагается в сообщении об ошибке) использовать:
date_default_timezone_set()
Однако это делает ваш код менее переносимым.
В качестве альтернативы вы можете дважды проверить, какой файл php.ini загружается при выполнении скрипта, создав страницу phpinfo; то есть просто доступный через Интернет файл php со следующим содержимым:
<?php
phpinfo();
Просмотрите страницу и найдите разделы, отмеченные «Загруженный файл конфигурации» и «Дополнительные проанализированные файлы .ini». Они должны сообщить вам, какие ini-файлы вам нужно редактировать.
Стоит проверить все из файлов, перечисленных как любой из них, могут содержать неверные настройки date.timezone, которые заменяют установленный вами.
Я просто решил эту проблему. Сначала я подумал, что читается неправильный php.ini. После многих проверок я обнаружил проблему. Это было из-за того, что у меня был лишний «в середине php.ini», поэтому он получал ошибку, не позволяющую загрузиться остальным. Я исправил это, и он работает отлично. Вы можете проверить наличие ошибок, выполнив следующую команду: php -i | grep php.ini | хвост -n2
Мариано
Я исправил это, убрав кавычки вокруг строкового значения.
Так,
date.timezone = "Европа / Лондон"
становится ...
date.timezone = Европа / Лондон
и проблема ушла. Хотя меня это немного беспокоит.