【发布时间】:2019-01-02 22:34:47
【问题描述】:
好的,我知道这很奇怪,但是经过一天的搜索,我找不到这个问题的任何答案。
我已经让这个系统运行两年了,在 Apache 下使用 Django 并安装了经典的 mod_wsgi。网站的精确镜像用于开发和测试。
为了加快查询速度,我使用了内置的 Django 缓存和文件后端。在开发中(内置 Django 服务器)一切正常,并在 /var/tmp/django_cache 下创建了一个文件。一切都在生产中也有效,但没有创建文件。
我很惊讶,所以我开始试验并在django.core.cache 模块中插入了一堆打印,并跟踪缓存内容的执行。在某个时刻,我得到了一个os.makedirs,它不会创建任何东西。我插入了一个open(),创建了一个文件(绝对路径),但没有创建任何内容。试图从不存在的文件中读回内容。
我真的很困惑。似乎以某种方式存在一种“虚拟”文件系统,它可以正常工作但与真实的东西并行。我正在使用 Django 1.11.11。
谁在施展魔法? Django、Apache、mod_wsgi?还有什么?
【问题讨论】:
-
不,没有虚拟文件系统。该文件更有可能是在另一个位置创建的,可能是因为 Apache 用户设置了 TMPDIR 环境变量
-
@DanielRoseman 环境变量如何影响
open("/tmp/test.tmp","w").write("test")?以后可以阅读。而且文件不存在。
标签: python django apache mod-wsgi