11

我遇到的问题是我无法登录到我使用 MediaWiki 创建的新创建的 wiki。我在网上搜索了答案,但我发现的答案对这个特定问题没有帮助(比如这个:mediawiki cookies 问题)我尝试了多个浏览器并更改了设置以确保启用 cookie,但是我不断收到同样的错误:

" Wiki 使用 cookie 登录用户。您已禁用 cookie。请启用它们并重试。 "

我不确定这是否是我当前版本的 PHP(当前为 5.3)或我的 wiki 中的设置的问题。

4

12 回答 12

10

我找到了解决方法,我将按步骤进行:

  1. 打开LocalSettings.php
  2. 转到页面底部,然后输入以下代码:session_save_path("tmp");
  3. tmp在您安装了 MediaWiki 的文件夹中创建一个名为的目录。
于 2013-04-21T16:18:24.710 回答
5

如果您使用的是 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后,完美运行。

于 2014-05-29T14:53:59.963 回答
3

Aaron Schulz也推荐的最简单的解决方案通常是设置

$wgSessionsInObjectCache = true;
$wgMainCacheType = CACHE_ANYTHING;

在你的LocalSettings.php. 在最近的 PHP 中,您将默认启用 OPcache;如果没有可用的加速器,最坏的情况是此配置将使用数据库。

另请参阅缓存文档。

于 2015-11-03T21:55:44.447 回答
2

我也有这个问题...

我所有的浏览器都在抱怨 cookie 被关闭了......

我认为已经实施了一个组策略来禁用 cookie。在与我的服务器支持团队协商没有实施任何此类操作后,我决定远程访问服务器。

服务器抱怨磁盘空间不足。我通过删除一些旧的不相关文件来清理磁盘。

尝试从我的浏览器再次登录,一切正常。

于 2015-01-30T10:35:36.037 回答
2

这里没有提到的一个答案 - 确保您的文件系统没有空间不足。

于 2015-06-25T16:56:58.770 回答
1

当使用 memcached 存储会话文件时,可能会发生同样的事情。在这种情况下,wiki 将无法在 /tmp 中写入 cookie。如果您在 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
于 2014-06-24T08:42:52.937 回答
0

成为根:

su -

然后编辑php.ini文件:

nano /etc/php5/apache2/php.ini

并将这些变量设置为 /tmp:

session.save_path = "/tmp"   
session.cookie_path = "/tmp"

您还可以更正权限以防万一:

chmod -R 1777 /tmp
于 2015-03-22T20:06:16.423 回答
0

刚刚在运行 IIS 的 Win2008 R2 服务器上遇到了这个问题,当创建用户时给出了这个(红色)消息:

帐户创建错误 未创建用户帐户,因为我们无法确认其来源。确保您已启用 cookie,重新加载此页面并重试。

此外,如果用户尝试登录 Wiki,他们会收到以下(红色)消息:

登录错误 (WikiName) 使用 cookie 登录用户。您已禁用 cookie。请启用它们并重试。

失败的尝试:

  • 我尝试了 JesseG17 的解决方案,但无法保存对 localsettings.php文件的更改(尽管停止了服务器)。
  • 我检查了临时位置的权限,但这没有帮助。
  • 我改变了尝试通过 IIS 的 PHP 管理器更改临时位置,但这并没有改变任何东西。

最终起作用的是使用 IIS 的 PHP 管理器来更改 MediaWiki 的 PHP 设置;session.use_cookies从 0 到 1

这解决了问题而无需重新启动。

于 2015-05-11T22:05:26.737 回答
0

我正在添加一个新答案,因为我的设置略有不同,并且我采取的步骤与其他人的步骤相似但并不完全相同。

我用 NGINX 在 CentOS 上安装了 MediaWiki。在成功运行了几个月后,我开始突然出现同样的 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
于 2016-04-18T21:49:37.987 回答
0

要检查的另一件事是您的会话 tmp 目录是否已满。症状是您的 http 服务器错误日志中的“写入失败”消息。呸!

于 2016-06-02T03:12:36.030 回答
0

我不得不取消注释 LocalSettings.php 中的 wgCookieSecure 设置:

#$wgCookieSecure=true;

只有在检查了同一台计算机上的另一个 wiki 在类似的设置下运行良好后才发现这一点。因此,要进行调试,您可能需要在邻居目录中安装一个新的 mediawiki 并检查这是否会给您带来任何麻烦。然后你可以通过这里的所有建议以及 https://www.mediawiki.org/wiki/Topic:Rg3w5u0e70fs8l4e上的建议

于 2016-11-16T19:03:10.543 回答
-1

$wgDisableCookieCheck = true;

在你的LocalSettings.php.

来源

于 2016-03-23T19:22:36.003 回答