Полдня искал, как решить эту проблему, и не могу понять. Вскоре после того, как я сделал свою вики простой частной вики в соответствии с инструкциями на веб-сайте Mediawiki, он начал выдавать мне это странное сообщение об ошибке входа в систему: Wiki использует файлы cookie для входа пользователей. У вас отключены файлы cookie. Включите их и попробуйте еще раз.
Если я удалю эти частные настройки вики, ошибка исчезнет, даже если я попытаюсь войти в систему. Но мне нужно, чтобы это была частная вики только для моей команды. Так что же мне делать?
Вот что я сделал до сих пор. На всякий случай после любых изменений я пытаюсь перезагрузить Apache, используя:
В моем файле php.ini у меня есть следующий набор:
Я выполнил следующее, чтобы убедиться, что папки доступны для записи:
В моем файле LocalSettings.php я добавил следующее в конец файла настроек:
Для указанного выше tmp я создал папку / etc / mediawiki / tmp, а также выполнил следующее:
Я знаю, что файл cookie поступает в браузер, потому что я вижу файл cookie в Firebug и проверяю, что тот же файл cookie был создан в папке / tmp.
Кажется, что SSL настроен правильно, потому что я получаю зеленый замок.
Это мой результат отладки после попытки входа в систему:
Данные отладки:
Запрос на запуск
POST /mediawiki/index.php?title=Special:UserLogin&action=submitlogin&type=login&returnto=Special:RecentChanges
- ЗАГОЛОВКИ HTTP:
- ВЕДУЩИЙ: bs-wiki.sis.org.cn
- ПОДКЛЮЧЕНИЕ: keep-alive
- ДЛИНА СОДЕРЖАНИЯ: 122
- CACHE-CONTROL: max-age = 0
- ПРИНЯТЬ: text / html, application / xhtml + xml, application / xml; q = 0.9, image / webp,/; q = 0,8
- ПРОИСХОЖДЕНИЕ: https://bs-wiki.sis.org.cn
- ЗАПРОСЫ НА ОБНОВЛЕНИЕ БЕЗОПАСНОСТИ: 1
- ПОЛЬЗОВАТЕЛЬСКИЙ АГЕНТ: Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit / 537.36 (KHTML, например Gecko) Chrome / 48.0.2564.97 Safari / 537.36
- КОНТЕНТ-ТИП: application / x-www-form-urlencoded
- DNT: 1
- РЕФЕРЕН: https://bs-wiki.sis.org.cn/mediawiki/index.php?title=Special:UserLogin&returnto=Special%3ARecentChanges&returntoquery=
- ПРИНЯТИЕ-КОДИРОВАНИЕ: gzip, deflate
- ACCEPT-LANGUAGE: en-US, en; q = 0,8
COOKIE: __gads = ID = f46767e352615a06: T = 1453974579: S = ALNI_MaImAtsIj8Xb-3kERZtmSWx82DxNA; bs_wikiUserName = Rpark1; bs_wikiLoggedOut = 20160128105049; bs_wiki_session = 3fck92pn1uq1l1s852oq6rfdl3
КЭШИ: SqlBagOStuff [основной] SqlBagOStuff [сообщение] SqlBagOStuff [парсер]
- Подключение к localhost bs_wiki ...
- Profiler :: instance вызывается без установки $ wgProfiler ['class'], в целях безопасности возвращается к ProfilerStub
- Подключен к localhost bs_wiki.
- Подключение к localhost bs_wiki ...
- Подключен к localhost bs_wiki.
- DatabaseBase :: query: Выполнено записи: УДАЛИТЬ ИЗ
objectcache
ГДЕ keyname = 'bs_wiki: stats: request_with_session'- LocalisationCache: использование хранилища LCStore_DB
- Отмена подстановки $ wgParser при вызове $ wgParser :: setFunctionHook из unknown
- Парсер: с использованием препроцессора: Preprocessor_DOM
- Полностью инициализирован
- Отмена подстановки $ wgAuth при вызове $ wgAuth :: validDomain из unknown
- IP: 172.18.12.59
- MessageCache :: load: Загрузка en ... получено из глобального кеша
- Удаление заглушки $ wgLang при вызове $ wgLang :: _ unstub из unknown
- MWCryptRand :: realGenerate: Генерация криптографических случайных байтов для LoginForm :: setLoginToken / MWCryptRand :: generateHex / MWCryptRand :: realGenerateHex / MWCryptRand :: generate / MWCryptRand :: realGenerate
- MWCryptRand :: realGenerate: openssl_random_pseudo_bytes сгенерировал 16 байтов сильной случайности.
- MWCryptRand :: realGenerate: 0 байтов случайности, оставшихся в буфере.
- Класс SkinVector не найден; пропущенная загрузка
- Класс PEAR_Error не найден; пропущенная загрузка
Понятия не имею, почему это работает сейчас, но начал с нуля и вернулся к исходным инструкциям на https://www.mediawiki.org/wiki/Manual:Preventing_access#Simple_private_wiki и теперь это работает.
Ну, не совсем с нуля, я не возвращал свои изменения в php.ini. Так что не уверен, исправил ли это это. В любом случае, сейчас он работает, и я счастлив .... :)
Basd82 в другом месте сообщает, что нужно установить session.referer_check = Off
в php.ini.
session_save_path("tmp")
точно не так, ваш каталог называется /tmp
. (Если вы следовали Совет JesseG17, вы забыли шаг 3.) Однако с $wgSessionsInObjectCache = true
в session.save_path
не должно иметь никакого значения.
У тебя есть $wgMainCacheType = CACHE_ANYTHING
, а вы проверяли, что кеш действительно работает? Следовать руководство по кешированию и установите соответствующее кэширование объектов (это всегда хорошая идея).
У меня была такая же проблема - здесь на сервере закончилось место на диске. Освободившееся место помогло.