自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

function的专栏

总结经验、分享知识

  • 博客(64)
  • 收藏
  • 关注

转载 安装rabbitmq和php扩展

一、安装rabbitmq服务端1、安装erlang试了几次erlang官方的包安装后,在安装rabbitmq时都报错要依赖R14B02,干脆使用rabbitmq官方提供的包:https://github.com/rabbitmq/erlang-rpm 点击下载,终于不报错了。rabbitmq官方提供安装包的步骤:1、下载后进入安装包,直接输入命令:make2、安装过程需要3分钟左右,编译过程中需...

2018-06-14 19:10:30 680

转载 浅谈控制反转与依赖注入

第一章:小明和他的手机从前有个人叫小明小明有三大爱好,抽烟,喝酒…… 咳咳,不好意思,走错片场了。应该是逛知乎、玩王者农药和抢微信红包小明的三大爱好我们用一段简单的伪代码,来制造一个这样的小明class Ming extends Person{ private $_name; private $_age; function read() { /...

2018-04-23 17:09:51 319

转载 MySQL 5.7忘记root密码如何修改?

案例环境如下:        操作系统 :   centos7        数据库版本: 5.7.18 MySQL Community Server (GPL)忘记密码,输入错误的密码时遇到下面错误信息:[root@mytestlnx02 ~]# mysql -u root -pEnter password: ERROR 1045 (28000): Access denied for user ...

2018-03-16 11:19:24 776

转载 CentOS 7.2使用yum安装MYSQL 5.7.10

1 查看Linux发行版本[root@typecodes ~]# cat /etc/redhat-releaseCentOS Linux release 7.2.1511 (Core)2 下载MySQL官方的Yum Repository根据Linux发行版本(CentOS、Fedora都属于红帽系),从mysql官方(http://dev.mysql.com/downloads/repo/yu...

2018-03-16 11:11:21 405

转载 web安全之CSRF

一.CSRF是什么?  CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。二.CSRF可以做什么?  你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取

2017-08-24 16:44:57 418

转载 深入浅出讲解:php的socket通信

对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1.         什么是TCP/IP、UDP?2.         Socket在哪里呢?3.         Socket是什么呢?4.         你会使用它们吗?什么是TCP/IP、UDP?         TCP/IP(Trans

2017-08-21 15:51:49 331

原创 nginx之负载均衡

负载均衡负载均衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。使用带有负载均衡的多个服务器组件,取代单一的组件,可以通过冗余提高可靠性。负载均衡服务通常是由专用软体和硬件来完成。负载均衡最重要的一个应用是利用多台服

2017-08-09 14:57:52 342

原创 nginx之缓存补充

陈旧总比没有强Nginx 内容缓存的一个非常强大的特性是:当无法从原始服务器获取最新的内容时,Nginx 可以分发缓存中的陈旧(stale,编者注:即过期内容)内容。这种情况一般发生在关联缓存内容的原始服务器宕机或者繁忙时。比起对客户端传达错误信息,Nginx 可发送在其内存中的陈旧的文件。Nginx 的这种代理方式,为服务器提供额外级别的容错能力,并确保了在服务器故障或流量峰值的情况下的

2017-08-09 11:28:32 1098

原创 nginx之缓存

nginx文件缓存漫谈一个 web 缓存坐落于客户端和原始服务器(origin server)中间,它保留了所有可见内容的拷贝。如果一个客户端请求的内容在缓存中存储,则可以直接在缓存中获得该内容而不需要与服务器通信。这样一来,由于 web 缓存距离客户端“更近”,就可以提高响应性能,并更有效率的使用应用服务器,因为服务器不用每次请求都进行页面生成工作。在浏览器和应用服务器之间,存在多种潜在缓

2017-08-09 11:18:49 705

转载 Nginx try_files 里的一个坑

今天下午 blog 某管理员踩到了 nginx try_files 的一个坑,导致 WordPress 博客采用了固定链接的页面无法访问。此问题持续半小时后修复。原来的配置是这样的: location / { try_files $uri $uri/ /index.php; index index.html index.h

2017-08-04 13:59:35 12224

原创 nginx之location 匹配规则

语法规则location [=|~|~*|^~] /uri/ { … }模式含义location = /uri= 表示精确匹配,只有完全匹配上才能生效location ^~ /uri^~ 开头对URL路径进行前缀匹配,并且在正则之前。location ~ pattern开头表示区分大小写的正则匹配

2017-08-03 15:54:30 652

转载 Ubuntu下设置DNS的方法

安装好Ubuntu之后设置了静态IP地址,再重启后就无法解析域名的解决方案

2017-08-01 10:14:39 91132 2

转载 MySQL数据导出与导入

发一篇基础的,关于MySQL数据导出导入的文章,目的有二:1.备忘2.供开发人员测试工具mysqlmysqldump应用举例导出导出全库备份到本地的目录mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8

2017-07-14 15:12:21 1700

转载 web安全之xss

xss表示Cross Site Scripting(跨站脚本攻击),它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻击中,通过插入恶意脚本,实现对用户游览器的控制。xss攻击可以分成两种类型:非持久型攻击持久型攻击下面我们通过具体例子,了解两种类型xss攻击。 1.非持久型xss攻击顾

2017-04-20 13:49:27 696

转载 Ubuntu系统下lnmp环境搭建和Nginx多站点配置

最近需要使用Ubuntu作为服务器搭建Lnmp环境,顺便将操作过程写下来,与大家分享。如有不足之处,欢迎大家提出不同意见。(本文默认读者已经熟悉相关linux命令的使用,比如创建文件和文件夹,编辑文件的命令等。)操作系统:Ubuntu 15.10本系统是新装的,所以没有Nginx、mysql和php环境。如果之前有装过这些环境的还得先把之前的软件先卸载。 一、安装M

2017-04-17 19:29:58 4023

原创 ubuntu 终端乱码问题解决方案

第一种解决方案:改成全英文环境来解决乱码 :用vim配置语言环境变量vim /etc/environment改成:LANG=”en_US.UTF-8″LANGUAGE=”en_US:en”sudo vim /var/lib/locales/supported.d/local改成en_US.UTF-8 UTF

2017-04-17 11:51:26 25445

转载 基于VirtualBox虚拟机安装Ubuntu图文教程

一. 下载安装VirtualBox官网下载VirtualBox,目前版本:VirtualBox 5.1.8 for Windows hosts x86/amd64下载好了安装VirtualBox,一路Next就可以了,这个比较简单。运行VirtulBox程序, 如下图:配置VirtualBox。按 CTRL+G打开全局设定,根据需要可以设定虚拟脑位置和界面语言:

2017-04-14 15:22:45 157572 25

转载 linux中fork()函数详解(实例讲解)

一、fork入门知识     一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。    一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来

2017-03-21 11:22:47 315

转载 简单实现防盗链

百度百科对防盗链的定义是此内容不在自己服务器上,而通过技术手段,绕过别人放广告有利益的最终页,直接在自己的有广告有利益的页面上向最终用户提供此内容。 常常是一些名不见经传的小网站来盗取一些有实力的大网站的地址(比如一些音乐、图片、软件的下载地址)然后放置在自己的网站中,通过这种方法盗取大网站的空间和流量。这段话理解起来很生涩,举个例子:有时候我们从一个网站,比如腾讯,转载了一篇文章

2017-03-16 17:46:54 1065

转载 公钥私钥 和SSL

一,公钥私钥1,公钥和私钥成对出现2,公开的密钥叫公钥,只有自己知道的叫私钥3,用公钥加密的数据只有对应的私钥可以解密4,用私钥加密的数据只有对应的公钥可以解密5,如果可以用公钥解密,则必然是对应的私钥加的密6,如果可以用私钥解密,则必然是对应的公钥加的密明白了?假设一下,我找了两个数字,一个是1,一个是2。我喜欢2这个数字,就保留起来,不告诉你们,然后我告诉大家,

2016-09-10 18:33:06 869

转载 公钥私钥

加密和认证  首先我们需要区分加密和认证这两个基本概念。  加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。其重点在于数据的安全性。身份认证是用来判断某个身份的真实性,确认身份后,系统才可以依不同的身份给予不同的权限。其重点在于用户的真实性。两者的侧重点是不同的。  公钥和私钥  其次我们还要了解公钥和私钥的概念和作

2016-09-10 18:31:09 436

转载 浅谈https\ssl\数字证书

在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了。本文追本溯源围绕这个模式谈一谈。名词解释  首先解释一下上面的几个名词:https:在http(超文本传输协议)基础上提出的一种安全的http协议,因此可以称为安全的超文本传输协议。http协议直接放置在TCP协议之上,而https提出在http和TCP中间加上一层加密层。从发送

2016-08-26 19:01:00 1973

转载 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?

摘要:CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。...转载请注明来源:什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?什么是CGICGI全称是“公共网关接口”(Common Gateway Interface)

2016-08-26 15:40:07 585

转载 JSONP跨域原理和jQuery.getJSON用法

JSONP是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问(这仅仅是JSONP简单的实现形式)。JSON系统开发方法是一种典型的面向数据结构的分析和设计方法,以活动为中心,一连串的活动的顺序组合成一个完整的工作进程。之所以会有跨域这个问题的产生根本原因是浏览器的同源策略限制,理解同源策略的限制同源策略是

2016-05-23 00:05:45 5023

转载 JavaScript跨域(1):什么是跨域,如何跨域

无数次看到:Origin null is not allowed by Access-Control-Allow-Origin , 网络没有让你绝望,但是或许会让你蛋疼,因为你找了半天没看到一个比较实用的解决方案,亦或者水平不够,别人写的东西累赘没看懂,抑或是。。。  网上看到了一篇文章——跨域资源共享的10中方式,已经放在自己的家里了O(∩_∩)O~  跨域也是平时项目中比较让人

2016-05-19 23:20:38 548

转载 Git You have not concluded your merge. (MERGE_HEAD exists)

You have not concluded your merge. (MERGE_HEAD exists)本地有修改和提交,如何强制用远程的库更新。出现这种情况一般是git本地有commit,但是不能更新,也不能cleanup,导致无法push到服务器。使用git pull -f 强制更新,仍然提示 You have not concluded your merge. (ME

2016-03-17 10:49:49 13568

转载 清楚浏览器DNS缓存

解决方案:Firefox解决方式:Firefox有dns缓存功能,但是默认缓存时间只有1分钟,可以通过修改该默认值加快DNS解析速度,方法如下:打开一个新的窗口,地址栏输 入 about:config,回车,进入设置界面。然后搜索 network.dnsCacheExpiration ,把原来的60改成 6000(表示缓存6000秒),再搜索network.dnsCacheEn

2016-02-17 16:10:25 664

转载 PHP中Stream(流)的概念与用法

Stream是PHP开发里最容易被忽视的函数系列(SPL系列,Stream系列,pack函数,封装协议)之一,但其是个很有用也很重要的函数。Stream可以翻译为“流”,在Java里,流是一个很重要的概念。流(stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备、外部文件等。根据流的方向又可以分为输入流

2015-10-15 18:18:32 951

原创 关于php规范psr-4

FIG制定的PHP规范,简称PSR,是PHP开发的事实标准。PSR原本有四个规范,分别是:PSR-0 自动加载PSR-1 基本代码规范PSR-2 代码样式PSR-3 日志接口2013年底,新出了第5个规范——PSR-4。PSR-4规范了如何指定文件路径从而自动加载类定义,同时规范了自动加载文件的位置。这个乍一看和PSR-0重复了,实际上,在功能上确实有所重复。区别在

2015-10-10 18:42:04 501

转载 输入URL之后都发生了什么

输入URL之后都发生了什么这个标题印象中已经有很多讨论了。也来说说这个话题。从头开始,当你的电脑使用网线连接到网络的时候,我们都知道,这个时候你的电脑会获取一个IP,这个IP就是你的唯一标识了。好了继续,你在浏览器中敲入了http://www.sina.com,开始你的网络之旅。那么这个时候问题来了,我们都知道你这个数据是从哪里的机器来的呢?比如sina的提供这个服务的机器也有个I

2015-10-10 17:00:31 432

原创 js中移除空白节点

//移除空白节点,空白节点的类型是3function removeWhiteNode(node) {for (var i = 0; i if (node.childNodes[i].nodeType === 3 && /^\s+$/.test(node.childNodes[i].nodeValue)) {node.childNodes[i].parentNode.removeCh

2015-08-02 22:49:40 3497

转载 Linux下设置环境变量PATH的方法

1、Ubuntu专有方式编辑 /etc/ld.so.conf 文件,如果以下语句不存在,则加入:include /etc/ld.so.conf.d/*.conf然后在/etc/ld.so.conf.d下边新建一个以 .conf 结尾的文件。在新建的 .conf 文件中写入需要设置的 path,例如:~/mypath/bin2、用户目录下的 .bashrc 文件在用户

2015-07-03 13:50:29 529

转载 SVN分支/合并原理及最佳实践

使用svn几年了,一直对分支和合并敬而远之,一来是因为分支的管理不该我操心,二来即使涉及到分支的管理,也不敢贸然使用合并功能,生怕合并出了问题对团队造成不良影响,最主要的原因是,自己对分支的目的和合并的方法不甚了解,这才是硬伤。下文的实践主要是参考了TortoiseSVN的帮助文档和Subversion的在线文档,Subversion的在线文档:http://svnbook.red-bea

2015-05-05 12:53:36 560

原创 Javascript的"预编译"思考

看到一个JS面试题,大约是这样的 Js代码       var x = 1, y = z = 0;     function add(n) {         n = n+1;    }       y = add(x);          function add(n) {        n = n + 3;     }

2015-03-27 13:58:41 1369

原创 PHP面向对象之接口的实例

这篇文章主要以代码为主,主要作用是通过实例理解PHP面向对象的接口(interface)和备忘。定义接口使用interface关键字,不在使用class关键字;接口中可以定义常量,不可以定义成员属性和成员方法,这一点和抽象类不同(抽象类可以定义)接口中的方法全是抽象方法,但是不用abstract关键字修饰,没有实体内容interface usb{    function con

2015-03-19 23:17:18 1922

原创 PHP的单例模式的一个实例

这篇文章对于PHP单例模式的解释并不一定完善!只是举一个实例而已,目的是让我自己通过一个实例可以加深对单例模式的理解!在此,仅供参考!单例:可以简单的理解是通过一个类,只能实例化单个对象,不能实例化多个对象!class e {    public $uname;    static $obj = NULL;      //定义一个静态属性    private func

2015-03-17 00:16:52 2913

原创 mysql触发器语法的一个实例

Not allowed to return a result set from a trigger;SQL 错误 [1327] [42000]: Undeclared variable: shen;ERROR 1172 (42000): Result consisted of more than one row;SQL 错误 [1054] [42S22]: Unknown column 'fenshu' in 'field list'

2015-03-12 14:59:50 960

原创 Js 冒泡事件阻止

1. 事件目标现在,事件处理程序中的变量event保存着事件对象。而event.target属性保存着发生事件的目标元素。这个属性是DOM API中规定的,但是没有被所有浏览器实现 。jQuery对这个事件对象进行了必要的扩展,从而在任何浏览器中都能够使用这个属性。通过.target,可以确定DOM中首先接收到事件的元素(即实际被单击的元素)。而且,我们知道this引用的是处理事件的DOM

2015-03-05 17:36:49 783

转载 RBAC权限管理解析

RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。(如下图)角色是什么?可以理解为一定数量的权限的集合,权限的载体。例如:一个论坛系统,“超级管理员

2015-01-30 11:18:04 501

转载 RBAC权限设计解析及表的设计

实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能。因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权

2015-01-30 11:14:27 12439 1

空空如也

空空如也

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

TA关注的人

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