gpt4 book ai didi

php - 权限被拒绝 : copy/writing file (laravel/php)

转载 作者:行者123 更新时间:2023-12-05 08:06:44 24 4
gpt4 key购买 nike

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

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

  • 父目录的权限:755

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

2) 如果我之前创建的文件(在 usr:usr 上触摸 + chown)具有基本权限 (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');
}

最佳答案

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

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

是这样的。

sudo chmod -R 777 public/lang/en

如果您不授予 777 权限,您也会在单元测试时卡住。

关于php - 权限被拒绝 : copy/writing file (laravel/php),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59088679/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com