导读 | 用过Laravel的小伙伴一开始安装完框架后可能都遇到过daily 日志文件写入失败的问题,接下来咱们就来详细说下日志文件写入失败的缘由以及对应的解决方案。 |
在讲这个问题以前可能须要简单介绍下Linux系统下的文件的Ownership和Permission。php
•Ownershiphtml
◦Userlinux
User是文件的全部者,默认状况下,用户建立了一个文件,该文件的全部者就是该用户。laravel
◦Groupweb
一个用户组能包含多个用户,全部属于这个组的用户都有相同的权限来访问文件。假设你有一个项目,不少用户都须要访问这个项目文件的权限,你不须要手动赋予这些用户全部权限,你只须要把这些用户加到一个组里面,赋予这些组有访问文件的权限,这样一来就仅仅只有组里面的成员能对文件进行读写操做。服务器
◦Other框架
任何其余的用户都能访问文件,所以,给Other用户赋予权限,至关于全部用户都拥有这个权限。网站
•Permissiondebug
在 UNIX/Linux 系统中每个文件和目录都有3中权限,如下就是对三个全部者的讨论。日志
linux下文件信息的显示截图
linux下目录的信息显示截图
以上的截图显示了一个文件和文件夹的信息,咱们能够看到:
咱们知道不少应用系统中的日志是写文件的,且是以日期来命名文件的。因此第一次建立日志的用户就显得尤其重要,若是文件建立的 Onwer和 Group 不对,其余的用户触发写入日志文件就会失败。
接下来咱们讨论下有多少种不一样的用户可能建立日志文件:
由以上的分析,咱们大概已经找到了解决问题的方法。
下面就说下个人具体解决方案:
指定www-data用户执行crontab:
sudo crontab -u www-data -e Laravel中修改建立日志文件的权限: 编辑 confog/logging.php 文件 添加 'permission' => 0664 'daily' => [ 'driver' => 'daily', 'path' => storage_path('logs/laravel.log'), 'level' => 'debug', 'days' => 14, 'permission' => 0664, ],
原文来自: https://www.linuxprobe.com/laravel-permission-denied.html