2016-08-25 3 views
1

私のphp.iniの私は、次のセットがあります。設定session_set_save_handlerのみ

session.save_handler = redis 
session.save_path = "tcp://localhost:6379?weight=1" 

をしかし、私はそれを使用してこのシステムイムで動作するように、そのセットを維持したいが、私は作成しようとする唯一のものですセッションそれは私にエラーを与える..ポイントを出る。

問題は、私のlogin.phpのファイルとして保存ハンドラを設定しようとしていて、その後にredisを使用しています。

私は自分のファイルに次のコードが、ファイルへのRedisからdoesntの変更があります

session_set_save_handler('files'); 
session_save_path("/tmp/"); 
session_start(); // Starting Session 
+0

何か問題がありますか? –

+0

'警告:不明:セッションデータの書き込みに失敗しました(redis)。 0行目の不明でsession.save_pathの現在の設定が正しいことを確認してください。(0120)/ – irishwill200

+0

私はすべてのsave_handlerをファイルとして作成しますが、これは動作しますが、 。私のログインシステムでセッションを設定しようとすると、このセッションの問題とは別に、Redisは私にとって完璧に動作します。だから、ログインのためだけにファイルを再度使用しようとしています。 – irishwill200

答えて

3

session_set_save_handler functionが正確にsession.set_handler configurationディレクティブと同じことをしません。前者は最初の引数としてcallable typeを想定していますが、後者はPHPで登録されたハンドラの1つとしてスカラー値を期待しています。

あなたがしたいのは、ini_set('session.save_handler', 'files')です。

redisセッションハンドラにsession.save_pathを設定する場合は、DNSリゾルバで直接解決できないホスト名を使用しないでください。それはのようなものは、localhostのようなものです。代わりに、redisが直接リッスンしているIPアドレス(127.0.0.1など)を使用してみてください。その理由は、ホスト名を解決するときにPHPが/etc/hostsを直接参照しようとしないためです。

+0

助けてくれてありがとう!感謝します。 – irishwill200

関連する問題