【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');
}
ログインを長くしてみました。 | minoru-works.org 2010年11月10日 00:24
[…] https://www.softel.co.jp/blogs/tech/archives/2175 カテゴリー: 未分類 パーマリンク ← […]