Исходные данные: debian testing, drupal6 из пакета (6.14) + apache2 и mysql5 тоже пакетные. mysql по определённым причинам на нестандартном порту, но drupal его видит и нормально общается (таблицы создаются). Изначально не проходила установка install.php (ругалась на неверный запрос mysql в строке 315 menu.inc), вылечилось патчем с форума drupal.org.
Теперь проблема: я могу войти админом (единственный пользователь, id=1), но не могу ничего делать - получаю "Access denied" на любую административную страницу, включая свой профиль (http://my.site/drupal6/user/1/edit). В логах - никакой ругани от php, только запись о попытке доступа и код 403, хотя в php.ini логгинг ошибок включён.
В PMA видно, что таблички создались, запись для admin есть, и единственная. Уже трижды всё убивал и ставил заново - тот же результат. Пытался делать update.php - не даёт. При нажатии на "continue" отображается эта же страничка. В mainaince mode перевести тоже не даёт - Access denied.
Подскажите, что можно попытаться сделать?
Комментарии
Может тоже какойнибуть косяк с сессией и cookie глянь на таблицу session пишется ли сессия, работаю ли cookie ???
Сессии пишутся (в таблице есть), а вот кука, похоже, не выдаётся (браузер её не получает). Настройки в settings.php:
ini_set('arg_separator.output', '&');
ini_set('magic_quotes_runtime', 0);
ini_set('magic_quotes_sybase', 0);
ini_set('session.cache_expire', 200000);
ini_set('session.cache_limiter', 'none');
ini_set('session.cookie_lifetime', 2000000);
ini_set('session.gc_maxlifetime', 200000);
ini_set('session.save_handler', 'user');
#ini_set('session.use_only_cookies', 1);
ini_set('session.use_trans_sid', 0);
ini_set('session.cookie_secure', 0);
ini_set('url_rewriter.tags', '');
$cookie_domain = '1.2.3.4'; #Тут реальный ip-адрес.
На этом же апаче крутится ещё несколько проектов, в т.ч. на php с сессиями по кукам. Т.е. настройки по умолчанию должны работать. Где можно посмотреть наличие граблей? Где покрутить? В глобальный php.ini лазить не получится, но ini_set прописать можно.
Очень хочется выразиться по-русски... Причина оказалась в том, что в php была запрещена посылка cookie. Решение - добавить в settings.php строку
ini_set('session.use_cookies', 1);
Вопрос - почему всякая мелочь типа cache_limiter там прописана, а ключевые настройки - нет? Просто глупо полагаться на умолчания php которые могут быть ЛЮБЫМИ - 80% "рецептов" лечения разных доморощенных домашних страниц сводятся к правке глобального php.ini и "уронить" drupal такими вещами можно за 2 секунды... Риторический вопрос, конечно, но меня такое начало пугает...