• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:セッションが使えたり使えなかったりする)

レンタルサーバでセッションが使えない原因と解決方法

このQ&Aのポイント
  • レンタルサーバを使用している際に、セッションが使えたり使えなかったりする問題について調べました。セッションが使えなくなる原因として、サーバのメモリ不足が考えられます。共用のレンタルサーバでは、他のユーザーとメモリが競合することがあります。セッションが使えなくなると、PHPSESSIDがNULLになります。解決方法として、session.save_pathを変更し、サーバの領域ではなく、お客様の領域にセッションを保存するように設定することが挙げられます。
  • レンタルサーバを使用している際にセッションが使えなくなる原因として、サーバのメモリ不足が考えられます。共用のレンタルサーバでは、他のユーザーとメモリが競合することがあります。セッションが使えなくなると、PHPSESSIDがNULLになります。解決方法としては、session.save_pathを変更することが挙げられます。初期設定では、セッションはサーバのシステム領域に保存されますが、お客様領域に保存するよう設定を変更することで、定期的にクリアされることがなくなります。
  • レンタルサーバを使用している際にセッションが使えなくなる原因として、サーバのメモリ不足が考えられます。共用のレンタルサーバでは、他のユーザーとメモリが競合することがあります。セッションが使えなくなると、PHPSESSIDがNULLになります。解決方法としては、session.save_pathを変更することが挙げられます。初期設定では、セッションはサーバのシステム領域に保存されますが、お客様領域に保存するよう設定を変更することで、セッションがクリアされることがなくなります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

session.save_pathは、セッションの情報をサーバー側でどのディレクトリに保存するのかを設定する項目です。デフォルトだと/tmp等、サーバー全体で共有する領域に保存されるのですが、共用サーバーですのでいちユーザーがこれを使い尽くしてしまうとまずいですから定期的にクリアしているのでしょうね。 php.iniを各ディレクトリにという具体的な内容と、そのphp.iniにはsession.save_pathだけ書けばいいのか、通常のphp.iniに書く事全部書かなければならないのかはわからないのですが、session.save_pathは.htaccessでも変更は可能なようなので php_value session.save_path "ディレクトリ名" の1行を.htaccessに追加してあげたらいいと思います。ディレクトリ名ですが、自分のディレクトリの中にtmp等の名前のディレクトリを作って、パーミッションを777にしてあげれば良いと思います。 セッションが使える使えないですが、このケースではクライアントは関係ないと思います。セッションの設定によっては、cookieが使えないとダメとかSSLの時だけとか、そんな設定もできます。詳しくは参考ページを見て下さい。

参考URL:
http://www.php.net/manual/ja/ref.session.php
sakai3
質問者

お礼

なるほど。 セッションデータの保存フォルダを自分用に設定すれば他に影響されなくてすむわけですね。 ありがとうございます!

関連するQ&A