自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 Git Commit的规范及高级使用方法

git commit是日常工作中使用率极高的一个命令,但是根据我从业5年的经验来看,大多数人在用git commit命令时都很粗糙,比如git commit -m 后跟的message是五花八门,有用中文的,有用英文的,甚至还有直接跟111的,这些commit,不要说接手的人很难看懂,时间久了估计连提交人自己都忘记咋回事了。本文我就带大家了解下git commit有哪些规范及高级用法。

2023-07-12 16:38:07 933

原创 Linux中如何让新建的普通用户拥有ROOT权限

请注意,在修改 sudoers 文件时务必小心,确保只为必要的用户分配 sudo 权限,并遵循安全最佳实践。验证用户的身份和权限,并避免在 sudoers 文件中添加不必要的规则。在打开的 sudoers 文件中,找到以 "# User privilege specification" 开头的部分。添加用户到 sudoers 文件后,该用户将具有执行 sudo 命令的权限。命令编辑 sudoers 文件,而不是直接编辑文件。在该部分的末尾添加一行,类似于。是您要添加的用户名。

2023-07-04 12:00:10 2761

原创 Linux下GO IDE安装和配置(附快捷键)

有多种方法可以配置一个 Vim IDE,这里我选择使用 vim-go 将 Vim 配置成一个 Go IDE。vim-go 是社区比较受欢迎的 Vim Go 开发插件,可以用来方便地将一个 Vim 配置成 Vim IDE。vim-go 会用到一些 Go 工具,比如在函数跳转时会用到 guru、godef 工具,在格式化时会用到 goimports,所以你也需要安装这些工具。安装方式如下:执行 vi /tmp/test.go,然后输入 :GoInstallBinaries 安装 vim-go 需要的工具。

2023-07-04 11:11:51 1678

转载 已解决】Error: Failed to download metadata for repo ‘appstream‘: Cannot prepare internal mirrorlist

项目,CentOS Linux 8 作为 RHEL 8 的复刻版本,生命周期缩短,于 2021 年 12 月 31 日停止更新并停止维护(EOL),更多的信息可以查看 CentOS 官方公告。如果需要更新 CentOS,需要将镜像从 mirror.centos.org 更改为 vault.centos.org。✨那么第二种情况,便是 CentOS 已经停止维护的问题。2020 年 12 月 8 号,CentOS 官方宣布了停止维护 CentOS Linux 的计划,并推出了 CentOS。

2023-07-04 10:55:01 1247

原创 golang热加载fresh安装方式有两种

两种方式都需要先把go env的环境修改一下,如果GO111MODULE=auto,将这一行改成GO111MODULE=on。安装好之后到项目根目录直接fresh运行就可以了。如果第一种没有生效继续往下看。

2023-02-21 19:07:28 1180 1

原创 workerman接口返回504问题解决

问题记录:由于项目日活量较高,便使用了性能比较高的webman框架,在本地和测试环境使用时,接口正常,但是发布到正式环境之后,POST请求总会返回504Gateway Timeout的错误,百思不得其解,检查了apache代理和代码跨域配置都是没问题的,导致上线延迟了十个小时解决过程:后来只能从域名开始排查,发现正式域名是使用了CDN加速的,而测试域名是我们自己生成的,无CDN加速,但是我们刚开始并没觉得是CDN加速引起的,又排查其他问题,后来迫不得已尝试了去掉CDN加速的解决方案,去掉后一切正

2022-05-25 21:18:59 474

原创 Laravel 队列后台运行的命令

php artisan queue:work >/tmp/work.log 2>&1 &/tmp/work.log为队列运行日志存放的位置

2022-05-19 12:43:01 877

原创 git rebase--onto 合并指定commit的简单使用

使用场景假设有prod(生产环境)、dev(测试环境)两个分支,在dev分支上有部分未开发完成或者未测试完成的功能没有同步到prod分支,然而此时prod上有bug需要修复,这种情况我们一般是不会直接在prod分支上修改的,因为有风险。此时我们一般有两种选择:1、单独建立一个bug分支,用来修改prod分支的bug,修改测试完成后,再合并到prod分支2、在dev分支上修改,测试完成后把bug相关的代码合并到prod分支第一种方法很简单,这里简单讲解一下第二种方法。命令讲解g

2022-03-08 16:31:35 3885

原创 Linux基础篇之文件的编辑指令nano、vi、vim之nano

