Сегодня столкнулся с любопытной ошибкой — после переноса сайта (джумла) перестала работать авторизация (невозможно зайти в «админку» сайта).

При этом никаких сообщений об ошибках не отдаётся — просто обновляется страница ввода логина-пароля и всё.

Причина номер 1

Самая популярная причина такой ошибки — переполнен диск сервера (аккаунта). В результате  при попытке входа на сайт скрипту не получается создать [simple_tooltip content=’Временный файл, в котором находятся данные о текущем сеансе работы конкретного пользователя’]файл сессии[/simple_tooltip] (т.к. диск переполнен), и как следствие авторизация на сайте не происходит.

Исправить ошибку просто — очистите место на диске так чтобы было в запасе хотя-бы десяток мегабайт, очистите временную папку (tmp).

Обратите внимание на важный аспект — на диске может заканчиваться не только место, но и максимально доступное количество созданных файлов (inode)! То есть, место ещё может оставаться, но файлы при этом создать уже нельзя!

Причина номер 2

Проверка показала что именно в этом случае причиной были неправильные значения переменных в файле configuration.php (который находится в папке сайта)

public $cookie_domain = 'example.org';
public $cookie_path = '/www';   //судя по всему, виновата именно она, так как путь явно указан неправильно;

Исправить ситуацию удалось установив для них пустые значения:

public $cookie_domain = '';
public $cookie_path = '';

Кстати, в общем случае значения переменных $cookie_domain и $cookie_path  так и должны быть пустыми — их использование актуально, например, для случаев, если в подпапке сайта установлена ещё одна CMS для которой нужен отдельный вход/куки:

  • $cookie_domain : Домен, для которого значение cookie действительно. Для того, чтобы разрешить cookie для всех поддоменов, домен должен начинаться с ‘.’ Например — ‘.yourdomain.com’. По умолчанию используется доменное имя, на котором была выполнена установка Joomla.
  • $cookie_path : Путь на сервере по которому для которого действительно значение cookie. Например, если установлено в /test/, то cookie будет действительно только внутри директории /test/ и всех субдиректорий (например /test/dir/) домена. По умолчанию cookie действительно для всего домена, на котором была выполнена установка Joomla.