SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

【OpenPNE】openpne3.4でセッション時間を長くしたい(短くて困っている)

設定ファイル(YAMLファイル *.yml)で変更できるようになったのは3.5から。

では3.4ではできないのか?

やってみた

OpenPNE.yml ではできないようだが、config/ProjectConfiguration.class.php を編集すれば何とかなりそう。

1、セッションは長持ちするように設定する

2、OpenPNE側でもタイムアウト時間を持っているので、そちらも設定する

class ProjectConfiguration extends opProjectConfiguration
{
  public function setupProjectOpenPNE()
  {
    // You can write your own configurations
    //(ここに設定を書いてよいと書いてあるので書くことにする)

    //他のサイトも稼動しているサーバーだったら、OpenPNE専用のセッション保存ディレクトリを指定
    ini_set('session.save_path', '/セッション/保存用/ディレクトリ');

    //セッションを2週間ぐらい保存する
    ini_set('session.gc_maxlifetime', 1209600);

    //セッションクッキーの有効期限も2週間にする
    session_set_cookie_params(1209600);

    //OpenPNE側のタイムアウト時間も長くする
    //だめ:timeoutだけ設定すると他の項目が消えてしまった
    //sfConfig::set('sf_factory_user_parameters', array('timeout' => 1209600));
    //こうする
    sfConfig::set('sf_factory_user_parameters', array('timeout' => 1209600, 'logging' => '', 'use_flash' => true, 'default_culture' => 'ja_JP'));

  }
... 以下略

ini_set()している項目は、.htaccessに書いてもよい。

php_value session.gc_maxlifetime 432000
php_value session.save_path /path/to/session/save/path

なお、単純にセッションの有効期限を長くするのはセキュリティの面でよいとはいえないので、可能ならバージョンアップするのがよいと思います。

関連するメモ

コメント(4)

ぱぴよん 2010年8月28日 01:14

この記事のような設定を行ってセッションのタイムアウトは確かに長くなったのですが、ログイン画面が英語になってしまいました。設定箇所を削除すると日本語に戻ります。
対策ありますでしょうか?

yoshimura 2010年8月29日 12:20

ご指摘ありがとうございます。
デフォルトの言語が英語になってしまう問題がありました。
修正しました。

【OpenPNE】openpne3.4でセッション時間を長くしたい(その2) at softelメモ 2010年8月29日 22:51

[…] config/ProjectConfiguration.class.php で対応はできるが、他には方法はないのか? […]

タイムアウト時間について « 12net.jp 2011年4月14日 13:39

[…] このソースを直接編集してみると、確かにタイムアウトするまでの時間は変更できるのですが、キャッシュなので定期的に更新されるようです。 このタイムアウト時間を正しく変更するには、/apps/pc_frontend/config/factories.ymlを修正する必要があるようです。 参考)【OpenPNE】openpne3.4でセッション時間を長くしたい(短くて困っている) […]