自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 centos6 虚拟机偶现 getaddrinfo error

主机睡眠后再开容易出现,还未解决尝试修改了 /etc/resolv.conf 文件,增加了 google 的 DNS server - 8.8.8.8

2018-10-24 11:48:20 314

转载 mysql 5.5 主从配置

master 跑在虚拟机上,slave 在虚拟机里用的 docker 跑的master配置 my.cnf: log-bin=mysql-bin-master #启用二进制日志 server-id = 1 #本机数据库ID 标示 binlog-do-db=HA #可以被从服务器复制的库。二进制需要同步的数据库名 binlo...

2018-05-20 20:44:43 366

原创 制作 php + nginx 的 docker 镜像

Dockerfile先新建目录,在目录下新建 Dockerfile 文件,docker 会根据该文件来 build 镜像。# 借用官方的的 php-fpm 镜像FROM php:7.2.4-fpm-stretch# 用来代替 cd,最好用绝对路径WORKDIR /app# 复制内容COPY . /app# 安装 nginxRUN apt-get update &am...

2018-04-16 00:04:05 1631

原创 XSS 和 CSRF

介绍两种最常见的针对 web 应用的攻击方式。XSS (Cross-site scripting) 跨站脚本攻击攻击者能够利用跨站脚本漏洞来绕过访问控制(access control),比如单源策略(same-origin policy)。 单源策略: 如果一个站点的内容有权限访问浏览器上的某些资源(比如 cookie),那么来自这个站点的所有内容都可以共享这些权限。跨站点脚...

2018-03-21 23:42:02 735

原创 php fpm 设置项 cgi.fix_pathinfo=1 漏洞不再出现

之前看网上说关于 cgi.fig_pathinfo=1 时的配置漏洞:http://www.laruence.com/2010/05/20/1495.html试了下后发现该漏洞在目前高版本的 php 中已经不再出现了,会直接显示 Access denied,查看 nginx 错误日志如下:Access to the script '/home/ksun/test' has been den...

2018-03-18 16:41:01 3881

翻译 CGI 1.1

不完全翻译,因为部分英文内容有点难以理解,水平有限。这不是一个强制的规范,所以各种实现都不一定完全按照本规范。摘要The Common Gateway Interface (CGI) is a simple interface for running external programs, software or gateways under an information serve...

2018-03-16 18:15:38 681

原创 nginx 配置及注意点

nginx 配置文件如下:...#location 1location / { try_files $uri $uri/ =404;}#会先到网站根目录下寻找指定的 404 页面, 没有找到就会用 nginx 生成的 404 页error_page 404 /404.html#location 2location ~ \.php$ { # try_file...

2018-03-10 13:36:10 329

翻译 借助 docker 安装 pgAdmin

pgAdmin 是一个强大的 postgresql 的图形化管理工具,既可以本地运行也可以以 web 应用的方式运行。因为 postgresql 是安装在虚拟机上的,所以我需要让 pgAdmin 以 web 应用的方式运行。但是文档里只有 Apache 相关的配置, 看起来很复杂,所以在网上搜了简化的安装方法并稍微改了下。安装 docker 和 nginx这个看文档即可。引入现成...

2018-03-07 19:06:38 4775

翻译 在 ubuntu 下用 checkinstall 代替 make install

许多最新版本的软件无法通过 apt 安装,只能到官网上下包包下载之后又大多需要 make install 来安装。make install 安装后卸载是非常麻烦的。在 ubuntu 下可以用 checkinstall 来代替 make install。 checkinstall会在安装的同时追踪安装过程,最终生成一个 .deb 文件,之后可以方便的通过包管理器来删除安装的包。以...

2018-03-05 23:15:25 1456

翻译 postgre(10)安装与使用 ubuntu14.04

安装按照官网教程,通过修改 Apt Repository 安装: 1.创建文件 /etc/apt/sources.list.d/pgdg.list,内容如下:$ deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main2.$ wget --quiet -O - https://www.postgresql....

2018-03-02 00:13:58 3941

