<?php
echo file_put_contents("/tmp/log.txt", "Hello world everyone.");
代码很简单,在浏览器和命令行上运行都显示成功,为:21
。但是在浏览器运行后,/tmp/log.txt并不存在。而在命令行下,/tmp/log.txt创建成功(root和apache用户测试都没问题)。非常纠结。。。。。。。
uname -r
: 3.10.0-514.2.2.el7.x86_64
都是通过yum install安装的,yum install httpd php5
/tmp目录应该是最大权限,不会有权限问题吧?你把报错打开看看报错信息
首先 确认文件夹权限 允不允许写入 然后
用户问题?命令行下估计你是root用户,所以能执行成功。看下是否你的web目录还属于其他用户组,并且这个用户组对temp目录没有读写权限。
是否有权限!!!
应该是权限问题。PHP操作tmp目录,也是不安全的,所以默认肯定不允许。
为什么说不安全?因为你可以写,就必然可以读(对PHP而言,基本不存在没设置过权限然后只能写不能读的)……这样的话,黑客就能读取好多信息啦
简单粗暴测试: chmod -R 777 /tmp
然后看看是否能写入。
浏览器运行 / 指的是网站根目录 命令行/指的是服务器根目录 请查看网站根目录是否有/tmp/log.txt 文件