Могло случиться так, что некоторый другой запрос является установкой TZ, и это разбрасывается, лежа? Запись getenv('TZ')
в начале каждого запроса проверил бы это, и putenv
мог привыкнуть к обходному решению это.
В Unix/Linux каждый процесс может работать в различном часовом поясе. Это вызвано тем, что в зависимости от содержания переменной $TZ, которая может присутствовать в среде процесса, связанные с системным временем функции изменяют свои возвращаемые значения (это ни один PHP-или определенный для Apache). Вероятно, $TZ становится измененным в одном или нескольких Ваших процессов Apache. И mod_php и mod_python являются частью процесса Apache, таким образом, они могут свободно изменить $TZ.
Можно ли распечатать getenv ('TZ') к журналу наряду с идентификатором процесса Apache через posix_getpid (), таким образом, он мог использоваться для соответствия различным пользовательским запросам?
Я думаю, что это больше имеет отношение к Вашим php настройкам. Взгляните на mod_php "TZ" переменная среды.
Переменная среды 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 () функция.