R
R
Reskiner072021-01-14 05:03:32
PHP
Reskiner07, 2021-01-14 05:03:32

Why does php ignore one timezone?

There is Userside software installed on ubuntu 16.04 server.
There was an error:

ВНИМАНИЕ
Системное время (14.01.2021 12:35:21)
несоответствует времени SQL (14.01.2021 11:35:21)


Their wiki describes what needs to be changed in the loaded php.ini timezone.

Solution from userside

Если системное время PHP (cli) отличается от времени базы данных

Для PHP возможна ситуация, когда используются различные файлы php.ini в работе. Для php-web (через него работает веб-интерфейс ERP "UserSide") свой, а для php-cli (через него работает, к примеру запуск скриптов через cron, в т.ч. планировщик ERP "UserSide") свой. Зачастую используется один файл, но иногда - нет и тогда настройки в них могут очень различаться. В т.ч. может отличаться часовой пояс, что приводит к неправильным обработкам дат и к сообщениям о различиях во времени.

Как посмотреть какой файл php.ini использует php-web:

Настройка - Основная - Разное - Показать PHPinfo()
В строке "Loaded Configuration File" будет путь к файлу.

Как посмотреть какой файл php.ini использует php-cli: В директории "userside" нужно создать, например файл test.php с текстом внутри:

<?php
phpinfo();

После чего через консоль сервера зайти в этот каталог и выполнить команду

php test.php > result.htm
Сформируется файл result.htm с выводом информации PHPinfo. В этом файле также смотрим путь "Loaded Configuration File", находим этот файл и корректируем настройки времени.

При следующем запуске планировщика ERP "UserSide" время будет перепроверено и, если всё совпадает, ошибка исчезнет.


I find the loaded php.ini

Expand
Configuration File (php.ini) Path /etc/php/7.0/fpm
Loaded Configuration File /etc/php/7.0/fpm/php.ini
Scan this dir for additional .ini files /etc/php/7.0/fpm/conf.d
Additional .ini files parsed /etc/php/7.0/fpm/conf.d/10-mysqlnd.ini, /etc/php/7.0/fpm/conf.d/10-opcache.ini, /etc/php/7.0/fpm/conf.d/10-pdo.ini, /etc/php/7.0/fpm/conf.d/15-xml.ini, /etc/php/7.0/fpm/conf.d/20-bcmath.ini, /etc/php/7.0/fpm/conf.d/20-calendar.ini, /etc/php/7.0/fpm/conf.d/20-ctype.ini, /etc/php/7.0/fpm/conf.d/20-curl.ini, /etc/php/7.0/fpm/conf.d/20-dom.ini, /etc/php/7.0/fpm/conf.d/20-exif.ini, /etc/php/7.0/fpm/conf.d/20-fileinfo.ini, /etc/php/7.0/fpm/conf.d/20-ftp.ini, /etc/php/7.0/fpm/conf.d/20-gd.ini, /etc/php/7.0/fpm/conf.d/20-gettext.ini, /etc/php/7.0/fpm/conf.d/20-iconv.ini, /etc/php/7.0/fpm/conf.d/20-json.ini, /etc/php/7.0/fpm/conf.d/20-mbstring.ini, /etc/php/7.0/fpm/conf.d/20-mysqli.ini, /etc/php/7.0/fpm/conf.d/20-pdo_mysql.ini, /etc/php/7.0/fpm/conf.d/20-phar.ini, /etc/php/7.0/fpm/conf.d/20-posix.ini, /etc/php/7.0/fpm/conf.d/20-readline.ini, /etc/php/7.0/fpm/conf.d/20-shmop.ini, /etc/php/7.0/fpm/conf.d/20-simplexml.ini, /etc/php/7.0/fpm/conf.d/20-snmp.ini, /etc/php/7.0/fpm/conf.d/20-sockets.ini, /etc/php/7.0/fpm/conf.d/20-sysvmsg.ini, /etc/php/7.0/fpm/conf.d/20-sysvsem.ini, /etc/php/7.0/fpm/conf.d/20-sysvshm.ini, /etc/php/7.0/fpm/conf.d/20-tokenizer.ini, /etc/php/7.0/fpm/conf.d/20-wddx.ini, /etc/php/7.0/fpm/conf.d/20-xmlreader.ini, /etc/php/7.0/fpm/conf.d/20-xmlrpc.ini, /etc/php/7.0/fpm/conf.d/20-xmlwriter.ini, /etc/php/7.0/fpm/conf.d/20-xsl.ini, /etc/php/7.0/fpm/conf.d/20-zip.ini


I'm on my way. In the entire directory, on each file, I put the timezone Asia / Vladivostok (it was already almost everywhere, in some places nothing was simply indicated).
I restart php (and the server itself has already rebooted).

I check the time on the server:
[email protected]:~# timedatectl
Expand
Local time: Thu 2021-01-14 11:47:26 +10
  Universal time: Thu 2021-01-14 01:47:26 UTC
        RTC time: Thu 2021-01-14 01:47:26
       Time zone: Asia/Vladivostok (+10, +1000)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

В info.php так же Australia/Melbourne.
Пробую
sudo timedatectl set-timezone Asia/Vladivostok

Through tzselect I set up, I sort out any names of time zones in general +10.
I also tried Etc/GMT-10.
Nothing changes, Australia/Melbourne remains.

But at the same time, as soon as I try to put any timezone not +10. (+9 irkutsk, tokyo, whatever), then it changes perfectly in info.php. And the system time in the error is already displayed with a lag. Any UTC is set, but not the one that I need.

Sorry
Господа, я совсем не разбираюсь в линуксах, так что возможно просто "Ну ты тууупооой". Саппорт самого Userside либо не понимает мою проблему, либо просто не знает как решить.

Answer the question

In order to leave comments, you need to log in

2 answer(s)
O
Oleg, 2021-01-14
@402d

Is it really an old sore due to non-server updates. Everyone has already forgotten.
google "php problems canceling winter time"

R
Reskiner07, 2021-01-14
@Reskiner07

In general, after another masturbation with timezones, it helped to indicate Pacific / Guam. Only it worked from +10 zones.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question