问题描述
我在一个项目上使用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 (将#修改为@)