Roundcube Webmail 500 Internal Server Error. Неожиданное решение проблемы.
Сегодня опять будет дичь, но не пугайтесь, если не нашли тут ни одного понятного слова. Обещаю, что следующие темы в блоге будут для нормальных людей, а пока расскажу о неожиданном решении проблемы с 500-ой ошибкой (Internal Server Error) при авторизации в web почтовике Roundcube.
Я уже однажды рассказывал о настройке почтового веб-интерфейса RoundCube, который используется у меня на одном из почтовых серверов внутри сети.
Web-интерфейс к почтовым ящикам я прикрутил довольно давно, так как считаю этот вариант гораздо более удобным, однако пользователи в сети, по старинке, предпочитают почтовый клиент Mozilla Thunterbird. Своей почты у меня на том сервере нет, потому и web-интерфейс использую лишь время от времени, когда нужно что-то потестировать или проверить сообщения для учётной записи postmaster (когда лень это сделать из терминала).
И тут вдруг оказалось, что при попытке авторизации Roundcube Webmail стал выдавать 500 ошибку Internal Server Error. Полазив по логам roundcube/logs/errors обнаружил весьма интересные строчки:
PHP Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone.
Кто бы мог подумать, что проблема заключалась в отсутствии указания временной зоны в файле конфигурации php.ini. Почему раньше работало, а сейчас вдруг перестало не могу сказать, возможно ставились какие-то обновления или пересобирал php... сейчас уже не вспомню.
В общем, в php.ini нужно раскомментировать строку ;date.timezone и прописав временную зону перезапустить web-сервер:
date.timezone = 'Europe/Moscow'
Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.