PHP文件_put_contents()的奇怪问题
使用Ubuntu18.04.04下的PHPV5.6.40(通过php5.6 apache mod),代码行如下: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
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文件)因为我想你可能正在制作一个上传表单。检查输出。如果是空的,那么我会帮你。@Chi.C.J.RajeevaLochana$\u文件是一个空数组,这里没有上传。服务器有空间吗?在一些系统伪造/tmp
后,可能tmp
立即变空,以便将进程彼此隔离。如果您在CentOS上使用Apache,可能就是这样。您可能会在Apache外部找到实际的tmp文件夹,如/tmp/systemd-private-1234reallyllongidhere
。我建议不要使用/tmp
来访问需要在创建过程上下文之外访问的文件。您可能会看到其他人建议禁用“专用Tmp”设置,但这在我的书中是一个很大的安全禁忌。感谢您的建议,这只是一个无法访问我们的本地网络的测试服务器,这就是为什么路径是/tmpDocs:测试和POC以惊人的频率成为生产部署