我遇到的问题是我无法登录到我使用 MediaWiki 创建的新创建的 wiki。我在网上搜索了答案,但我发现的答案对这个特定问题没有帮助(比如这个:mediawiki cookies 问题)我尝试了多个浏览器并更改了设置以确保启用 cookie,但是我不断收到同样的错误:
" Wiki 使用 cookie 登录用户。您已禁用 cookie。请启用它们并重试。 "
我不确定这是否是我当前版本的 PHP(当前为 5.3)或我的 wiki 中的设置的问题。
我遇到的问题是我无法登录到我使用 MediaWiki 创建的新创建的 wiki。我在网上搜索了答案,但我发现的答案对这个特定问题没有帮助(比如这个:mediawiki cookies 问题)我尝试了多个浏览器并更改了设置以确保启用 cookie,但是我不断收到同样的错误:
" Wiki 使用 cookie 登录用户。您已禁用 cookie。请启用它们并重试。 "
我不确定这是否是我当前版本的 PHP(当前为 5.3)或我的 wiki 中的设置的问题。
我找到了解决方法,我将按步骤进行:
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后,完美运行。
我也有这个问题...
我所有的浏览器都在抱怨 cookie 被关闭了......
我认为已经实施了一个组策略来禁用 cookie。在与我的服务器支持团队协商没有实施任何此类操作后,我决定远程访问服务器。
服务器抱怨磁盘空间不足。我通过删除一些旧的不相关文件来清理磁盘。
尝试从我的浏览器再次登录,一切正常。
这里没有提到的一个答案 - 确保您的文件系统没有空间不足。
当使用 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
成为根:
su -
然后编辑php.ini
文件:
nano /etc/php5/apache2/php.ini
并将这些变量设置为 /tmp:
session.save_path = "/tmp"
session.cookie_path = "/tmp"
您还可以更正权限以防万一:
chmod -R 1777 /tmp
刚刚在运行 IIS 的 Win2008 R2 服务器上遇到了这个问题,当创建用户时给出了这个(红色)消息:
帐户创建错误 未创建用户帐户,因为我们无法确认其来源。确保您已启用 cookie,重新加载此页面并重试。
此外,如果用户尝试登录 Wiki,他们会收到以下(红色)消息:
登录错误 (WikiName) 使用 cookie 登录用户。您已禁用 cookie。请启用它们并重试。
失败的尝试:
localsettings.php
文件的更改(尽管停止了服务器)。最终起作用的是使用 IIS 的 PHP 管理器来更改 MediaWiki 的 PHP 设置;session.use_cookies
从 0 到 1
这解决了问题而无需重新启动。
我正在添加一个新答案,因为我的设置略有不同,并且我采取的步骤与其他人的步骤相似但并不完全相同。
我用 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
要检查的另一件事是您的会话 tmp 目录是否已满。症状是您的 http 服务器错误日志中的“写入失败”消息。呸!
我不得不取消注释 LocalSettings.php 中的 wgCookieSecure 设置:
#$wgCookieSecure=true;
只有在检查了同一台计算机上的另一个 wiki 在类似的设置下运行良好后才发现这一点。因此,要进行调试,您可能需要在邻居目录中安装一个新的 mediawiki 并检查这是否会给您带来任何麻烦。然后你可以通过这里的所有建议以及 https://www.mediawiki.org/wiki/Topic:Rg3w5u0e70fs8l4e上的建议