Laravel定时任务写入日志用户变为root导致Web进程无法写入日志问题

今天访问接口时返回 接口写入日志失败,通过排查后发现 storage/logs下面出现了root用户新建的日志,导致www用户无法写入日志。

通过排查发现,crontab写入了laravel定时任务命令。默认情况下,crontab的任务是使用root用户去执行的,因此laravel定时任务新建的文件属主自然成为了root

解决方法

解决方法就是使用指定用户来运行 crontab 任务。比如使用www用户来运行laravel的计划任务命令。

Golang Http 验证码示例

验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能。这个问题可以由计算机生成并评判,但是必须只有人类才能解答。由于计算机无法解答CAPTCHA的问题,所以回答出问题的用户就可以被认为是人类。

Java中加载文件的几种方式

在Java程序中加载外部文件有多中方式,每种方式也存在区别,本文将理清这些加载方式之间的区别。

文件IO方式

1
2
3
4
5
6
7
8
9
10
11
package org.xialei.example.resource;

import java.io.File;
import java.io.IOException;

public class Main {
public static void main(String[] args) throws IOException {
File file = new File("app.properties");
System.out.println(file.getAbsolutePath());
}
}

常见的读取方式,使用该方式读取文件时规则如下:

kafka二进制协议简要分析

最近分享了《应用层私有协议的设计和实战》,对应用层私有协议设计做了一些介绍,同时也对协议设计中常用的数据类型做了比较形象的讲解,今天我们来研究一下kafka的二进制协议。

数据类型

kafka二进制协议定义了许多的数据类型,包含常用的数字、字符串,也包含了数组等类型。

本文主要讨论不可变长数据类型,可变长度(如Google Protocol Buffers)不在讨论范围内。

MySQL中的CHAR和VARCHAR到底支持多长?

最近在研究MySQL的数据类型,我们知道,选择合适的数据类型和数据长度对MySQL的性能影响是不可忽视的,小字段意味着可以MySQL可以读取更多的记录,从而加快查询速度。

网上该问题的答案有很多版本,还是通过实践得出的结论比较靠谱。

先说结论(MySQL版本5.7.27)

Redis优化高并发下的秒杀性能

本文内容

  • 使用Redis优化高并发场景下的接口性能

NestJs学习之旅(9)——拦截器

本文是NestJs的第九篇,讲解拦截器。

拦截器是一个实现了NestInterceptor接口且被@Injectable装饰器修饰的类。

img

NestJs学习之旅(8)——管道

本文是NestJs学习之旅的第八篇,讲解管道。

管道

熟悉Linux命令的伙伴应该对“管道运算符”不陌生。

1
ls -la | grep demo

NestJs学习之旅(7)——路由守卫

本文是NestJs的第七篇,讲解路由守卫。

传统的Web应用中去检测用户登录、权限判断等等都是在控制器层或者中间件层做的,而在目前比较推荐的模块化与组件化架构中,不同职责的功能建议拆分到不同的类文件中去。

通过前几篇的学习可以发现NestJs在这方面做的很好,传统的express/koa应用中,需要开发者去思考项目结构以及代码组织,而NestJs不需要你这样做,降低了开发成本,另外也统一了开发风格。

NestJs学习之旅(6)——异常处理

本文是NestJs的第六篇,讲解异常处理。

传统的异常处理

在前面的内容中我们介绍了NestJs的几大常用组件,但是有一点没有做出说明,当我们的应用需要中断此次请求且输出错误信息时,我们需要怎么做?

这个问题有两种解决办法:

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×