当前位置: 首页 > PHP > php通过web程序写文件到tmp目录后,文件不存在

php通过web程序写文件到tmp目录后,文件不存在

  • 分类:PHP
  • 本文标签: php php-fpm
  • 发布时间:2017-06-16 17:26:44
  • 作者:Ferman
  • 查看数: 39

出现了一个这样奇怪的事情:

服务器上在tmp目录内有一个文件,例如: /tmp/instrumental/a.txt


通过web访问一个程序:

file_exits("/tmp/instrumental/a.txt");// 返回false


但是用console访问

file_exits("/tmp/instrumental/a.txt");// 返回true

文件名存在但是通过web访问却访问不到,唯一的可能性就是跟php-fpm有关了

那么执行

systemctl status php-fpm7.service

会显示 load了一个这样的文件:

Loaded: loaded (/etc/systemd/system/php-fpm7.service; enabled; vendor preset: disabled)



进去这个文件之后,有这么一个配置PrivateTmp=true

[Service]
Type=notify
PIDFile=/usr/local/php7/var/run/php-fpm.pid
ExecStart=/usr/local/php7/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php7/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
PrivateTmp=true #这里才是重点

这个配置,是为了确保你自己的tmp目录不受干扰,因为系统的tmp目录,无论是什么权限,别人都是可以访问的。


转载时请以 超链接的形式 注明:转自Ferman

                  

About me