Часовые пояса (проблемы из-за них)

Вопросы, касающиеся установки и настройки всех программ сервера хотспота
Ответить
Аватара пользователя
Dmitry
Администратор
Сообщения: 1073
Зарегистрирован: 25 май 2011, 09:14
Откуда: г. Запорожье, Украина
Контактная информация:

Часовые пояса (проблемы из-за них)

Сообщение Dmitry »

Сервер биллинга использует целый ряд программ, которые взаимодействуют между собой. По умолчанию, при установке никаких специальных настроек по поводу того, какой часовой пояс будет использовать та или иная программа, не выполняется. В итоге, все программы используют "системное время". И по идее, никаких проблем возникать не должно.
Но, иногда возникают...

Начнем с того, как посмотреть, какое "текущее" время у той или иной программы
системное время самого сервера
Чтобы увидеть, какое текущее время у сервера, введите в консоли (терминале) такую команду: в ответ вы получите сообщение о текущей дате и времени сервера, типа такого:

Код: Выделить всё

Сбт Ноя 29 16:10:11 EET 2014
текущее время, по мнению сервера php
Чтобы узнать, какое время использует сервер PHP, введите в консоли (терминале) вот такую команду:

Код: Выделить всё

php -r 'echo date("r",time())."\n";'
в итоге вы получите ответ наподобие такого:

Код: Выделить всё

Sat, 29 Nov 2014 16:12:28 +0200
текущее время, по мнению perl
Чтобы узнать, какое время использует сервер PERL, введите в консоли (терминале) вот такую команду:

Код: Выделить всё

perl -le "print scalar localtime;"
в итоге вы получите ответ наподобие такого:

Код: Выделить всё

Sat Nov 29 16:14:28 2014
текущее время, по мнению сервера MySQL
Чтобы узнать, какое время использует сервер MySQL, придется потрудиться немного больше. Сначала войдите в консоль сервера MySQL, для чего введите в консоли (терминале) вот такую команду:

Код: Выделить всё

mysql -uroot -p
В ответ на запрос сервера введите пароль пользователя root для сервера MySQL (отличается от системного). После того, как вы войдете в консоль сервера MySQL, введите там вот такую команду (обязательно с "точкой-запятой" в конце!!!):

Код: Выделить всё

 select now();
В ответ север MySQL сообщит вам текущее время согласно его отсчета (выглядит это следующим образом)

Код: Выделить всё

+---------------------+
| now()               |
+---------------------+
| 2014-11-29 16:19:27 |
+---------------------+
Собственно, если показания отличаются, нужно исправлять!
Настройка часового пояса самого сервера
В консоли введите команду:

Код: Выделить всё

dpkg-reconfigure tzdata
В псевдографическом меню выберите сначала Европу, а потом город (или свой, или тот, про который вам известно, что он в одном часовом поясе с вами)
Настройка часового пояса у сервера php
Найдите и отредактируйте файл настроек сервера:

Код: Выделить всё

sudo mcedit /etc/php5/apache2/php.ini
ВНИМАНИЕ: размещение файла настроек указано для старых версий PHP! Для более свежих версий путь к файлу отличается, поэтому, откорректируйте его с учетом реалий вашей системы! (например, для версии 7.4 путь к файлу настроек такой: /etc/php/7.4/apache2/php.ini)
в файле найдите строку

Код: Выделить всё

;date.timezone =
В этой строке удалите точку с запятой в начале, и после равно впишите корректное значение вашего часового пояса, например, такое:

Код: Выделить всё

date.timezone = Europe/Zaporozhye
Список часовых поясов вы можете посмотреть, например, на странице по адресу:
http://php.net/manual/ru/timezones.php
Настройка часового пояса у сервера MySQL
Отредактируйте файл настроек сервера MySQL. Введите команду:

Код: Выделить всё

sudo mcedit /etc/mysql/my.cnf
ВНИМАНИЕ: размещение файла настроек указано для старых версий MySQL! Для более свежих версий путь к файлу отличается, поэтому, откорректируйте его с учетом реалий вашей системы! (например, для версии 5.7.х путь к файлу настроек такой: /etc/mysql/mysql.conf.d/mysqld.cnf)
В нем строку с параметром НУЖНО БУДЕТ ДОБАВЛЯТЬ (по умолчанию ее там нет)!
найдите в файле (в начале) раздел, начинающийся маркером [mysqld], и под ним допишите новую строку вида

Код: Выделить всё

default-time-zone='timezone'
...вписав в нее (вместо timezone) ваш часовой пояс. список поясов - можете использовать из ссылки для сервера PHP
PS. Где и как изменить системную настройку часового пояса для Perl я, увы, не нашел...
Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость