Php 如何修复MediaWiki错误;Wiki使用cookies登录用户。您已禁用cookies。请启用它们并重试。”;?
我遇到的问题是,我无法登录到使用MediaWiki创建的新wiki。我在网上搜索了一个答案,但我找到的答案对这个特定问题没有帮助(比如这个:),我尝试了多个浏览器,并更改了设置以确保启用了cookie,但我一直收到相同的错误: “Wiki使用Cookie登录用户。您已禁用Cookie。请启用它们,然后重试。”Php 如何修复MediaWiki错误;Wiki使用cookies登录用户。您已禁用cookies。请启用它们并重试。”;?,php,cookies,mediawiki,wiki,Php,Cookies,Mediawiki,Wiki,我遇到的问题是,我无法登录到使用MediaWiki创建的新wiki。我在网上搜索了一个答案,但我找到的答案对这个特定问题没有帮助(比如这个:),我尝试了多个浏览器,并更改了设置以确保启用了cookie,但我一直收到相同的错误: “Wiki使用Cookie登录用户。您已禁用Cookie。请启用它们,然后重试。” 我不确定这是我当前版本的PHP(目前为5.3)的问题,还是我的wiki中的设置问题 我找到了一个解决方案,我将分步骤进行: 打开LocalSettings.php 转到页面底部,输入以下代
我不确定这是我当前版本的PHP(目前为5.3)的问题,还是我的wiki中的设置问题 我找到了一个解决方案,我将分步骤进行:
LocalSettings.php
session\u save\u path(“tmp”)代码>
tmp
的目录如果您使用的是NGINX+PHP-FPM,那么前面的答案可能无法解决您的问题 根据我的经验,这个问题是由于php fpm没有对cookie_路径的写访问权限造成的。您可以通过运行以下命令找到此路径:
php-fpm -i|grep --color cookie_path
查看cookie_路径是什么,然后统计文件夹并确保您的php fpm用户对其具有写访问权限
为了使用Nginx和Php-Fpm解决这个问题,我不得不将我的cookie\u路径从默认值/(说真的,为什么会是默认值?)更改为/tmp
重新启动nginx和php-fpm后,它工作得非常好。当使用memcached存储会话文件时,可能会发生同样的情况。在这种情况下,wiki将无法在/tmp中写入cookie。如果您在error.log中看到类似的内容 “未找到文件(11211:9001/QWEQWEQWEQE)”这意味着您已经安装并配置了memchached,需要在LocalSettings.php中追加以下行:
$wgMainCacheType = CACHE_MEMCACHED;
$wgParserCacheType = CACHE_MEMCACHED; # optional
$wgMessageCacheType = CACHE_MEMCACHED; # optional
$wgMemCachedServers = array( "127.0.0.1:11211" );
$wgSessionsInMemcached = true; # optional
我也有这个问题 我所有的浏览器都在抱怨cookies被关闭 我认为已经实施了一个组策略来禁用cookie。 在与我的服务器支持团队协商后,我决定远程访问服务器 服务器抱怨磁盘空间不足。 我通过删除一些不相关的旧文件来清理磁盘 尝试从我的浏览器再次登录,一切正常。成为root用户:
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登录用户。你有饼干吗 残废请启用它们,然后重试 失败的尝试:
- 我尝试了JesseG17的解决方案,但无法保存对
文件(尽管已停止服务器)localsettings.php
- 我检查了临时位置的权限,但没有帮助
- 我尝试通过IIS的PHP管理器更改临时位置,但是 这没有改变任何事情
这在不重新启动的情况下解决了问题。这里没有提到的一个答案-确保您的文件系统没有空间。最简单的解决方案通常是设置
$wgSessionsInObjectCache = true;
$wgMainCacheType = CACHE_ANYTHING;
在您的LocalSettings.php
中。在最近的PHP中,您将默认启用OPcache;如果没有可用的加速器,最坏情况下,此配置将使用数据库
另请参阅文档。Put
$wgDisableCookieCheck=true;
在您的LocalSettings.php
中
()我添加了一个新答案,因为我的设置稍有不同,我采取的步骤与其他人相似,但并不完全相同 我用NGINX在CentOS上安装了MediaWiki。在成功运行了几个月之后,我突然发现了同样的cookie错误 我遇到的问题是php fpm用户无法访问
session.save_path
文件夹。我不知道为什么会这样,但现在我把它修好了
我运行了的一个变体命令,以确定会话的存储位置:
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设置的注释:
$wgMainCacheType = CACHE_MEMCACHED;
$wgParserCacheType = CACHE_MEMCACHED; # optional
$wgMessageCacheType = CACHE_MEMCACHED; # optional
$wgMemCachedServers = array( "127.0.0.1:11211" );
$wgSessionsInMemcached = true; # optional
#$wgCookieSecure=true代码>
只有在检查同一台计算机上的另一个wiki在类似设置下运行正常后,才发现此问题。因此,要进行调试,您可能需要在相邻目录中安装一个新的mediawiki,并检查这是否会给您带来任何麻烦。然后你可以浏览这里的所有建议,也可以浏览网站上的建议
使用并查看cookie是否从服务器发送到浏览器。如果没有-您的服务器有问题。在任何一种情况下,请用调查结果更新您的问题。如果发生这种情况,我如何知道?查看回答并查看是否设置了Cookie标题。您使用的浏览器是什么?您尝试过其他浏览器吗?您是在本地计算机上运行MW,还是在远程主机上运行MW?您和web服务器之间是否存在任何可能剥离Cookie的内容?正如我所说,我使用了多种浏览器。我尝试了Chrome、Safari、Firefox和e