2009-07-18 7 views
5

ユーザがWikiにログインすると、次のエラーメッセージが表示されます。「このWikiはCookieを使用してユーザにログインしていますが、Cookieは無効になっています。エラーが表示されるにもかかわらず、ユーザーは実際にログインしていて、通常どおり編集することができます。ユーザーが見ていない場合は密接に彼らがログインしているし、それは誰もが私にヒントを与える場合、私は喜んでいるだろう混乱を引き起こして伝えることができないmediawiki cookiesの問題

答えて

12

ウィキメディアのアドバイスは

Check to make sure PHP's directory for storing session data is writable. This directory can be found in the php.ini file under the session.save_path setting. Errors in this php.ini setting can also cause other problems.

... (and) make sure the Internet Guest Account (eg. IUSR_FOOBAR, nobody, or apache) has write permissions to the folder listed in the session.save_path variable of the php.ini file.

Source.

であるあなたの場合あなたのPHPスクリプト設定(php.ini)を編集する必要があるホスティングサイトを使用しています。ページには、Webドキュメントのルートに関する情報が必要です。すでに "tmp"フォルダが作成されている場合は、それを使用します。現在の設定にtmpフォルダがない場合は、ユーザが参照できないものを作成し、上記のようにphp.iniファイルにその場所を伝えます。

+0

これは私の問題でした: "*(そして)インターネットゲストアカウント(例えばIUSR_FOOBAR、誰も、またはapache)がphpの' session.save_path'変数にリストされているフォルダへの書き込み権限を持っていることを確認してください.iniファイル。 "" – Geremia

7

今後の参考として、Appropediaで同様の問題が発生しました(同じエラーですが、ログインできませんでした)。 tempディレクトリがいっぱいだったことが判明しました。一時ディレクトリをクリアし、問題を解決しました。

3

It turned out the temp directory was full

私のケースでは、パーティション全体がいっぱいだったために、より多くのスペースが必要だったからです。

+0

ありがとう、私は同じ問題を抱えている – snow8261

0

問題私は、PHPセッションやその他のデータのベースフォルダとして、C:\ windows \ tempを使用してPHPをデフォルトでインストールしていただけです。もちろん

は、一度誰かがジャンクのその完全なので、一時フォルダを空にする.... PHP情報のサブフォルダもそれで行く:

-1

\あなたはnginxの+ PHP-FPMを使用している場合以前の回答はおそらく役に立たないでしょう。コマンドラインから

、実行します。

のphp-FPM -iを| grepを--color cookie_path

は、あなたのcookie_pathが何であるかを参照してください、その後、フォルダをstatをし、あなたのphp-FPMユーザーが書き込みアクセス権を持っていることを確認それに。

NginxとPhp-Fpmを使用してこの問題を解決するには、cookie_pathをデフォルトから/(真剣に、これがデフォルトになるのはなぜですか?)/ tmpに変更する必要がありました。

nginxとphp-fpmを再起動すると、完全に動作します。

+0

私はlighttpdとphp-fpmを使用していて、他の答えは私のためには機能しませんでしたが、この答えにはエラーがあります:session.cookie_pathはセッションクッキー、i。 e。そのセッションに適用されるWebサイトの「一部」になります。ファイルシステム上では、セッションサーバのデータが格納される場所ではありません。 –

+0

あなたが怒っているので私のコメントをdownvotingの代わりに、あなたが得ているようないくつかの情報を投稿したいですか? あなたはunixパスの代わりにURLを使用しているように聞こえるので、エラーは自分の過失であると聞こえ、私の説明とは関係ありません。セッションパスはUNIXパスであり、決してURLではありません。セッションはファイルシステム上に存在しなければなりません。 – DevOops

+0

PHP.netから: session.cookie_path文字列 session.cookie_pathは、セッションCookieに設定するパスを指定します。/がデフォルトです。 session_get_cookie_params()およびsession_set_cookie_params()も参照してください。 – DevOops