【发布时间】:2018-09-07 16:07:37
【问题描述】:
我在 PHP 中遇到了一个奇怪的问题
我有以下代码
function subirFotoTemporal($idhash)
{
global $target_dir;
$dirfinal = $target_dir."temporales/".$idhash;
if (!is_dir($dirfinal))
mkdir($dirfinal, 0664, true);
[...]
但是,我在最后一行收到警告:mkdir(): Permission denied [...]
这会导致后续代码失败,因为它依赖于在此阶段创建的目录。结果发现创建了目录temporales,但没有创建基于$idhash 的目录。 temporales 文件夹是使用 0644 权限集而不是命令中指定的 0664 创建的。
我检查了网站上的类似问题,并检查了 Apache 环境中的每个文件都设置为 www-data 所有者。
这可能是什么原因?
【问题讨论】:
-
您对您的服务器有 root 访问权限吗?
-
一切都在本地环境中完成,所以是的。
-
好的,我注意到您没有为
$target_dir定义任何内容。例如global $target_dir; $target_dir = $_SERVER['DOCUMENT_ROOT']; -
$target_dir定义在函数范围之外,变量的内容是无关紧要的(__DIR__."/foo/")。 -
尝试使用
0755
标签: php permissions directory