PHP文件_put_contents()的奇怪问题

PHP文件_put_contents()的奇怪问题,php,apache,ubuntu-18.04,file-put-contents,Php,Apache,Ubuntu 18.04,File Put Contents,使用Ubuntu18.04.04下的PHPV5.6.40(通过php5.6 apache mod),代码行如下: file_put_contents('/tmp/deploy.hook.log', date('Y-m-d H:i:s') . ': ' . $data . "\n", FILE_APPEND); 它可以在我设置的所有其他服务器/环境中工作,但由于某些原因,这里没有,没有PHP错误或权限问题;函数还返回写入的字节数,即使文件仍然为空 另一件有趣的事情是,如果我使用PHPCLI作为w

使用Ubuntu18.04.04下的PHPV5.6.40(通过php5.6 apache mod),代码行如下:

file_put_contents('/tmp/deploy.hook.log', date('Y-m-d H:i:s') . ': ' . $data . "\n", FILE_APPEND);
它可以在我设置的所有其他服务器/环境中工作,但由于某些原因,这里没有,没有PHP错误或权限问题;函数还返回写入的字节数,即使文件仍然为空

另一件有趣的事情是,如果我使用PHPCLI作为www数据运行代码,它就可以正常工作


有什么想法吗?

看来Sammitch的评论是正确的,我的真实/tmp目录类似于/tmp/systemd private-{some hash}

Apache版本是2.4.29临时添加
打印($\u文件)/tmp
后,可能
tmp
立即变空,以便将进程彼此隔离。如果您在CentOS上使用Apache,可能就是这样。您可能会在Apache外部找到实际的tmp文件夹,如
/tmp/systemd-private-1234reallyllongidhere
。我建议不要使用
/tmp
来访问需要在创建过程上下文之外访问的文件。您可能会看到其他人建议禁用“专用Tmp”设置,但这在我的书中是一个很大的安全禁忌。感谢您的建议,这只是一个无法访问我们的本地网络的测试服务器,这就是为什么路径是/tmpDocs:测试和POC以惊人的频率成为生产部署