• laravel的session存储流程及容易遇到的坑、git版本管理 .gitignore不起作用的解决办法、ucloud重装系统磁盘问题


    一、laravel的session存储流程及容易遇到的坑

      1、背景

    
    $data = $request->session()->get('key2');
    dump($data);
    $request->session()->put('key2', time());
    dd($request->session()->get('key2'));
    

       执行以上代码你会发现,无论如何刷新效果如下
          
      2、推测:session肯定已启动,不然就是以下报错,经排查发现在全局中间件$middleware也是加载了IlluminateSessionMiddlewareStartSession::class,也就是session肯定启动了,那就是session存储过程出了问题,
          经排查发现session文件并未生成。

        

        

      3、原因:原来是laravel对session存储流程的一个优化点,laravel为了防止在一次调用controller中session被多次加载,故在laravel中不是每次put都启动一次session,把当前值写入session文件的,这样读写操作会导致IO操作过于频繁,影响性能,laravel框架会在发送响应信息之前保存session。如果在中途出现了dd();die();exit();等提前中止会话的操作,session将无法自动写进文件。
       
      3、解决方案
        (1)把dd();die();exit();等换成return操作。
        (2)放弃自动保存,进行手动保存,在laravel中提供了一个save函数,可进行手动保存操作

    二、git版本管理 .gitignore不起作用的解决办法

    1、出现的问题

      从服务器克隆下来的项目,在本地修复运行产生了部分缓存文件后,确认可以提交到远程分支了,提交时发现居然把缓存文件也列入了提交的范围了,去.gitignore文件查看,发现缓存文件的目录已经被列入忽略队列,这就说明忽略文件并未生效。

    2、问题的原因

      经过对git版本控制的重新认识,发现那些没有生效的目录是因为这些目录或者文件已经被staged,也就是这些文件或者目录已经被列入版本控制管理了,则导致.gitinore文件无效

    3、解决的方案

    (1)首先去到服务器仓库端,执行

    
    git rm -r --cached .
    

      清理远程仓库的暂存区

    (2)然后再本地执行

    
    
    git rm -r --cached .
     git add . 
    git commit -m 'update .gitignore'
    

      清理本地的暂存区,然后提交

    三、ucloud重装系统磁盘问题

    1、背景

      在购买服务器后,由于卸载web环境不干净,而服务器是空的服务器,我选择了重装系统来快速重置环境,但是我发现重装系统后,我购买的40G系统硬盘变成了20G,而20G数据盘并没有挂载上去

      

    2、原因

      经和ucloud进行了工单反馈,说ucloud方面重装后会默认重置硬盘到他们的初始状态,也就是20+系统盘,如果需要恢复到购买状态需要自己手动扩容

    3、解决

      (1)首先对系统盘进行分区,
        
      选择n,对未挂载出来的空间进行分区
        
      第一步,询问建立分区的号是什么,第二步分区的空间是多大,这里我们选择是没有被挂载上去的空间
    最后输入w保存即可
     (2)格式化新建的分区:主流的文件系统有ext4和xfsd,我建立了ext4文件系统,mkfs.ext4 /dev/vdb1
     (3)然后才到ucloud给到的工单流程
        
      这就完成了ucloud重装后扩容的流程。数据盘需要到ucloud平台去挂载后,再进行以上步骤。

      

      

      

    欢迎关注技术公众号,博客和公众号同步更新,将不断更新各种技术心得


    作者: 苏沛云
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    ASPNET下的路径辅助类
    分析函数计算起始,结束日期.
    Debugging SQL Server 2005 Stored Procedures in Visual Studio
    Storing Binary Files Directly in the Database Using ASP.NET 2.0
    Fw:Managing View State in ASP.NET 4 Using the New ViewStateMode Property
    Using ASP.NET 3.5's ListView and DataPager Controls: Displaying Data with the ListView
    Passing Information Between Content and Master Pages .
    转:Querying a Hierarchical ParentChild Structure in LINQ
    续上篇:比较彻底的清除"代理木马下载器"的方法
    面向过程和面向对象--从C到C#
  • 原文地址:https://www.cnblogs.com/spydxk/p/10675481.html
Copyright © 2020-2023  润新知