SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【OpenPNE】openpne3.4でセッション時間を長くしたい(その2)

問題

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

3.4ではどうする?

config/ProjectConfiguration.class.php で対応はできるが、*.ymlだけで設定できるような方法はないのか?

また やってみた

(3.4にこだわりたいわけではないのですが、やってみたかったので…)

OpenPNE側というか、OpenPNE3が使用しているフレームワークsymfonyのユーザーのログインのタイムアウトの設定をする。

openpne3/apps/pc_frontend/config/factories.yml を編集。

このあたりを変更。

#  user:
#    class: myUser
#    param:
#      timeout:         1800
#      logging:         %SF_LOGGING_ENABLED%
#      use_flash:       true
#      default_culture: %SF_DEFAULT_CULTURE%

  storage:
    class: sfSessionStorage
    param:
      session_name: OpenPNE_pc_frontend

userのセクションのコメントをはずして、timeoutを指定、session_cookie_lifetimeを指定する行を追加。タイムアウトを2週間にしたいときは1209600秒を設定。

  user:
    class: myUser
    param:
      timeout:         1209600
      logging:         %SF_LOGGING_ENABLED%
      use_flash:       true
      default_culture: %SF_DEFAULT_CULTURE%

  storage:
    class: sfSessionStorage
    param:
      session_name: OpenPNE_pc_frontend
      session_cookie_lifetime: 1209600

設定を変えたら、symfonyではキャッシュをクリアするのが手順とのこと。キャッシュをクリアするコマンドがあるが、コマンドでなくとも、手でキャッシュを消せばよい。OpenPNEをインストールしたディレクトリのすぐ下のcacheディレクトリの中身を全部削除して空にする(キャッシュはOpenPNEにアクセスするとまた作られる)。

phpを書かないで対応可能でした。symfonyを普段使っている方にはごく普通のことなのかもしれません。

注意

なお、OpenPNE以外のphpのシステムが稼動している場合は、OpenPNE用のセッションの保存場所を作る。他のスクリプトのガベージコレクションに巻き込まれるため。

.htaccessなどで設定可能。

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

config/ProjectConfiguration.class.php に書いてもよい。

class ProjectConfiguration extends opProjectConfiguration
{
  public function setupProjectOpenPNE()
  {
    // You can write your own configurations
    ini_set('session.save_path', '/path/to/session/save/path');
  }

関連するメモ

コメント(1)

ログインを長くしてみました。 | minoru-works.org 2010年11月10日 00:24

[…] https://www.softel.co.jp/blogs/tech/archives/2175 カテゴリー: 未分類   パーマリンク ← […]