如何用PHP chmod 0007很多目录?

时间:2018-08-03 07:43:32

标签: php apache chmod

“我的网站”将包含数千个名为“ e”的子目录,这些子目录将保存用户创建的特定于该目录提交表单的.json文件。我需要这个新创建的目录为chmod0007。该怎么做?

下面的代码来自一个php文件,该文件用于本地存储文件夹'e'中的全局存储功能,但仅在该文件夹已经存在并且已经chmod 0007时才有效:

public function store(Document $document) {
    if (!isset($document->id)) { $document->id = $this->generateId(); }

        //This is my guess how to do it..
        $this->path      = $this->path . DIRECTORY_SEPARATOR
        if (!file_exists($this->path)) {
            mkdir($this->path);
            chmod($this->path, 0007);
        }
    //My guess does not work

    $path    = $this->getPathForDocument($document->id);
    $data    = $this->formatter->encode((array) $document);

    return file_put_contents($path, $data);
}

注意:我已经通过PHP搜索了与chmod相关的其他堆栈文章,所有文章都是与文件相关的,而不是目录,和/或到目前为止,没有一篇文章足以帮助我。请仅链接到专门回答此确切问题的内容。

注意:这不是哪个chmod最好的问题。谢谢您对chmod ####的关注,稍后再考虑。请重点关注问题的答案,而不是一个困扰您的细节,而无需回答。

2 个答案:

答案 0 :(得分:0)

foreach(['./users','./mp3','./pdf'] as $path){
    array_map(function ($val){
        return shell_exec ("chmod 0777 $val");
    }, glob("$path/*"));
}

答案 1 :(得分:0)

偶然发现:PHP mkdir:PHP mkdir: Permission denied problem

他们建议这样做:chown -R www-data:www-data /var/www/example.com/public_html/ chmod -R g + rw /var/www/example.com/public_html /

它确实有效。

谢谢:)