PHPがセッションIDを発行しなくなった
突然PHPのsession_id()
が空白を返すようになってしまった
もちろん本当に「突然」なのではなく、何かいじってしまったからですが。
PHPのセッション情報は、デフォルトではファイルに保存される
ので、そのファイルの読み書きができなければセッションIDも発行されません。
phpinfo();
でセッションの項目を確認。
session.save_handler
がfiles
の場合、
session.save_path
に設定されているディレクトリに読み書きの権限があるかを確認。
なぜそんなことになったのかの推測(自分メモ)
対象ディレクトリのユーザーがroot、グループがapacheになっていた。
当該サーバではApacheではなくNginxを使っているので、グループがapacheなのはおかしいようにも思える。
おかしくなる直前に、PHPの追加モジュールを入れたりしていたので、そこでパーミッションをいじってしまったか、グループがapacheに変わってしまったのかもしれない。