Ubuntu 18.04
/ 在 ext4 上
我使用 php 脚本在 /tmp 中创建了一个文件。好的,我通过 cat 看到了它。但是另一个脚本上的 php file_exists() 返回 FALSE。
我使用相同的脚本在 /var/www 中创建了一个文件。没错!file_exists() 返回 TRUE。
发生了什么?
答案1
我的第一个猜测是,你在服务中运行 PHP,其中 systemd 服务文件指定PrivateTmp=yes
也可以看看
- https://muras.eu/2017/12/06/apache-ubuntu-systemd-privatetmp/
- http://manpages.ubuntu.com/manpages/focal/en/man5/systemd.exec.5.html
PrivateTmp= 接受布尔参数。如果为 true,则为执行的进程设置一个新的文件系统命名空间,并在其中挂载私有的 /tmp 和 /var/tmp 目录,这些目录不会被命名空间外的进程共享。