sessionのエラーを解決する方法 session_start()とsession_name()
ある日突然、sessionエラーがでる
今まで使えていたはずのphpファイルが突然、使えなくなりました。
ロリポップのユーザー専用ページでエラー表示させると、 以下のようなエラーメッセージが出ました。
PHP Warning: session_start(): open(XXXXXXXX, O_RDWR)
failed: Permission denied (13) in /xxxxx.php on line 8
PHP Warning: session_start(): Failed to read session data:~
Permissionがどうやら問題ありそうで、 セッションデータが読み込めないらしい。
いろいろググる
いろいろ調べると、Permissionの変更方法や、 session_save_path()を変更するなど、いろいろ出てきます。
PHP のセッション処理でエラーになる - EZ-NET 【PHP】XSERVERでセッションを開始するとエラーになる ... 【php】session_start()でエラー
ターミナルを開いて、慣れない黒い画面に向き合ってPermissionを変更しようとしても、 権限がないといわれ、session_save_path()を変えようとしても、そんなフォルダは存在しないとか。 いろいろ試してみるも、全くページは動いてくれません😿 もはや自分の力では無理かとあきらめかけた時、何とか動かすことができました。
今回の解決方法
ひとつのサーバーに2つのドメイン、さらにいくつかのディレクトリでsessionを開始していたために エラーが出たのではないかと考えられます。
以下のように、session_start();を宣言する前に、 session_name("xxxxx"); (任意で名前をつける)をしていすることにより、 別々のsessionをそれぞれのページで開始することができるようです。
session_name("xxxxx");
session_start();