关于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 相关文章推荐
计数器详细设计
Oct 09 PHP
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
Jun 07 PHP
PHP写的获取各搜索蜘蛛爬行记录代码
Aug 21 PHP
PHP操作Memcache实例介绍
Jun 14 PHP
JS异常处理try..catch语句的作用和实例
May 05 PHP
WordPress开发中用于获取近期文章的PHP函数使用解析
Jan 05 PHP
php使用CutyCapt实现网页截图保存的方法
Oct 03 PHP
PHP自动识别当前使用移动终端
May 21 PHP
PHP一致性hash分布式算法封装类定义与用法示例
Aug 04 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
Dec 07 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
Feb 29 PHP
php优化查询foreach代码实例讲解
Mar 24 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+JS无限级可伸缩菜单详解(简单易懂)
2007/01/02 PHP
JavaScript延迟加载
2021/03/09 Javascript
用javascript父窗口控制只弹出一个子窗口
2007/04/10 Javascript
强大的jquery插件jqeuryUI做网页对话框效果!简单
2011/04/14 Javascript
javascript 获取浏览器版本
2015/01/21 Javascript
jquery插件pagination实现无刷新ajax分页
2015/09/30 Javascript
JS实现的仿淘宝交易倒计时效果
2015/11/27 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
2016/03/17 Javascript
基于jquery实现表格内容筛选功能实例解析
2016/05/09 Javascript
javascript宿主对象之window.navigator详解
2016/09/07 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
HTML5实现微信拍摄上传照片功能
2017/04/21 Javascript
JS轮播图实现简单代码
2021/02/19 Javascript
Nodejs中怎么实现函数的串行执行
2019/03/02 NodeJs
Vue+Express实现登录注销功能的实例代码
2019/05/05 Javascript
Vue模板语法中数据绑定的实例代码
2019/05/17 Javascript
[51:06]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第二场 1月26日
2021/03/11 DOTA
python sort、sorted高级排序技巧
2014/11/21 Python
Windows下为Python安装Matplotlib模块
2015/11/06 Python
Python使用dis模块把Python反编译为字节码的用法详解
2016/06/14 Python
pandas全表查询定位某个值所在行列的方法
2018/04/12 Python
一看就懂得Python的math模块
2018/10/21 Python
在IPython中进行Python程序执行时间的测量方法
2018/11/01 Python
在scrapy中使用phantomJS实现异步爬取的方法
2018/12/17 Python
Python3多目标赋值及共享引用注意事项
2019/05/27 Python
python多维数组分位数的求取方式
2020/03/03 Python
解决Opencv+Python cv2.imshow闪退问题
2020/04/24 Python
Python 解决相对路径问题:"No such file or directory"
2020/06/05 Python
Python logging自定义字段输出及打印颜色
2020/11/30 Python
AmazeUI中模态框的实现
2020/08/19 HTML / CSS
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
了解AppleTalk协议吗
2014/04/01 面试题
植树节活动总结
2014/04/30 职场文书
营销与策划实训报告
2014/11/05 职场文书
教师个人教学反思
2016/02/23 职场文书
怎样写好演讲稿题目?
2019/08/21 职场文书