何らかの理由でタイトルの状態として、私のSymfony 2.5アプリケーションは、すべてのphp.iniファイルに以下が含まれている場合でも、PHPガベージコレクターを呼び出しています。
session.gc_probability = 0
誰もこれを防ぐ方法を知っていますか?
エラーメッセージim getting:
Notice: SessionHandler::gc(): ps_files_cleanup_dir: opendir(/var/lib/php5)
failed: Permission denied (13) in /<path-to-my-site>/var/cache/dev/classes.php line 432
PHPINFO()から:
Directive Local Value Master Value
session.gc_divisor 1000 1000
session.gc_maxlifetime 86400 86400
session.gc_probability 0 0
私は、www-dataユーザーに/var/lib/php5
フォルダまたはsession.save_path
どこかにwww-data
ユーザーは既にアクセスできますが、無効にする必要があるときにこのプロセスが呼び出される理由を知りたいです。
私はそれを見つけました、app_dev.php
を使用するとき、symfonyの最新バージョンはデフォルトでこれを上書きしていると思います。 Symfony FrameworkBundleはsession.gc_probability = 1
を設定しています。
ただし、一部のオペレーティングシステムは独自のセッション処理を行い、session.gc_probability変数を0に設定してPHPガベージコレクションを実行します。Symfonyはこの値を1に上書きするようになりました。
Php.iniで設定された元の値を使用する場合は、次の構成を追加します。
# config.yml
framework:
session:
gc_probability: null
これを変更するには、次をconfig.yml
に追加します
framework:
session:
gc_probability: 0
次に、devキャッシュをクリアします
php app/console cache:clear
これは、gc_probability
がデフォルトで1
になっていることを示しています。なぜphp.iniの設定を読んでいないのかわからない。
http://symfony.com/doc/2.5/reference/configuration/framework.html#gc-probability
セッションのパスを手動で設定できます。 sessionsディレクトリのSymfony doc を参照してください。
# app/config/config.yml
framework:
session:
handler_id: session.handler.native_file
save_path: '%kernel.root_dir%/sessions'