开头语众所周知,vim才是Linux文件编辑的利器,当然后边也会单独写一篇文章专门的针对vim进行详解,咱们先来看一下超简单的nano文件编辑器。命令解释nano [filename] 编辑一个已存在的文件或者创建一个新的文件快捷方式汇总:crtl键+G 获得nano的使用方式及所有快捷键crtl键+X 退出编辑模式,同时会提醒你是否保存刚刚编辑过的内容crtl键+O 储存文件crtl键+R 从其他文件读取内容并粘贴到本文件中crtl键+W 搜寻字符串crtl键+C 会在下方

2022-03-03 08:00:00 5605

原创 为什么Windows系统磁盘盘已使用空间大小与磁盘中总文件大小不符?

开头语这个硬盘空间的使用牵扯的概念比较多,如果你比较懂linux的话也许能明白我接下来说的,当然我也会尽可能通俗易懂的讲解,其实windows也是建立在linux内核上的。正文windows电脑大多有两个磁盘,系统盘C盘和D盘,当然也可以分出来更多的磁盘,而每个磁盘上其实也划分了更多的很小很小的区块,只不过这些你在电脑上是看不到的,每个区块都有固定的大小,并且每个区块大小一致,咱们在这里假设每个区块的大小为8kb。如果你的某个文件为17kb,在存放到磁盘上之前,磁盘会先标识这个文件,给他一个唯一

2022-03-02 08:00:00 3823 2

原创 PHP---当你无法登录服务器或者服务器权限不够的时候想看日志怎么办?

注意'/'和'\'的区别,linux上只识别'/','\'会提示找不到目录或者文件$file = "yourpath/test.txt";$myfile = fopen($file, "r") or die("Unable to open file!");echo fread($myfile,filesize($file));fclose($myfile);

2022-03-01 08:00:00 256

原创 Linux基础篇之文件的查看(下)

headhead,英文意思--头部,会展示从第一行开始指定的行数选项解释:-n 后面接数字,代表显示几行的意思,如果是负数,比如-n,则从第一行展示到(总行数-n)行实战演习:[root@7e4568607a2a linux]# head -n 3 test.txtHello,Welcome to Linux World!Learning is my happiness!One[root@7e4568607a2a linux]# head -n -50 test.txtHe

2022-02-28 08:00:00 151

原创 Linux基础篇之文件的查看(上)

命令介绍这个内容分为两篇来讲,因为占用篇幅较长,主要讲的常用命令有:cat、tac、nl、more、less、head、tail、od本篇主要讲cat、tac、nl、more、less下篇讲head、tail、odcatcat按顺序读取文件cat命令选项:-u 在读取每个字节时,毫不延迟地将字节从输入文件写入标准输出。-b 对非空白行列出行号-E 将结尾的断行字符用$展示出来-n 打印出所有行的行号,包括非空白行-T 将[tab]键以^I显示出来-v 列出一些其它的.

2022-02-27 08:00:00 267

原创 Linux基础篇之目录的遍历及详细信息展示、移动、复制

遍历及详细信息展示:lsls可选选项解释如下:名称ls - 列出目录内容ls [-CFRacdilqrtu1][H |-L][fgmnopsx][file…]应支持以下选项:-F 除非指定了-H或-L选项,否则不要跟随以操作数命名的符号链接。在作为目录的每个路径名后面写一个斜杠(“/”),在作为可执行文件的每个路径名后面写一个星号(“*”),在每个后面的竖条(“|”)是FIFO,每个后面的at符号(“@”)是符号链接。对于其他文件类型,可以写入其他符号。-H 如果在命令行上指定

2022-02-26 08:00:00 908

原创 Linux基础篇之目录的切换、创建、展示与删除

命令介绍切换命令:cd [dirname]创建目录(文件夹)命令:mkdir dirname展示当前所在目录路径:pwd删除文件夹:rm -r dirname实战演习#先进入/opt/study/linux目录[root@7e4568607a2a /]# cd /opt/study/linux/# .代表当前目录,所以cd . 依然是当前目录保持不变[root@7e4568607a2a linux]# cd .# ..代表上级目录,cd ..后会切换到上级目录study.

2022-02-25 08:00:00 633

原创 php读取env配置文件