翻译 mysql Innodb引擎

斜体字表示个人观点和注释翻译自 MYSQL 5.7英文文档事务隔离级别 中的 READ COMMITTED 节中有提到 RR 和 RC 隔离级别下,innodb 如何执行 update 操作。使用Innodb引擎的优点1.如果您的服务器因硬件或软件问题而崩溃,无论当时数据库中发生了什么情况,重新启动数据库后无需执行任何特殊操作。 InnoDB 崩溃恢复会自动完成崩溃前提交的所有更...

2018-02-19 23:11:13 229

转载 数据库基本知识

事务ACID原子性(atomicity)每个事务都是不可分割的最小单元,事务中的操作要么全部成功,要么全部失败回滚。一致性(consistency)事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。隔离性(isolation)一个事务所做的修改在最终提交以前,对其他事务是不可见的。持久性事务提交后,所做的修改会永久保存到数据库中。(这...

2018-02-19 16:26:39 356

翻译 mysql server 和 client

mysql serverMySQL服务器管理对包含数据库和表的MySQL数据目录的访问。数据目录也是其他信息(如日志文件和状态文件)的默认位置。当MySQL服务器启动时,它监听来自客户端程序(clients)的网络连接并代表这些客户端管理对数据库的访问。MySQL服务器还有一组系统变量,在运行时影响其操作。可以在服务器启动时设置系统变量,并且可以在运行时更改大部分系统变量以实现动态服务...

2018-02-19 13:47:41 1510

转载 BFC简介

转自知乎https://zhuanlan.zhihu.com/p/25321647 原作者:前段客栈常见定位方案在讲 BFC 之前,我们先来了解一下常见的定位方案,定位方案是控制元素的布局,有三种常见方案:普通流 (normal flow)在普通流中,元素按照其在 HTML 中的先后位置至上而下布局,在这个过程中,行内元素水平排列,直到当行被占满然后换行,块级元素则会被渲染为...

2018-02-17 22:58:32 169

原创 安装nodejs8.9.4

系统是 ubuntu14.04 server , apt-get install nodejs安装的是古老版本的nodejs,于是从官网下载包进行安装1. 解压 在官网下载的是.tar.xz后缀的,需要解压:xz -d ***.tar.xztar -xf ***.tar把解压后的目录放到 /usr/lib 下(用来存放可执行文件的目录)。 (之前网上说需要运行configu...

2018-02-16 22:48:31 2604

原创 https://ghostbin.com/

发现了一个有趣的网站https://ghostbin.com/ 它提供粘贴服务,可以把自己的代码粘贴到网站上(最多可以粘贴1MB内容),点击保存后会为你的代码生成一个网址,其他人就可以通过这个网址来访问你的代码。...

2018-02-15 23:46:55 1238

翻译 安装phpmyadmin

翻译并修改自https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-phpmyadmin-with-nginx-on-an-ubuntu-14-04-server安装phpmyadmin on ubuntu14.04 serversudo apt-get install phpmyadmi...

2018-02-15 20:24:19 478

转载 清除chrome的DNS缓存

地址栏输入chrome://net-internals/#dns 右上角有个箭头,下拉,依次点击Clear cache 和 Flush sockets 两项

2018-02-15 19:17:12 662

转载 freenode IRC

IRC是Internet Relay Chat 的英文缩写,中文一般称为互联网中继聊天。它是由芬兰人Jarkko Oikarinen于1988年首创的一种网络聊天协议。经过十年的发展,目前世界上有超过60个国家提供了IRC的服务。IRC的工作原理非常简单,您只要在自己的PC上运行客户端软件,然后通过因特网以IRC协议连接到一台IRC服务器上即可。它的特点是速度非常之快,聊天时几乎没有延迟的现象,并...

2018-02-15 15:48:42 1532

原创 angularjs 1.6.x 教程学习心得

依赖注入依赖注入是angularJs的核心。 应用启动时,angular会创建一个injector,它会寻找并注入所有应用需要的服务(必须先被正确的定义)(延迟实例化,lazily instantiate)。providersProviders are objects that provide (create) instances of services and expose c...

2018-02-15 13:58:57 845

转载 laravel blade模板引擎学习

@extends@extends用来指定子模板所继承的模板:@extends('test.master')<!-- 表示继承test目录下的master.blade.php模板 --!>@sectionblade模板引擎4.0建议用 @stop 替换 @endsection ,不过是向下兼容的,所以 @endsection 还可以用。 @section+@e...

2018-02-15 13:57:33 300

原创 javascipt 变速运动问题

今天在实现dom对象变速运动的时候发现了一个问题,以下是js代码关于速度的部分:timer = setInterval(function(){ //... console.log(oDiv.offsetLeft);//每次跑剩余行程的10分之一,以达到速度减缓的效果 oDiv.style.left = oDiv.offsetLeft+(target-oDiv.off...

2018-02-12 21:03:28 126

原创 编程心得

1.学习新技术的时候,找一篇好的教程远比直接埋头上要强。 2.编程时尽可能考虑各种情况,避免给今后的自己埋雷。 3.学习掌握一种新技术新方法新操作的最好办法还是应用在工作中(毕竟是真正的生产环境),所以平时有空的时候应该多想想工作代码有没有可以用新技术改进的地方。 4.好的学习环境也很重要,买台式机之前只能笔记本写代码(劣质屏幕+难用的键盘),换了机械键盘+台式机之后写代码的欲望更强了~~。...

2018-01-21 23:21:46 161

原创 PHP中的数组合并

偶然在工作中遇到的一个问题,php如何快速,高效的合并两个有序数组(键名为从0开始的连续整数,比如[1,2,3]),要求合并后的数组有序且键名为从0开始的连续整数(这样*json_encode*之后才不会带上键名)暂时的解决办法先array_merge,array_merge对于数字键名的数组会将重复值附加到后面在array_unique,此时数组内的值唯一,但是键名依然不连续

2018-01-21 02:50:21 192

原创 php在模板中传变量给js

正确方式var XXX = echo json_encode($xx) ?>;即使json_encode把中文转成了unicode编码,js接受变量时仍能恢复成中文。错误方式var xxx = JSON.parse( echo "'".json_encode($xx)."'" ?>);对于带有转义字符的json字符串,比如{"a":"{\"b\":\"test\"}"

2018-01-18 01:16:51 2342

原创 laravel5.5 Facade

Facade原理 以View::make()为例1.调用View::make()时,会先去config/app.php中的aliases数组中找到实际调用的Facade类。 'aliases' => [ //.... 'View' => Illuminate\Support\Facades\View::class, ],2.在Ill

2018-01-11 00:26:49 311

原创 mysql 写sql注意的地方

一次查询中不要join太多表,数据量过大导致超时,可以考虑用子查询代替--容易超时select max(A.c1), max(B.c1), max(C.c1) fromtable1 join A join B join C--优化select max(C.c1), tc.* from( select max(B.c1), tb.* from ( ...

2018-01-08 16:33:25 214

翻译 mysql explain详解

mysql explain 输出详解根据官方5.7手册整理(只列出常见的输出) https://dev.mysql.com/doc/refman/5.7/en/explain-output.htmlexplain输出中表的顺序:mysql会将表以处理sql时读取的顺序列出来 –根据测试,外层的表会列在上面join的顺序:假设A join B join C,从表A中读取第一行a1,找到

2018-01-07 13:08:36 340

原创 php编程注意点

php编程注意点

2017-11-29 22:54:33 162

原创 CSAPP SHLAB

CSAPP SHLAB这个lab总体来说不难,书上都有讲到,而且要注意的地方提示里都有写。不过还是花了挺多时间的。遇到的问题子进程停止后,父进程会在waitpid(pid,&status,WUNTRACED)中得到该子进程pid。但是再次使用waitpid(-1,&status,WNOHANG|WUNTRACED)时会忽视该子进程。 本想在waitfg中使用waitpid来挂起父进程等

2017-11-11 12:57:05 5394

原创 sublime text 3 配置文件记录:sublime-settings

{ "always_show_minimap_viewport": true, "bold_folder_labels": true, "color_scheme": "Packages/Theme - Dark Material/schemes/Dark-Material.tmTheme", "font_size": 9, "ignored_packages": [ &q

2017-10-29 22:29:58 915

原创 占两个字节的“空白符”

在修改开源论坛phpBB时,将一段文本字符串输出到html页面上时发现不能按单词换行,而是会打断单词。在浏览器上右键编辑后发现"空格"变成了 于是就想在输出前用str_replace将 替换成真的空格--str_replace(' ',' ',&text);当然结果失败了。最后,先用的urlencode()将&text输出,"空格"变成了%C

2017-10-18 09:58:40 6241

转载 什么是cgi,fastcgi,php-fpm

首先,CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。web server(比如说nginx)只是内容的分发者。比如,如果请求/index.html,那么web server会去文件系统中找到这个文件,发送给浏览器,这里分发的是静态数据。好了,如果现在请求的是/index.php,根据配置文件,nginx知道这个不是静态文件,需要

2017-10-15 16:53:15 235

转载 unbuntu14 安装vim8 from-source

原文地址https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source1.安装依赖 sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev \ libgtk2.0-dev libatk1.0-dev libbono

2017-09-06 18:47:15 181

原创 windows 在sublime text 3中安装sublimelinter-php

1.安装SublimeLinter2.安装SublimeLinter-php3.安装php4.Preference->Package Settings->SublimeLinter->Settings - user,添加如下内容:{ "lint_mode": "load_save", "paths": { "linux": [], ...

2017-09-05 21:26:43 552

原创 utf8与utf8md4

mysql的utf8字符集最多只支持3字节表示的字符,对于4字节的utf8字符需要用utf8mb4代替。即:修改数据库连接和表相应字段为utf8mb4插入数据时:    数据库连接    表字段    结果    utf8        utf8    失败    utf8mb4        utf8     失败    utf8         utf8mb4 失败

2017-09-02 19:09:40 2096

原创 csapp 2e cachelab

part 1这部分主要是LRU的问题,我是通过维护双向链表来模拟的:1.每当一个缓存被命中或者新加入时,将该缓存移到链表头。2.当新加入缓存且链表个数到达上限时,需删除链表尾的节点,新结点放到链表头。part 2只解决了64*64的矩阵转置,耗费了我两天时间,其余问题感觉意义不大,实用性也不强,懒得做了。因为s=5,E=1,b=5,所以对于64*64的矩阵,

2017-08-27 21:35:50 705

原创 ubuntu-用xshell无密码连接虚拟机报错

密钥和authorized_keys放在/home/sunkai/.ssh中,.ssh权限也已设置为700authorized_keys权限设置为了600但还是报错--所选的用户密钥未在远程主机注册后来发现是/etc/ssh/sshd_config的配置改错了:AuthorizedKeysFile  %h/.ssh/authorized_keys (这是正确配置)其中%h指

2017-07-29 16:36:45 389

原创 web-app 消息推送功能(浏览器为chrome59,firefox54)

1、启用该功能必须使用安全的连接(https, localhost, 127.0.0.1等等)2、使用自签名证书开启https,导入证书(导入失败则需要联系管理员修改组策略中的证书相关设置)。3、此时firefox需要将网站添加到例外,chrome需要修改启动选项:    将快捷方式中的目标修改为"C:\Program Files (x86)\Google\Chrome\App

2017-07-26 19:28:46 1451

原创 laravel 设置数据库时区 报错

用laravel DB的select()方法内嵌raw()方法设置时区时:DB::connection($db_name)->select(DB::raw("SET time_zone = '{$mysql_timezone}'"));报错:General error: 2053  (SQL: SET time_zone = '-03:00')改用statement()方法则不

2017-07-12 20:01:19 1215

空空如也

空空如也

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

TA关注的人

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