自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 Ubuntu-18.04安装Docker

1):先更新ubuntu的apt源索引sudo apt update2):安装依赖sudo apt install apt-transport-https ca-certificates curl software-properties-common3):添加Docker官方GPG key,并验证秘钥curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -sudo apt-key fingerp

2021-09-06 18:34:42 216

原创 ubuntu 18.04 安装之后的常用配置

一:设置主机桥联右键我的虚拟机,然后选择设置,网络适配器选择桥联模式,确定保存即可;注意桥联之后打开浏览器看看是否能够连接网络,终端窗口 ping 是否能够ping 通;二:取消每次执行 sudo 命令都要输入密码确认1): 在ubuntu 桌面右键打开终端open terminall ,执行命令:sudo visudo2):找到 ALL=(ALL:ALL) ALL 修改为 ALL=(ALL:ALL) NOPASSWD:ALL 之后,Ctrl+X 执行保存退出;三:ubuntu 修

2021-09-06 18:07:50 364

原创 PHP算法题猴子选大王最简单写法

1、题目:现有 n 只猴子围坐成一个圈,按顺时针方向从1到n编号。然后从1号猴子开始沿顺时针方向从1开始报数,报到m的猴子出局,继续从刚出局猴子的下一个位置重新从1开始报数,报到m猴子出局。如此循环重复,直至剩下一个猴子,它就是大王。2、算法:思路:利用数组队列, m 的直接从数组去除,不是 m 的排到数组队列的最后面,然后删除其在原数组中的位置; function findMonkeyKing($n,$m){ $monkeys = range(1, $n); $i = 0;

2021-08-26 18:23:19 391

原创 Laravel项目部署到线上需要注意的一些问题

Laravel项目部署到线上常见问题1 目录权限问题2 Nginx的配置文件的问题3 PHP扩展要记得开启4 git clone 缺少核心库5 git clone app_key的错误6 出现 The cipher and / or key length are invalid7 Laravel 中 seeder 执行失败准备部署 Laravel 应用到生产环境时,却出现了以下一些问题,你在本地上基本不会出现问题,但是到线上很多问题都出来了。整理了一些问题与bug,希望在你部署laravel项目的时候,如

2021-07-12 12:35:46 743 2

原创 Mysql数据库架构设计与优化

Mysql数据库架构设计与优化1. 数据库命名规范所有数据库对象名称必须使用小写字母并用下划线分隔mysql是大小写敏感的,sql除外。不同的数据库名:Dbname、dbname;不同的表名:Table、table所有数据库对象名称,禁止使用mysql保留关键字比如以下,查询的列表中有from关键字,必须用反单引号转义才行,否则会报错!select id,username,from,age from tb_user;常见的mysql关键字数据库对象的命名要能做到见名知意,并且最好

2021-02-26 13:12:04 250

原创 PHP 接口的安全设计要素:Token,签名,时间戳

后端以api的方式将数据源呈现出来是目前的趋势,可以用在前后端分离的架构中,前后端分离之后,前后端人员能够更加专注于自己板块的东西;也可以用在后端与后端相互调用中。拿到接口后,前台就可以通过链接获取接口提供的数据,而返回的数据一般分为两种情况,xml和json,在这个过程中,服务器并不知道,请求的来源是什么,有可能是别人非法调用我们的接口,获取数据,因此就要使用安全验证。验证原理原理从图中可以看得很清楚,前台想要调用接口,需要使用几个参数生成签名。1 时间戳:当前时间2 随机数:随机生成的随机

2021-02-25 11:11:47 1023

原创 PHP 程序员该如何有效调试Bug

调试的定义:通过一定方法,在程序中找到并减少缺陷的数量,从而使其能正常工作。这里说一些如何调试PHP程序的经验。一、PHP自带的调试功能1、自带的报错功能两个名词:开发环境是开发人员在进行开发和调试的环境,生产环境是最终客户在用的线上环境;开发环境和生产环境要分开设置报错功能。(1)开发环境开发环境需要打开报错,以下是php.ini的配置项及其说明:; This directive sets the error reporting level.; Development Value:

2021-01-27 15:40:15 349

原创 Mysql 分库分表设计

一. 分表场景:对于大型的互联网应用来说,数据库单表的记录行数可能达到千万级甚至是亿级,并且数据库面临着极高的并发访问。采用Master-Slave复制模式的MySQL架构,只能够对数据库的读进行扩展,而对数据库的写入操作还是集中在Master上,并且单个Master挂载的Slave也不可能无限制多,Slave的数量受到Master能力和负载的限制。 因此,需要对数据库的吞吐能力进行进一步的扩展,以满足高并发访问与海量数据存储的需要!对于访问极为频繁且数据量巨大的单表来说,我们首先要做的就是减少单表的记录

2021-01-19 14:31:07 290

原创 PHP 用递归法和引用实现无限极分类

1、递归法实现将原始数组无限循环,按照层级向下找到子类并归类,找到一个删除一个,知道原始数组下最后一组数据function getChildTree($data, $id = 0) { //初始化儿子 $child = []; //循环所有数据找$id的儿子 foreach ($data as $key => $datum) { //找到儿子了 if ($datum['pid']

2020-12-22 14:37:30 198

原创 Nginx 配置 404 错误页面

1:找到 nginx 配置文件 ,由于我的网站自定义了域名,我的配置文件在 /usr/local/nginx/conf/vhost 下 的 www.xxxxxx.com.conf 将 server 区域中的 # error_page 404 /404.html 前的 # 去掉 ; 没有的话则加上 error_page 404 /404.html 或者 error_page 404 = https://www.xxx.com/404.html2: 测试nginx.conf

2020-12-17 19:11:11 348

原创 Linux 下 ThinkPhp 5 执行定时任务详解

在 application/crontab 下新建 command 目录,所有要执行的任务文件都放在这下面,然后在command下新建要执行的任务文件 Task.php![在这里插入图片描述](https://img-blog.csdnimg.cn/2020121020381647.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4Mz

2020-12-10 20:55:07 522

原创 PHP laravel 微信 JsApi 支付详细过程

1 :下载微信支付 sdk(php),下载地址 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201210182644509.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM

2020-12-10 19:01:42 1348 2

原创 nginx反向代理获取用户真实ip

nginx做反向代理时,默认的配置后端获取到的ip都是来自于nginx,那么如何转发用户的真实IP到后端程序呢?当前端使用nginx代理,后端使用php-fpm时,如果还是使用$_SERVER[‘REMOTE_ADDR’],那么php程序获取到的是nginx的ip地址,而不是用户的真实ip。此时需要在nginx的配置文件中加入下面三个指令 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_

2020-10-28 17:45:20 300

原创 Nginx 反向代理解决静态文件无法加载问题

找到配置文件 nginx.php,修改如下server { listen port; server_name domain; location / { proxy_pass http://IP; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_se

2020-10-28 16:20:47 1736

原创 mysql5.7 如何关闭严格模式

[mysqld] 下面添加该行 不能有空格 不能有双引号单引号sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION或者动态修改(重启失效)首先从查询sql-model 现有值SELECT @@GLOBAL.sql_mode;修改全局S ET @@GLOBAL.sql_mode='NO_AUTO_CREATE

2020-10-15 17:10:06 1766

转载 PhpStorm 快捷键大全

查询快捷键 CTRL+N 查找类 CTRL+SHIFT+N 查找文件,打开工程中的文件(类似于eclipse中的ctrl+shift+R),目的是打开当前工程下任意目录的文件 CTRL+SHIFT+ALT+N 查 找类中的方法或变量(JS) CIRL+B 找变量的来源,跳到变量申明处 CTRL+ALT+B 找所有的子类 CTRL+SHIFT+B 找变量的 类 CTRL+G 定位行,跳转行 CTRL+F 在当前窗口查找文本 CTRL+SHIFT+F 在指定路径查找文本

2020-10-13 10:16:49 345

原创 PHP + Redis 结合定时任务实现消息队列

1、创建入列脚本 rpush.php<?php$redis = new Redis(); $redis->connect('127.0.0.1',6379); $password = '****'; $redis->auth($password); $arr = array('h','e','l','l','o','w','o','r','l','d'); foreach($arr as $k=>$v){ $redis->rpush("myli

2020-10-12 19:29:57 637

转载 vim 编辑常用命令大全

在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行。你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format。使用gg=G可对整篇代码进行排版。vim 选择文本,删除,复制,粘贴文本的选择,对于编辑器来说,是很基本的东西,也经常被用到,总结如下:v 从光标当前位置开始,光标所经过的地方会被选中,再按一下v结束。 V 从光标当前行开始,光标经过的行都会被选中,再按一下V结束。 Ctrl + v.

2020-10-12 18:36:09 428

原创 Linux 下定时任务执行 PHP 脚本并传递变量参数

xshell 远程连接上服务器之后,输入编辑命令 crontab -l 可查看 所有的定时任务列表[root@1dae434fd root]# crontab -l在编写定时任务之前我们要先熟悉计划任务的规则语法格式,以行为单位,一行为一个计划:分 时 日 月 周 需要执行的命令执行的命令建议写成绝对路径的格式!取值范围(常识): 分:0~59 时:0~23 日:1~31 月:1~12 周:0~7,0和7表示星期天四个符号:*:表示取值范围中的每一个数字

2020-10-12 17:50:31 906

原创 PHP fwtire 将数据批量写入并生成文件

PHP fwtire 将数据批量写入并生成文件利用 foreach 将有规律的链接写入本地文件<php? function writeFile($arr) { if (!is_array($arr) && !empty($arr)) { return '数组异常'; } $path = "C:/test.txt"; $file = fopen($path, 'w');

2020-08-20 17:36:53 475

转载 PHP 中 超全局变量 $_SERVER 详细介绍

PHP 中 超全局变量 $_SERVER 详细介绍$_SERVER[‘SERVER_ADDR’]//—— 当前运行脚本所在的服务器的 IP 地址。$_SERVER[‘SERVER_NAME’]//——当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。//Note: 在 Apache 2 里,必须设置 UseCanonicalName = On 和 ServerName。否则该值会由客户端提供,就有可能被伪造。 上下文有安全性要求的环境里,不应

2020-08-20 17:19:06 1495

原创 PHP 冒泡排序法对数组排序,从小到大以及从大到小

PHP 冒泡法对数组排序,从小到大以及从大到小冒泡法排序可简单的理解为,从数组的第一个值开始,循环的与后面的所有值进行对比,选出大(小)的那个,继续与后续的值对比,继续选出大(小)的值一直到两两比较完,并把它放到最后;接下来就是进入循环 ,第二个依次与后面数组值比较,知道字后一个比较完成,则排序完成,接下来是我写好的冒泡排序,代码如下:冒泡排序法(从小到大)<?php // 冒泡排序 从小到大 function arrSort($arr) { $len = co

2020-08-20 15:45:59 2951 1

原创 Redis-cli 报错:-bash: redis-cli: command not found ,设置全局使用redis-cli 命令

Redis-cli 报错:-bash: redis-cli: command not found ,设置全局使用redis-cli 命令相信经常有跟我一样的小白,想要连接redis时,直接使用 redis-cli 却不能正确连接,出现: -bash: redis-cli: command not found 报错的问题,其实这时候我们需要配置可以全局使用 redis-lic 命令,解决办法如下:解决方法找到 redis-cli ,根据自己安装reids 的位置来找,通常在 /usr/local/r

2020-08-20 13:46:47 12739

原创 lnmp 环境下 php-fpm 开启mysql 慢查询日志并记录

lnmp 环境开启sql 慢查询并记录到日志找到 php-fpm.cof一般默认在 /usr/loca/php/etc/php-fpm.conf ,找到并编辑,执行一下命令root@xlkmelac:/# cd /usr/loca/php/etc/php-fpm.confroot@xlkmelac:/# vim php-fpm.conf找到 php-fpm.conf 中 的 request_slowlog_timeout 设置慢查询超时时间,我现在设置的是 10s(可自己设定时间)

2020-08-20 12:49:07 439

空空如也

空空如也

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

TA关注的人

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