Как установить часовой пояс PHP для облачного веб-сервера, распределенного по разным географическим регионам?

383
jww

Во время работы я получаю следующее предупреждение php -i:

Предупреждение PHP: Неизвестно: полагаться на настройки часового пояса системы небезопасно. Вам необходимо использовать параметр date.timezone или функцию date_default_timezone_set (). Если вы использовали какой-либо из этих методов и по-прежнему получаете это предупреждение, вы, скорее всего, неправильно написали идентификатор часового пояса. На данный момент мы выбрали часовой пояс UTC, но, пожалуйста, установите date.timezone, чтобы выбрать свой часовой пояс. в Неизвестно в строке 0
...

Наша виртуальная машина размещается и распространяется в различных географических регионах. Это похоже на «us-east» и «us-west», используемые Amazon (хотя мы не используем Amazon).

Как мы устанавливаем, date.timezoneкогда сервер реплицируется в разных часовых поясах?

1

1 ответ на вопрос

1
Deltik

Вы установили date.timezoneв своем php.iniфайле.

Эта команда найдет php.iniфайл, который PHP использует в настоящее время:

php -i | grep 'Configuration File.* => ' 

В приведенном ниже примере my php.iniнаходится по адресу /opt/cpanel/ea-php56/root/etc/php.iniи date.timezoneимеет значение UTC:

root@node2 [~]# php -i | grep 'Configuration File.* => ' Configuration File (php.ini) Path => /opt/cpanel/ea-php56/root/etc Loaded Configuration File => /opt/cpanel/ea-php56/root/etc/php.ini  root@node2 [~]# grep 'date\.timezone' /opt/cpanel/ea-php56/root/etc/php.ini ; http://php.net/date.timezone date.timezone = "UTC" 
Благодарю. Мы используем образ CentOS, и я считаю, что файл конфигурации `/ etc / php.ini`. На что мы его установим, когда виртуальная машина распределена, чтобы увеличить доступность? Если мы установим значение «America / New_York» для «us-east», то оно будет неправильным для «us-west» и «America / Los_Angeles» (и наоборот). Обратите внимание, что мы получаем только одно зеркало - нам кажется, что это одна виртуальная машина. jww 7 лет назад 0
@jww: просто используйте любой часовой пояс, который вы предпочитаете. У меня установлено UTC, чтобы быть похожим на Stack Exchange. Если ваше приложение по какой-то причине чувствительно к часовому поясу, оно должно быть запрограммировано с указанием `date_default_timezone_set ()` в соответствии с вашими потребностями. Deltik 7 лет назад 0
Лучше всего всегда устанавливать UTC. Если вам нужно конвертировать в другие часовые пояса, делайте это явно с каждой операцией. Не полагайтесь на системные настройки по умолчанию. Matt Johnson 7 лет назад 1
Отлично, спасибо Делтик и Мэтт. Если это лучшая практика, то кажется, что по умолчанию она должна быть раскомментирована .... jww 7 лет назад 0

Похожие вопросы