月度存档: 八月 2016

VirtualBox上虚拟机的导入和导出,实现虚拟机的复制和转移

Virtualbox提供了导出和导入虚拟机的功能。由于近期我发现Virtualbox虚拟机所在的分区空间紧张,所以打算把虚拟机转移到另外一个有空间的分区。体验了一下Virtualbox导出和导入功能,在此和大家分享一下经验。 首先,介绍一下在什么情况下需要导出和导入虚拟机。 1、有时候你需要和别人共享你的Virutalbox虚拟机,这样可以省去别人安装虚拟机和配置虚拟机的过程,节省大量时间。比如在 …

继续阅读 »

理解OAuth 2.0

OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。 本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。 全文阅读: 理解OAuth 2.0:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html

如何做单节点的优化

做单节点的优化,主要侧重于逻辑优化、算法优化和代码优化等。基本原则如下。 优化算法,选择合适高效的算法,降低不必要的递归、循环、多层循环嵌套等计算。用简单的算法完成大部分情况,不要为少数特例而将算法复杂化。特例由特殊的分支处理。 避免申请过多不必要的内存开销。 及时释放资源,降低资源占用时间,包括内存、I/O、网络和数据库等。 善用缓存:缓存常用的、不易变化的;偶有变化,可以考虑缓存依赖机制。 慎 …

继续阅读 »

i++与++i的区别及效率

先看看基本区别: i++ :先在i所在的表达式中使用i的当前值,后让i加1 ++i :让i先加1,然后在i所在的表达式中使用i的新值 看一些视频教程里面写for循环的时候都是写 ++i 而不是 i++,上网搜索了一下,原来有效率问题 ++i相当于下列代码 i += 1; return i; i++相当于下列代码 j = i; i += 1; return j; 当然如果编译器会将这些差别都优化掉, …

继续阅读 »

Redis和Memcache的区别总结

总结一: memcache官方定义 Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating da …

继续阅读 »

主键和唯一索引的区别

一、相似之处 创建主键的同时会创建一个唯一索引; 二、区别 主键是一种约束,目的是对这个表的某一列进行限制; 唯一索引是一种索引,索引是数据库表的一个冗余结构,目的是为了更好的查询; 主键列不允许为空值,而唯一性索引列允许空值; 一个表最多只能一个主键,但是可以包含多个唯一索引; 扩展阅读: 主键和唯一索引的区别:http://blog.csdn.net/baoqiangwang/article/ …

继续阅读 »

对Swoole、Workerman和php自带的socket的理解

为什么php自带的socket不怎么听说,基本都是用swoole,workerman去实现? 1、PHP的socket扩展是一套socket api,仅此而已。 swoole,用C实现,它的socket是C 库的socket,更加底层可控。 workerman,如题主所说,使用PHP实现,那它的socket就是用PHP socket扩展啊。只是对其进行工程化开发,成了一个框架。 2、swoole …

继续阅读 »

GitHub上有哪些比较有趣的PHP项目

链接就不贴了,可以在github上进行搜索。这里就不列举 symfony、laravel 这些大家都知道的项目了。只列举比较有意思的。 swoole , C扩展实现的PHP异步并行网络通信框架,可以重新定义PHP。过去PHP只能做Web项目,现在有了Swoole。任意服务器端程序都可以用PHP来写。 swoole_framework,基于swoole扩展开发的一个开发框架 yaf,C扩展实现的高性 …

继续阅读 »

Windows如何创建软链接(类似Linux系统的软链接)

创建软链接的条件 分区格式是NTFS文件系统 命令格式 命令格式:mklink /d(定义参数) \MyDocs(链接文件) \Users\User1\Documents(源文件) Mklink的参数定义 无参数指定:建立文件的符号链接。无参数指定的默认情况下,建立的是文件的符号链接,删除链接文件不会影响源文件, /d:建立目录的符号链接(symbolic link) /j:建立目录的软链接(联接 …

继续阅读 »

PHP使用Phar对文件进行压缩和归档

Phar简介 Phar是PHP Archive缩写,将php文件归档到一个文件包。 PHP5.3之后支持了类似Java的jar包,名为phar。用来将多个PHP文件打包为一个文件。 将一个模块的文件打包成一个phar,这样方便模块整体迁移,只需将phar文件移动过去,其他环境中include即可使用。 Phar为php的C语言扩展,安装php时会默认安装。 在安装目录 bin下面有phar文件,通 …

继续阅读 »

Laravel 框架版本如何选择

Laravel 框架版本如何选择 说明 很久以前在一个话题里面聊到的观点,很多同学在 Laravel 版本选择时候比较混淆,这里说下我的看法。 对 Laravel 框架发布周期不熟悉的同学请参阅 – Laravel 的发布路线图。 什么是 LTS 长期支持 (LTS)是一种软件的产品生命周期政策,特别是开源软件,它增加了软件开发过程及软件版本周期的可靠度。长期支持延长了软件维护的周期; …

继续阅读 »

如何安装Laravel 5.3

运行环境需求 Laravel 对运行环境需求比较低。当然,所有的这些需求 Laravel Homestead 虚拟机都满足,所以,强烈推荐你使用 Homestead 作为 Laravel 本地开发环境。 但是,如果你不使用 Homestead 的话,你需要确保你的运行环境满足下面的条件: PHP >= 5.6.4 开启PHP OpenSSL 扩展 开启 PHP PDO 扩展 开启 PHP Mbst …

继续阅读 »

如何在CentOS 7 上安装Composer

前期准备 安装前请务必确保已经正确安装了 PHP。打开命令行窗口并执行 php -v 查看是否正确输出版本号。 安装Composer 打开命令行并执行下列命令安装最新版本的 Composer (以下指令摘自 https://getcomposer.org/download/ ,请前往查看最新的安装指令): 执行第一条命令下载下来的 composer-setup.php 脚本将简单的检测 php.i …

继续阅读 »

如何在CentOS下PHP多版本共存时指定命令行状态默认使用的PHP版本

问题 在CentOS上安装了4个版本的PHP,但在命令行状态默认使用的php版本是最后安装的那个PHP版本,但我想指定命令行的PHP版本。 分析过程 1、多版本的话要先跟踪一下php命令是调用哪个目录的,可以使用找到后一般是个链接文件,删掉(或重命名)后重新建立一个新的链接文件到新版目录即可。【行不通,没发现有这个链接文件】 2、在 Linux 下执行 php 脚本时通常是可以使用以下命令: #/ …

继续阅读 »

CURL错误状态码汇总

CURL状态码列表 状态码 状态原因 解释 0 正常访问 1 错误的协议 未支持的协议。此版cURL 不支持这一协议。 2 初始化代码失败 初始化失败。 3 URL格式不正确 URL 格式错误。语法不正确。 4 请求协议错误 5 无法解析代理 无法解析代理。无法解析给定代理主机。 6 无法解析主机地址 无法解析主机。无法解析给定的远程主机。 7 无法连接到主机 无法连接到主机。 8 远程服务器不可 …

继续阅读 »