Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel会话文件未从framework/sessions文件夹中清理_Php_Laravel_Session_Ovh - Fatal编程技术网

Php Laravel会话文件未从framework/sessions文件夹中清理

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], 我的文件夹

我在一台共享主机(OVH pro)上,在生产环境(PHP7.0.5)中使用Laravel5.2

我使用的是文件会话驱动程序,在我以前的主机上(使用同一个应用程序)一切正常,但自从我移动到OVH后,会话文件一直在创建,PHP垃圾收集从未删除。 我必须手动删除文件(每天创建5000多个文件)

我的
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

中时是否被删除。首先,您可以找到问题所在

  • 确保每个页面中的会话ID都是固定的(回显会话ID)
  • 如果每个页面都更改了会话id,则需要检查会话配置 域设置正确

    如果会话id没有更改,可能需要将存储文件夹premision更改为777


    我希望这能帮助你

    > P >如果使用<代码> HAXPROSS,请考虑这个答案:

    会话文件可以由haproxy的http健康检查创建

  • 检查您的web访问日志以进行固定间隔访问
  • 111.11.111.1---[28/Jul/2016:10:40:30-0400]200“GET/HTTP/1.0”4“-”

    111.11.111.1---[28/Jul/2016:10:40:32-0400]200“GET/HTTP/1.0”4“-”

    111.11.111.1---[28/Jul/2016:10:40:34-0400]200“GET/HTTP/1.0”4“-”

  • 更新
    选项httpchk GET/
    以指向一些
    路由
    ,您可以在
    haproxy.cfg
    上将会话驱动程序设置为
    array

  • 添加
    Config::set('session.driver','array')行以禁用会话文件的创建


  • 参考:


    转到
    配置/session
    并设置
    'life'=>120
    ,或者设置一个不太大的数字,这是会话持续时间的分钟数

    尝试在注销方法session::flush()中添加此值;这很聪明,但大多数人只是在不注销的情况下离开网站,我只会保存一打文件…你就不能这样安排吗?我知道调度cron作业不是我的计划中的最佳解决方案,但这是我的第二个大问题>