【问题标题】:permission denied : copy / writing file (laravel / php)权限被拒绝:复制/写入文件(laravel / php)
【发布时间】:2019-11-28 12:15:35
【问题描述】:

我在我的应用程序中使用了一些关于文件的函数。创建文件,从一个目录复制/创建到另一个目录,更新。在我的本地主机上,一切都很好,这是工作。

主要目的是在网站上有一个翻译经理。

  • 父目录的权限:755

我有错误: 1)如果文件不存在,错误是 复制(/blabla/path.php):无法打开流:权限被拒绝

2) 如果我在 (touch + chown on usr:usr) 之前创建具有基本权限 (644) 或更新权限 (775) 的文件: file_put_contents(/blabla/path.php):无法打开流:权限被拒绝

在我的本地主机上:

  • 目录权:755
  • 文件权限:644

我也试过清理 php 缓存(php artisan cache:clear)

编辑:

我使用 2 个功能: copy(复制第二语言目录下的默认翻译文件)和file_put_contents(编辑文件)

public function replaceSlugs(Array $slugs,$filename, $lang)
    {
        $file=$this->path2File($filename,$lang);
        if(!file_exists($file)){$this->duplicateFile($lang,$filename);}
        $translate="<?php return ".var_export($slugs,true).";";
        return file_put_contents ( $file , $translate, LOCK_EX );
    }


    private function duplicateFile($lang,$filename)
    {
        copy($this->path2File($filename),$this->path2File($filename,$lang));
    }

    private function path2File($filename,$lang="en")
    {
        return resource_path('lang/'.$lang.'/'.$filename.'.php');
    }

【问题讨论】:

  • 提供您使用的代码或命令。
  • 我用代码编辑了我的问题。

标签: php laravel file permissions remote-server


【解决方案1】:

解决方案有风险,但可以解决问题

授予您的文件夹完全权限并清除缓存

类似的东西。

sudo chmod -R 777 public/lang/en

如果你不给 777 权限,你也会在单元测试时卡住。

【讨论】:

    猜你喜欢
    • 2015-11-24
    • 1970-01-01
    • 2017-07-11
    • 2019-09-18
    • 2018-02-20
    • 1970-01-01
    • 2015-08-02
    • 2018-11-21
    • 1970-01-01
    相关资源
    最近更新 更多