我在应用程序中使用了一些有关文件的功能。创建文件,从目录复制/创建到另一个目录,更新。在我的本地主机上,一切正常,这是正常的。
主要目的是在网站上安排翻译经理。
我有错误:1)如果文件不存在,则错误是复制(/blabla/path.php):无法打开流:权限被拒绝
2)如果我之前创建文件(在usr:usr上触摸+ chown)具有基本权限(644)或具有更新的权限(775):file_put_contents(/blabla/path.php):无法打开流:权限被拒绝
在我的本地主机上:
我还尝试清理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');
}
解决方案有风险,但是可以解决问题
授予您的文件夹完全权限并清除缓存
这样的事情。
sudo chmod -R 777 public/lang/en
如果您不授予777许可,则在单元测试时也会卡住。