私は、本番環境(PHP 7.0.5)でLaravel 5.2を使用する共有ホスト(OVHプロ)を使用しています。
ファイル セッション ドライバーを使用しており、以前のホスト (同じアプリ) ではすべて正常に動作していましたが、OVH に移行してから、セッション ファイルが作成され続け、PHP ガベージ コレクションによって削除されることはありません。ファイルを手動で消去する必要があります ( 1 日あたり 5000 以上のファイルが作成されます)。
私のconfig/session.php
ファイルは正しく設定されています:
'driver' => 'file',
'lifetime' => 120,
'lottery' => [2, 100],
そして、私のフォルダ、、storage
はすべて 0755 パーミッションで設定されています。storage/framework
storage/framework/sessions
また、これらの 2 行を先頭に配置して、 php.iniをオーバーライドします。config/session.php
ini_set('session.gc_probability', '5');
ini_set('session.gc_divisor', '100');
phpinfo()
返さ
れるものからうまく機能しているようです:
ホストに連絡しましたが、Laravel アプリに関係しているとのことで、どうすることもできません。
編集:私のセッションは正常に動作します。つまり、訪問者ごとに作成されるファイルは 1 つだけです。問題は、777 パーミッションがあっても、セッション ファイルがクリーンアップされないという事実だけです。
Laravel セッションの宝くじを 100/100 に設定しても、ファイルはまだ削除されません。
/*
|--------------------------------------------------------------------------
| Session Sweeping Lottery
|--------------------------------------------------------------------------
|
| Some session drivers must manually sweep their storage location to get
| rid of old sessions from storage. Here are the chances that it will
| happen on a given request. By default, the odds are 2 out of 100.
|
*/
'lottery' => [100, 100],
編集: OVH ホスティングの詳細: OVH でマルチサイトを使用しており、各サイトを含むフォルダーは、既定のwww
フォルダーではなく、OVH ホストのルートに配置されています。
セキュリティ上の理由から、www
フォルダーは公開されてmynickname.cluster005.ovh.net
おり、自分のサイトを公開したくないためです。
mynickname.cluster005.ovh.net/site1
mynickname.cluster005.ovh.net/site2
...
( www\site1
、www\site2
...)。
だから、www
フォルダ内にあるファイルだけが書き込み可能で、外側(ルート)のファイルではないのではないかと考えていましたか? 私のファイルが削除されていない間、それは説明するでしょう。に配置したときにファイルが削除されるかどうかを今夜テストしますwww\site1\storage\sessions
。