Closed Nomia closed 2 years ago
另外还有一个问题就是,在不同的环境下读不到同一个缓存文件
问题2:root在命令行模式下访问缓存或者写缓存写到了A文件,可以写入。但是用apache以网络请求的方式,即浏览器GET请求某个地址然后写入缓存是写到了B文件,读也是读的B文件
所以导致suite_ticket在命令行模式下无法获取到。(因为他们读取的文件就不是同一个,所以不可能读到相同的数据)
问题1:当然,首先的问题是apache无法写入,我设置了tmp文件夹777,把tmp文件夹chown -R apache:apache /tmp
都没用,始终无法写入。但是可以写入到我的项目文件夹中的同样权限设置的某个文件夹
在overtrue/wechat/src/OpenWork/Server/Handlers/EchoStrHandler.php 文件里无法file_get_contents
已经存在的文件,报错说不存在,实际是存在,用简单的php test.php是可以获得的
找到问题了,PrivateTmp
的问题,不同process用的是不同的/tmp
文件夹,导致不同process
之间不同共通数据
用putenv
函数在应用里面设定自定义的/tmp
文件夹就好了
putenv('TMPDIR='.__DIR__.'/../storage/app/custom_tmp');
目前用的Laravel Wechat是4.x版本
EasyWechat的企业微信开放平台模块会把suite_ticket缓存到文件中,但是有很多权限问题,我设置了777仍然写不进tmp
请问有没有什么可以配置,将缓存文件夹配置到
storage
文件夹中去,或者是否可以用redis来做缓存引擎