Ответ 1
Я нашел исправление, я положу его:
- Открыть
LocalSettings.php
- Перейдите в нижнюю часть страницы и введите следующий код:
session_save_path("tmp");
- Создайте каталог с именем
tmp
в папке, где установлен MediaWiki.
Проблема, с которой я столкнулась, заключается в том, что я не могу войти в мою недавно созданную вики, которую я создал с помощью MediaWiki. Я искал в Интернете ответ, и те, что я нашел, не помогли решить эту проблему (например, эта проблема: с куки файлами cookie). Я попытался с несколькими браузеров и изменили настройку, чтобы убедиться, что файлы cookie включены, но я продолжаю получать ту же ошибку:
"Wiki использует файлы cookie для входа в систему. У вас отключены файлы cookie. Включите их и повторите попытку."
Я не уверен, что это проблема с моей текущей версией PHP, которая в настоящее время является 5.3, или настройкой в моей вики.
Я нашел исправление, я положу его:
LocalSettings.php
session_save_path("tmp");
tmp
в папке, где установлен MediaWiki.Если вы используете NGINX + PHP-FPM, предыдущие ответы скорее всего не помогут решить вашу проблему.
Из моего опыта эта проблема возникает, когда php-fpm не имеет права на запись в файл cookie_path. Вы можете найти этот путь, выполнив:
php-fpm -i|grep --color cookie_path
Посмотрите, что такое ваш cookie_path, затем скопируйте папку и убедитесь, что пользователь php-fpm имеет к ней доступ на запись.
Чтобы решить эту проблему с помощью Nginx и Php-Fpm, мне пришлось изменить свой cookie_path с его по умолчанию/(серьезно, почему это будет по умолчанию?) в /tmp.
После перезапуска nginx и php-fpm он отлично работает.
Самое простое решение, также рекомендованное Аароном Шульцем, обычно устанавливает
$wgSessionsInObjectCache = true;
$wgMainCacheType = CACHE_ANYTHING;
в LocalSettings.php
. В недавнем PHP у вас будет включен OPcache по умолчанию; если ускоритель недоступен, в худшем случае эта конфигурация будет использовать базу данных.
См. также cache документация.
У меня также была эта проблема...
Все мои браузеры жаловались на то, что файлы cookie отключены.
Я сделал групповую политику для отключения файлов cookie. После встречи с моей командой поддержки сервера, что ничто так не было реализовано, я решил удаленно на сервер.
Сервер жаловался на низкое дисковое пространство. Я очистил диск, удалив некоторые старые несвязанные файлы.
Пытался снова войти в систему из моего браузера, и все было нормально.
Один ответ, который не упоминался здесь, - убедитесь, что ваша файловая система не находится вне места.
то же самое может случиться, когда memcached используется для хранения файлов сеанса. в этом случае wiki не сможет писать файлы cookie ни в/в/tmp. если вы видите в error.log что-то вроде "файл не найден (11211: 9001/qweqweqweqweqe)", это означает, что у вас есть memchached, установленный и настроенный, и вам нужно добавить следующие строки в LocalSettings.php:
$wgMainCacheType = CACHE_MEMCACHED;
$wgParserCacheType = CACHE_MEMCACHED; # optional
$wgMessageCacheType = CACHE_MEMCACHED; # optional
$wgMemCachedServers = array( "127.0.0.1:11211" );
$wgSessionsInMemcached = true; # optional
Будь root:
su -
Затем отредактируйте файл php.ini
:
nano /etc/php5/apache2/php.ini
И установите эти переменные в /tmp:
session.save_path = "/tmp"
session.cookie_path = "/tmp"
Вы также можете исправить разрешения на всякий случай:
chmod -R 1777 /tmp
Просто столкнулся с этой проблемой на сервере Win2008 R2, на котором запущен IIS, при создании пользователя дал этот (красный) msg:
Ошибка создания учетной записи. Учетная запись пользователя не была создана, так как мы могли не подтверждают его источник. Убедитесь, что вы включили файлы cookie, перезагрузите и повторите попытку.
Также, если пользователь попытался войти в Wiki, он получит этот (красный) msg:
Ошибка входа (WikiName) использует файлы cookie для входа в систему. У вас есть файлы cookie отключен. Включите их и повторите попытку.
Неудачные попытки:
localsettings.php
(несмотря на остановку сервера).Что в конечном итоге работало с менеджером IIS PHP для изменения
Настройки PHP MediaWiki; session.use_cookies
от 0 до 1
Это решило проблему без перезагрузки.
Я добавляю новый ответ, потому что моя настройка немного отличалась, и шаги, которые я сделал, были похожи, но не идентичны всем остальным.
Я установил MediaWiki на CentOS с NGINX. После успешного запуска в течение нескольких месяцев я начал получать ту же самую ошибку cookie из ниоткуда.
Проблема была в том, что у пользователя php-fpm не было доступа к папке session.save_path
. Я не знаю, почему это произошло, но теперь я исправил его.
Я выполнил вариант SprintCycle команды, чтобы определить, где были сохранены сеансы:
php-fpm -i|grep --color save_path
В моем случае это было /var/lib/php/session
.
Затем я изменил каталоги и установил разрешения:
cd /var/lib/php
chmod -R 1777 session
Я перезапустил службы, и все снова работало.
service nginx restart
service php-fpm restart
Еще одна вещь, которую нужно проверить, - это полный каталог tmp для сеанса. Симптомы - сообщения с ошибкой "запись не удались" в журнале ошибок HTTP-сервера. Duh!
Мне пришлось раскомментировать настройку wgCookieSecure в LocalSettings.php:
#$wgCookieSecure=true;
нашел это только после того, как проверил, что другая вики на том же компьютере просто отлично работает с аналогичными настройками. Поэтому для отладки вы можете захотеть установить новую медиавику в соседнем каталоге и проверить, не дает ли вам никаких проблем. Тогда вы можете пройти все предложения здесь, а также https://www.mediawiki.org/wiki/Topic:Rg3w5u0e70fs8l4e
Помещенный
$wgDisableCookieCheck = true;
в LocalSettings.php
.
(источник)