Что могло заставить время/часовой пояс Apache изменяться периодически?

mtop является большим для контроля текущих рабочих запросов и системных переменных.

4
задан 16 June 2009 в 02:20
4 ответа

Могло случиться так, что некоторый другой запрос является установкой TZ, и это разбрасывается, лежа? Запись getenv('TZ') в начале каждого запроса проверил бы это, и putenv мог привыкнуть к обходному решению это.

3
ответ дан 3 December 2019 в 03:14
  • 1
    мы раньше сталкивались с этим w/$TZ и mod_perl... –  jj33 16 June 2009 в 04:15
  • 2
    Я думаю, что это было, точно продолжался. I' m собирающийся рыть вокруг в моих настройках Django для наблюдения what' s установка TZ, но использующий putenv для простой очистки это в начале каждого запроса mod_php, кажется, отложило все в рабочем состоянии. –   16 June 2009 в 04:16

В Unix/Linux каждый процесс может работать в различном часовом поясе. Это вызвано тем, что в зависимости от содержания переменной $TZ, которая может присутствовать в среде процесса, связанные с системным временем функции изменяют свои возвращаемые значения (это ни один PHP-или определенный для Apache). Вероятно, $TZ становится измененным в одном или нескольких Ваших процессов Apache. И mod_php и mod_python являются частью процесса Apache, таким образом, они могут свободно изменить $TZ.

Можно ли распечатать getenv ('TZ') к журналу наряду с идентификатором процесса Apache через posix_getpid (), таким образом, он мог использоваться для соответствия различным пользовательским запросам?

3
ответ дан 3 December 2019 в 03:14

Я думаю, что это больше имеет отношение к Вашим php настройкам. Взгляните на mod_php "TZ" переменная среды.

0
ответ дан 3 December 2019 в 03:14

Переменная среды TZ, как различные переменные среды, связанные с языком и настройками локали, является глобальным процессом. Таким образом выполняя несколько экземпляров приложения в том же процессе, вызовут ли они быть Python или PHP, которые хотят установить его по-другому, проблемы. Этот вопрос также влияет на mod_wsgi и обсуждается в:

http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Timezone_and_Locale_Settings

Обратите внимание, что попытка проверить вещи путем рассмотрения os.environ изнутри веб-приложения Python не может помочь, поскольку os.environ является копией переменных среды процесса во время, Python (sub) экземпляр интерпретатора был создан. Таким образом любое изменение в TZ или другие переменные среды не будет отражено в Python os.environ словарь. Единственная синхронизация времени определенных значений происходит, когда значение в os.environ обновляется, в этом случае Python также называет уровень C putenv () функция.

0
ответ дан 3 December 2019 в 03:14