Php Laravel会话文件未从framework/sessions文件夹中清理
我在一台共享主机(OVH pro)上,在生产环境(PHP7.0.5)中使用Laravel5.2 我使用的是文件会话驱动程序,在我以前的主机上(使用同一个应用程序)一切正常,但自从我移动到OVH后,会话文件一直在创建,PHP垃圾收集从未删除。 我必须手动删除文件(每天创建5000多个文件) 我的Php Laravel会话文件未从framework/sessions文件夹中清理,php,laravel,session,ovh,Php,Laravel,Session,Ovh,我在一台共享主机(OVH pro)上,在生产环境(PHP7.0.5)中使用Laravel5.2 我使用的是文件会话驱动程序,在我以前的主机上(使用同一个应用程序)一切正常,但自从我移动到OVH后,会话文件一直在创建,PHP垃圾收集从未删除。 我必须手动删除文件(每天创建5000多个文件) 我的config/session.php文件设置正确: 'driver' => 'file', 'lifetime' => 120, 'lottery' => [2, 100], 我的文件夹
config/session.php
文件设置正确:
'driver' => 'file',
'lifetime' => 120,
'lottery' => [2, 100],
我的文件夹storage
,storage/framework
,storage/framework/sessions
都设置了0755权限
我还通过将这两行放在config/session.php
ini_set('session.gc_probability', '5');
ini_set('session.gc_divisor', '100');
从phpinfo()
返回的内容来看,它似乎工作正常:
我联系了我的主机,但他们告诉我这一定与我的Laravel应用程序有关,他们帮不上忙
编辑:我的会话工作正常,我的意思是每个访问者只创建一个文件。问题只是会话文件没有得到清理,即使有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上使用多站点,包含每个站点的文件夹放在我的OVH主机的路径上,而不是默认的www
文件夹中
出于安全原因,我这样做是因为www
文件夹是通过my昵称.cluster005.ovh.net
公开的,我不希望我的任何网站从
my昵称.cluster005.ovh.net/site1
my昵称.cluster005.ovh.net/site2
(www\site1
,www\site2
…)
所以我在想,可能只有
www
文件夹中的文件才是可写的,而外部的文件(在根目录下)可能不是?这可以解释为什么我的文件没有被删除。今晚我将做一个测试,看看文件放在www\site1\storage\sessions
中时是否被删除。首先,您可以找到问题所在
我希望这能帮助你 > P >如果使用<代码> HAXPROSS,请考虑这个答案: 会话文件可以由haproxy的http健康检查创建
选项httpchk GET/
以指向一些路由
,您可以在haproxy.cfg
上将会话驱动程序设置为array
Config::set('session.driver','array')代码>行以禁用会话文件的创建
参考:
配置/session
并设置'life'=>120
,或者设置一个不太大的数字,这是会话持续时间的分钟数尝试在注销方法session::flush()中添加此值;这很聪明,但大多数人只是在不注销的情况下离开网站,我只会保存一打文件…你就不能这样安排吗?我知道调度cron作业不是我的计划中的最佳解决方案,但这是我的第二个大问题>