我有一个cronjob.php脚本,用于计算数组并将其保存在文件夹中
www.mywebsite.com/resoucres/array.json
cronjob.php
$array = array();
// A lot of code
file_put_contents("array.json",json_encode($array));
当我执行脚本时,我得到了
file_put_contents(array.json):无法打开流:权限 在/home/user/www/mywebsite.com/resoucres/cronjob.php中被拒绝
现在按照file_put_contents permission denied的建议,可以简单地给文件夹resources
chmod 777.但这不是安全风险吗?
这是否意味着其他人也可以在此目录中的文件上写入?是否有可能只给cronjob.php更改文件array.json
的权限,或者我是否真的需要将文件夹移动到/www/resources/cronjob.php/
所以它可以有chmod 777但是因为没有人可以访问它,所以保存?
答案 0 :(得分:2)
如果您想允许写入文件并在某种程度上保护它们。
在Web服务器根目录之外创建一个位置。
root dir = / opt / www / html /
数据目录= / opt / www / data /
授予Web服务器对数据目录的写访问权。
让您的程序参与数据目录。
然后使用第二个程序从数据目录中读取。
这样,Web服务器就无法直接访问这些文件。