在CodeIgniter4 + AWS:s3fs挂载环境中找不到生成的缓存文件Twig

问题描述

我在一个项目上使用CodeIgniter4(PHP)。
我们介绍了Twig模板引擎。
https://github.com/daycry/twig
缓存文件将在[/ writable / cache / twig /]下吐出。

这些系统可以毫无问题地开发。

但是,当我将其部署到AWS并使用s3fs挂载时,出现了问题。
s3fs挂载了[/ writable]目录。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
// … cutdown
s3fs            256T     0  256T   0% /var/www/codeigniter/writable

我可以使用file_put_contents函数通过一个简单的程序在安装目录中确认文件的生成。

  1 <?php
  2 
  3 $dir = __DIR__.'/../writable/cache/twig/te';
  4 
  5 mkdir($dir,0777,true);
  6 
  7 $file = $dir.'/test';
  8 
  9 file_put_contents($file,'this is a test file.');
 10 
 11 $complete = $file.'-kga303093.php';
 12 
 13 rename($file,$complete);

这可以。 将生成[test-kga303093.php]文件。

环境模式是生产环境。
但是,不会生成模板引擎缓存文件。

$ ls -lR writable/cache/twig/
writable/cache/twig/:
total 0

?????? ...尚未生成缓存文件。
如果无法写入缓存文件,则应该发生错误,但是网站可以正常运行而没有任何错误。

由于没有缓存文件,因此无法清除缓存。
困扰这种情况的是我很麻烦,因为模板的编辑没有反映出来。

当我挂载s3fs时,神秘地,模板引擎似乎正在某个地方写一个缓存文件,并从某个地方读取一个缓存文件。

实例处于自动缩放环境中。
因此,目的是使[/ writable]目录成为公用的安装目录。
未写入文件的版本,但[/ writable]目录的版本。
因此,我需要能够进行git pull。

有人在类似的环境中尝试吗?
您有解决方案的建议吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)