<?phpclass Env{ const ENV_PREFIX = ''; /** * 加载配置文件 * @access public * @param string $filePath 配置文件路径 * @return void */ public static function loadFile(string $filePath): void { if (!file_exists($.

2022-02-24 08:00:00 935

原创 mysql 保存微信昵称时出现的问题--SQLSTATE[HY000]: General error: 1366 Incorrect string value 解决方案

问题描述今天项目上线,一直由用户反馈登录不上的问题,查了日志后,发现是个别用户微信昵称中包含图片导致的sql报错:SQLSTATE[HY000]: General error: 1366 Incorrect string value。解决方案修改数据库编码:设置数据库相应表的编码为utf8mb4,最好把项目中的也修改为utf8mb4,保持一致,问题解决...

2022-02-21 04:10:32 1380

原创 Linux命令别名--alias

设置别名--alias比如我们常用的rm -rf命令,可以用alias简化为rf命令,具体的操作是这样的用alias可以查看目前有哪些命令设置了别名,可以看到我们常用的cp、ll、ls、rm都在里边删除别名--unalias删除后,rf别名就没了。设置别名每次登入可用alias命令只作用于当次登入的操作。如果想每次登入都能使用这些命令的别名,则可以把相应的alias命令存放在 ~/.bashrc 文件中。打开~/.bashrc文件,输入要设置的alias命令,保存,然后运

2022-02-20 23:55:34 1581

原创 Mysql关于where的一个面试题记录

Sqlselect id from test where is_deleted这条sql都会查出什么数据答案

2022-02-19 23:16:32 317

原创 写博客100天了,记录一下,生活需要仪式感

开头语说来很巧,四年前的今天,我注册了CSDN,而今天也正是我写博客的第100天,所以想要记录一下这个特殊的日子。正文都说毕业三年见差距,刚毕业时总感觉三年还很远,然而时光荏苒,一晃四年都快过去了。在大学的时候注册了CSDN,具体原因忘记了,可能是为了完成某个课程作业,亦可能是为了做毕业设计,总之我当时应该跟大多数人一样,大概只是把CSDN当作第二个百度来用了,就这样用了三年,随用随取,没有做笔记的习惯,然而把CSDN当作百度来用的后果也很明显,三年我依然是个菜鸡,可能也只是比小白的增删改查

2022-02-18 19:12:50 251

原创 记录一下nginx代理引起的ip失真问题

问题场景做了一个客服的项目,需要根据访客的ip进行定位,在后台进行展示,项目前期测试的时候地址都是对的,后来因为客户要求,进行了nginx的代理和负载均衡的配置,此后所有用户进来都是显示服务器的地址,清一色的“浙江杭州”。问题分析由于nginx代理后,nginx会代替用户的请求,自身转发一个新的请求到项目所在的服务器,相当于把客户的请求给偷偷替换掉了,而服务器只知道请求来自于nginx所在的服务器,只能拿到服务器的ip,却不知到用户的真实ip,我们公司买的服务器是杭州的,所以所有的用户请求进来都

2022-02-17 19:09:04 2461

原创 PHP关于大文件切片上传的思路与实践体会--前端jquery、后端php

刚开始直接对file源文件进行的slice切片,但是这样的切片到后端处理着稍微有点麻烦,所以我就试着用base64进行切片,效果很不错,减少了工作量,也提高了效率。思路先用jquery对文件进行base64转换,得到base64编码,然后计算base64的长度,用slice方法每次截取固定的长度,放到数组中,然后循环数组的同时把base64切片依次传到后端,在后端可以把切片临时存储到cookie或者session中,当然redis之类的技术也可以,哪个方便用哪个,到最后把所有切片拼接起来,可以通过o

2022-02-15 21:16:10 803

原创 docker容器打包成镜像及反向操作

容器打包成镜像1、先用docker ps查看容器编号2、打包docker commit -m 'some explain' -a 'author' 容器编号 镜像名称镜像运行docker run -it -p 端口号映射 -v 目录映射 -n 容器名称 镜像名称

2022-02-14 08:00:00 760

原创 读《鸟哥的linux私房菜》有感--第四天

这四天阅读了第五章到第十章,因为这几篇干货比较多,实操也比较多,再加上这几天工作略忙,所以用的时间久了一些。这几章读下来,出现的频率比较高的词汇就是“重要”,鸟哥在文章中很喜欢提这个词,不过事实证明,确实都很重要,读完这些,再去网上看一些关于Linux的一些常见错误以及解决方案,都不会像以前那么懵逼了(手动狗头)。第五章主要讲了文件权限的概念,如果你负责管理公司的服务器,这一章是很有必要仔细阅读的,读完之后你会知道针对每个项目、每个用户的权限应该怎样分配,以及Linux自带目录的意义及使用。第六

2022-02-13 08:00:00 502

原创 Laravel上传文件验证提示 The file failed to upload.

错误原因这是我基于Laravel自带的验证组件写的验证代码:在大多数情况下是正常的,但是前端上传图片时,偶尔会报The file failed to upload这个莫名其妙的错误,要知道我的代码中是没有任何关于这个报错的的提示的。经过多次排查,基本上可以认定是图片大小引起的错误。首先,php默认配置的上传文件的大小为2M,这个我们可以在php.ini配置文件中看到;upload_max_filesize=2Mpost_max_size=8M其次,我在laravle验证.

2022-02-12 08:00:00 1515

原创 vue 给静态资源增加路由前缀

在vue.config.js中找到这段代码:找到publicPath,这个就是静态资源的默认路径,默认值是/,也就是静态资源默认路径是你的域名+路径,所以我们只需修改publicPath的值,就可以达到加前缀的效果,修改后效果如下:现在你页面上的所有静态资源路径都会加上web前缀了...

2022-02-11 08:00:00 3293 2

原创 vue 页面增加url前缀

在main.js中找到这段代码const createRouter = () => new Router({ mode: 'history', // require service support scrollBehavior: () => ({ y: 0 }), routes: constantRoutes})加上 base: 'web', //页面路由前缀修改后代码:const createRouter = () => new Router

2022-02-10 16:47:22 1605

原创 读《鸟哥的linux私房菜》有感--第一天

首先,鸟哥,respect!今天看了一下前五章,注意是有第零章的,也就是说我看到了第四章,整体来说文章风格还是比较有意思的,有让人看下去的欲望。第零章和第一章主要讲的发展史,致敬这些大佬,但是建议当个故事听听就得了,没必要太深入;第二章硬件分区,硬件这一块属实是有点云里雾里了,只能看后边有没有必要深入研究了,所以就粗略浏览了下,如果后边知识用得上,再回头来仔细研究硬件相关的,毕竟硬件牵扯的东西不是一般的多,目前靠虚拟机基本都能达到常规要求;第三章主要讲安装,因为我之前就经常玩虚拟机,也装过C

2022-02-08 20:20:40 814

原创 开工大吉,2022先定一个小目标--玩转linux

首先在此祝福大家新春快乐,开工大吉!俗语说:“要想富,先修路”,我觉得在程序员这行来说,可以略作修改:“要想富,先啃书”。我新年的第一个目标就是半年内啃完Linux相关的五本书:1、鸟哥的 Linux 私房菜2、《The Linux Command Line》by William E. Shotts Jr.3、《深入理解 Linux 内核》by Daniel P.Bovet / Marco Cesati4、《Linux/UNIX系统编程手册》by Michael Kerrisk5、《

2022-02-07 11:34:15 671

原创 laravel时间格式化引起的时区问题

laravel的时区设置为PRC或者Asia/Shanghai后,数据插入到数据库是,现实的时间是正常的,但是查询后却是不正常的,原因竟然是我在查询的时候把时间格式化的问题。laravel默认的时间格式是这样的,如图:为了修改这个格式,我在Model里做了配置: protected $casts = [ 'created_at' => 'datetime:Y-m-d H:i:s', 'updated_at' => 'dateti

2022-02-01 08:00:00 2429

原创 Larave之phpunit单元测试(四)之覆盖率分析

什么是覆盖率覆盖率就是你的单元测试所测试的代码和你写的总代码的占比。很多互联网公司要求项目达到一定的覆盖率,有些公司甚至要求覆盖率达到百分百,虽然覆盖率可以体现你的单元测试够不够完善,但是覆盖率并不是越高越好,一味的强求百分百覆盖率我们并不提倡,因为我们不可能把框架自带的功能也都写上对应的单元测试,首先它们是身经百战的,基本没什么问题,其次这个工作量是让人崩溃的,也会极大的延误你的工作效率,不过最好确保你的核心代码有着足够高的覆盖率。覆盖率配置我们在第二篇中介绍过phpunit.xml的配置

2022-01-31 08:00:00 879

原创 Larave之phpunit单元测试(三)之测试文件上传

测试文件上传其实laravel官网文档中是有介绍的Illuminate\Http\UploadedFile 提供了一个 fake 方法用于生成虚拟的文件或者图像以供测试之用。它可以和 Storage facade 的 fake 方法相结合,大幅度简化了文件上传测试。举个例子,你可以结合这两者的功能非常方便地进行头像上传表单测试:<?phpnamespace Tests\Feature;use Illuminate\Foundation\Testing\RefreshDatabase;

2022-01-30 08:00:00 793

原创 记一次apache伪静态的跨域解决方案

前端用的vue,后端用的laravel-S。在laravel根目录的public目录下新建.htaccess文件,内容如下:<IfModule mod_headers.c> #这里*代表接受所有来源的访问,一般来讲不太安全,可以只放你需要的域名或者ip及端口 Header always add Access-Control-Allow-Origin: "*" Header always add Access-Control-Allow-Methods: "GET,POST,

2022-01-29 08:00:00 868

原创 Larave之phpunit单元测试(二)之安装、phpunit.xml配置及简单使用

安装linux和windows用户均可以使用composer进行PHPUNIT的安装,默认安装最新版composer global require phpunit/phpunit装完后可以运行phpunit --version查看是否安装成功及版本号,如图安装好了之后可以在laravel项目根目录下执行,laravel是自带一个tests目录和一些测试文件的,当然也有自带的phpunit.xml配置文件:<?xml version="1.0" encoding="UTF

2022-01-28 08:00:00 1605

原创 Larave之phpunit单元测试(一)之为什么要写单元测试

什么是单元测试作为程序员,对测试这个词肯定不陌生,每次项目做完,都需要测试一遍,当然你可能会说:“这是测试工程师的工作!,我为什么要干”,不着急,看下去,文章会回答这个问题。所谓单元测试,就是把代码以最小的单位进行测试,在php中,最小的单位可以理解为函数,也就是说对每个函数进行测试。为什么要写单元测试为了离猝死远一点,哈哈,开个玩笑,但是肯定会让你少掉一点头发。首先来说,我也是从小白过来的,也是经历过社会的洗礼和岁月的摧残。刚毕业那会儿,由于才疏学浅,写代码都很费劲,更别说什么单元

2022-01-27 08:00:00 249

原创 vue项目打包后---TypeError: Cannot read properties of undefined (reading ‘echarts‘)问题解决

问题描述项目引入了echarts用来做中国地图,在本地cli跑的时候没有问题,但是build打包后会出现TypeError: Cannot read properties of undefined (reading 'echarts')。原因单独下载的echart中的china.js,项目中直接引用import '../../assets/js/china.js'打包后就会出现问题,不晓得是不是属于官方的bug解决用npm安装echartsnpm install

2022-01-26 14:00:00 4840 2

原创 apache和nginx下vue页面刷新404解决方案

问题描述记录一个新手很容易遇见的问题,vue的项目,在打包前本地cli模式运行没有任何问题,但是打包完在apache或者nginx中配置了域名后,项目会出现刷新后404的奇怪问题原因vue-router的mode使用了history模式,默认应该是hash模式。一般都会因为hash模式的url不够美观,都用的history模式,而问题是由于history模式引起的。history模式下的url并不是真实存在的,所以刷新后会找不到。当你打包了项目后,一般默认会生成一个dist文件夹,文件夹下有

2022-01-25 12:12:41 3375

原创 php使用openssl_encrypt和openssl_decrypt进行AES加密解密

openssl_encrypt方法参数介绍://加密function openssl_encrypt($data, $cipher_algo, $passphrase, $options = 0, $iv = "", &$tag = null, $aad = "", $tag_length = 16) { }$data:要加密的数据;$cipher_algo:你要使用的算法,可以打印openssl_get_cipher_methods()的结果查看所有算法;$passphr.

2022-01-20 12:18:51 4525

原创 基于Hyper及Vue搭建的聊天系统

开头语学习Hyper两周,做个简易聊天系统,小小实战一下,有不足的地方希望大佬指正。项目功能项目功能有登录、用户管理、发起聊天、私聊、群聊、未读消息统计仓库地址前端GIT仓库:GitHub - hxs9712/hyperf-chat-admin-vue: 基于vue和hyperf搭建的聊天系统,需要登录接口GIT仓库:https://github.com/hxs9712/hyperf-chat-admin-api.git数据库文件也在接口GIT仓库中哦效果预览用户管理

2022-01-11 18:37:05 741

原创 PHP字符串比较规则

有小伙伴面试的时候私信问我字符串类型的小数、百分比数大小怎么比较,都是些很基础的东西,网上其实能够搜到,但是很多小伙伴还是缺少动手能力以及做笔记的习惯。代码示例$a = "1.17%";$b = "4%";var_dump($a>$b);//因为1比4小,所以返回false$a = "99%";$b = "100%";var_dump($a>$b);//因为9比1大,所以返回true$a = "1";$b = "2";var_dump($a>$b);//返..

2022-01-10 17:31:44 283

全国最全最新的省市区数据表

全国最全最新的省、市、区(县)数据表,已经进行了三级分类,并且长期实时维护

2021-12-28

基于Laravel封装的Redis+lua分布式锁源码

基于Laravel封装的Redis+lua分布式锁源码

2021-11-29

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除