关于laravel 日志写入失败问题汇总


Posted in PHP onOctober 17, 2019

Throw问题

项目部署到Linux 服务器上后有时会出现 每日日志无法写入的问题。由此汇总一下常出现的问题及解决方式。

权限问题

导致无法写入日志的问题,是由于代码更新时添加了文件是 root 用户,所以创建日志文件也是root 权限,导致其它用户的 www 权限无法写入日志文件中。

所以修改 storage/logs/ 的用户权限为 www

chown www:www storage/logs -R

注意:如果用户使用supervisord服务运行队列的话,如果队列里有日志记录,那么运行的用户也需要改成 www 用户。

还有一种解决方式,就是修改日志的源码。

laravel在web模式下产生的日志文件(storage/logs)由www-data用户创建,而在命令行(php artisan)模式下是由当前登录系统用户创建。

这两个用户不在同一个组下,就导致后操作的功能无法对日志文件进行写操作。解决这个问题需要修改Laravel在使用Monolog框架时的源代码。

需要修改的文件在 vendor/laravel/framework/src/Illuminate/Log/Writer.php 第229行。

$handler = new RotatingFileHandler($path, $days, $this->parseLevel($level))

改为

$handler = new RotatingFileHandler($path, $days, $this->parseLevel($level),true,0777)

该代码在useDailyFiles函数中,因为config/app.php中对日志框架的配置是

'log' => 'daily',

所以使用的是RotatingFileHandler,构造函数中第五个参数是指定创建文件的权限。

用户问题

用户问题,也算是权限问题。我用这个方式解决的问题。

首先 crontab -l 查看定时任务,laravel 的定时任务定义在这里。

crontab -e 修改定时任务。一切依旧。定时任务也执行了。第二天,开始出现日志不可写的问题。

解决步骤1:修改 crontab -u www -e 定时任务配置给 www 用户,去掉root 的定时任务。第二天不再出现日志不可写问题。

结果定时任务不再执行。没遇到过这样的情况,于是同时给www 用户和 root 用户 都配置了 定时任务。结果还是日志不可写。

解决步骤2:经过一番挣扎的搜寻 ,打开了最后一次的日志。

* 号 是代表可能会有很多个 cron 开头的日志,打开最后一个即可。

vi /var/logs/cron*

如图:

关于laravel 日志写入失败问题汇总

看到定时任务的错误日志,进入home 目录,建立www文件夹。赋予权限。完成问题的解决。

以上这篇关于laravel 日志写入失败问题汇总就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
实现dedecms全站URL静态化改造的代码
Mar 29 PHP
表单复选框向PHP传输数据的代码
Nov 13 PHP
php csv操作类代码
Dec 14 PHP
PHP获取表单所有复选框的值的方法
Aug 28 PHP
php+mysql数据库实现无限分类的方法
Dec 12 PHP
使用图灵api创建微信聊天机器人
Jul 23 PHP
php实现复制移动文件的方法
Jul 29 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
May 23 PHP
php下载文件,添加响应头的简单实例
Sep 22 PHP
PHP基于自定义函数实现的汉字转拼音功能实例
Sep 30 PHP
PHP小白必须要知道的php基础知识(超实用)
Oct 10 PHP
PHP如何使用JWT做Api接口身份认证的实现
Feb 03 PHP
自定义Laravel (monolog)日志位置,并增加请求ID的实现
Oct 17 #PHP
详解Laravel设置多态关系模型别名的方式
Oct 17 #PHP
Laravel 5.5 异常处理 & 错误日志的解决
Oct 17 #PHP
PHP封装请求类实例分析【基于Yii框架】
Oct 17 #PHP
使用laravel指定日志文件记录任意日志
Oct 17 #PHP
Laravel 修改默认日志文件名称和位置的例子
Oct 17 #PHP
thinkPHP事务操作简单案例分析
Oct 17 #PHP
You might like
PHP magento后台无法登录问题解决方法
2016/11/24 PHP
javascript学习基础笔记之DOM对象操作
2011/11/03 Javascript
JQuery each()嵌套使用小结
2014/04/18 Javascript
jquery对象访问是什么及使用方法介绍
2016/05/03 Javascript
AngularJS通过$http和服务器通信详解
2016/09/21 Javascript
jQuery动态产生select option下拉列表
2017/03/15 Javascript
layui实现table加载的示例代码
2018/08/14 Javascript
Angular7.2.7路由使用初体验
2019/03/01 Javascript
基于JavaScript实现十五拼图代码实例
2020/04/26 Javascript
微信小程序实现选择地址省市区三级联动
2020/06/21 Javascript
[02:26]2018DOTA2亚洲邀请赛赛前采访-Newbee篇
2018/04/03 DOTA
[02:02]特效爆炸!DOTA2珍宝之瓶待你开启
2018/08/21 DOTA
使用Python的Bottle框架写一个简单的服务接口的示例
2015/08/25 Python
对Python中gensim库word2vec的使用详解
2018/05/08 Python
Vue的el-scrollbar实现自定义滚动
2018/05/29 Python
pandas Dataframe行列读取的实例
2018/06/08 Python
Pycharm以root权限运行脚本的方法
2019/01/19 Python
Python3实现的判断环形链表算法示例
2019/03/07 Python
提升Python效率之使用循环机制代替递归函数
2019/07/23 Python
django组合搜索实现过程详解(附代码)
2019/08/06 Python
Python阶乘求和的代码详解
2020/02/14 Python
python 轮询执行某函数的2种方式
2020/05/03 Python
Django QuerySet查询集原理及代码实例
2020/06/13 Python
白兰氏健康Mall:BRAND’S
2017/11/13 全球购物
意大利运动服减价商店:ScontoSport
2020/03/10 全球购物
Quiksilver美国官网:始于1969年的优质冲浪服和滑雪板外套
2020/04/20 全球购物
运动会表扬稿大全
2014/01/16 职场文书
道德模范先进事迹
2014/02/14 职场文书
我的梦想演讲稿1000字
2014/08/21 职场文书
2014银行授权委托书样本
2014/10/04 职场文书
2014年个人售房协议书
2014/10/30 职场文书
教导主任个人总结
2015/03/03 职场文书
民事撤诉申请书范本
2015/05/18 职场文书
人间正道是沧桑观后感
2015/06/15 职场文书
幼儿园园长六一致辞
2015/07/31 职场文书
委托书范本格式
2019/04/18 职场文书