权限被拒绝:复制/写入文件(laravel / php)

问题描述 投票:2回答:1

我在应用程序中使用了一些有关文件的功能。创建文件,从目录复制/创建到另一个目录,更新。在我的本地主机上,一切正常,这是正常的。

主要目的是在网站上安排翻译经理。

  • 父目录的权限:755

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

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

在我的本地主机上:

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

我还尝试清理php缓存(php artisan缓存:清除)

编辑:

我使用2个功能:复制(谁复制第二语言目录中的默认翻译文件)和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个回答
0
投票

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

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

这样的事情。

sudo chmod -R 777 public/lang/en

如果您不授予777许可,则在单元测试时也会卡住。

© www.soinside.com 2019 - 2024. All rights reserved.