こちらの件に関連して。

[umbls] ログインできない不具合を修正しました。 - nplll


根本的な理由はさっぱり分からないのですが、なぜかさくらインターネットのサーバにてセッションが使用できなくなっていました。初めはプログラムのバグでログインできないんだと思って、自分が書いたコードやSymfonyの設定周りを洗っていたのですが、なんか何をどうやっても上手くいかない。それどころか、簡単なセッション処理のプログラムすら動かない。session_start()して、$_SESSIONを使って格納しただけなのに、保存されないのね。

コード例:

session_test.php:

<?php
session_start();

echo 'Welcome to page #1';

$_SESSION['time']     = time();
?>

session_test2.php:

<?php
session_start();

echo 'Welcome to page #2<br />';

echo date('Y m d H:i:s', $_SESSION['time']);  // 1970 01 01 09:00:00と表示されてしまう
?>


散々嵌ったのだけど、もしかして、と思って次のことを試してみたら直りました。


解決策:

  • php.iniにてsession.save_pathを明示的に指定(例:/home/user/tmp) ← 以前はno valueだった
  • 指定したディレクトリに書き込み権限を与える


こんなのこっちで変更するわけがないので、サーバの設定が変わったのかな(一時ディレクトリのパーミションが変わったとか)と思うけど、その辺はよくわかんないし、いやまさかそんなことしないだろうと思うので、やっぱり僕が何か設定を変更してしまったのかなぁ。レンタルサーバだけにその辺の線引きが微妙で、しかも記憶に無いどころか痕跡すら見当たらなくて凄く気持ち悪いのだけど。

あー気持ち悪い。