PHP文件夹权限问题

标签 php linux file-permissions

我正在尝试使用 PHP 创建一个文件夹,然后在其中创建另一个文件夹。

如果这是我的目录结构

/home/site                           (owner : user1)

现在,我使用以下方法创建文件夹

mkdir("/home/site/newdir",0777);     (user : apache)

目录 /home/site/newdir 已创建,但该目录的用户是“apache

现在,做

mkdir("/home/site/newdir/anotherdir",0777);

不会在 newdir 中创建另一个目录。

请帮忙。我认为这是所有者的问题。 我也无法使用 chmod() 更改所有者。所有者保持不变。

可能是什么原因造成的?

编辑:

<?php
error_reporting(E_ALL);

mkdir("./m",0777);  // works
mkdir("./m/v",0777); // doesnt work

并且页面上没有错误。

var_dump(is_writeable("./m")) // returns bool(true)

编辑: 这已得到修复。对于可能面临同样问题的其他人,这是因为 PHP 的安全模式处于“开启”状态。仍然不知道安全模式究竟做了什么不允许您创建嵌套目录的原因。

但现在可以了。感谢大家阅读。

最佳答案

mkdir() 创建的目录模式受您当前的 umask 影响,这就是为什么 chmod() 不适合您的原因。

尝试:

$old_mask = umask(0);
mkdir("/home/site/newdir/anotherdir",0777);
umask($old_mask);

关于PHP文件夹权限问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7372891/

相关文章:

php - 仅显示已完成订单状态电子邮件通知的条形码

linux - 导出 PATH 在 Linux 上的 bash shell 中不起作用

php - Yii:从某个表中获取最重复的ID

php - 为什么在面向对象的 PHP 中不推荐直接访问属性?

python - 将 C++ 包装到 Python - 其中部分代码是没有源代码的共享库

linux - 用于捕获 top 命令输出的 python 脚本

android - 我们可以使用 MediaStore API 删除图像文件吗?如果是,那么如何

linux - 在ubuntu中远程编辑文件时文件权限被覆盖

MacOS Catalina localhost 中的 WordPress 文件夹权限

php - 为 foreach 提供的参数无效; PDO