Nginx+PHP Web服务器安全配置  

在Web应用中,如果查看HTTP响应信息你有可能会发现X-Powered-By: PHP/5.2.1,Server:nginx/1.5.1这样的响应头信息.这样就会把服务器信息给暴露出来,我们可以修改配置隐藏服务器环境信息来增加服务器的安全性. X-Powered-By: PHP/5.3.29 这个选项我们可以修改php.ini文件,找到expose_php expose_php = On 修改为:expose_php = Off Server:nginx/1.5.1:修改nginx配置文件ng

Posted:2016-02-24  By vilay

oneThink在PHP7下的安装  

Onethink是基于Thinkphp 3.2开发的一款内容管理框架。自备了一套比较完善的基础系统。但是在PHP7的环境下使用,在安装过程中可能会有点问题。 在安装过程中,环境检测环节有检测环境的一些权限,还有一些函数的使用。 权限检测的修改比较简单,如果是需要可写的权限直接给就可以了。 函数的检测,总共检测了3个函数 mysql_connect(),file_put_contents(),mb_strlen(),如果在低于PHP7的环境下可能没什么问题,但是在PHP7中,mysql_conne

Posted:2016-02-23  By vilay

PHP检测对象是否属于类的几种方法  

在项目开发中,为了程序的严谨安全,我们必须对对象进行检测,这边介绍几种检测对象的方法. 以鸟类为示例: <?php class Bird { public function say() { echo 'my is Bird'; } } class Sparrow extends Bird { public function say() { echo 'my is sparrow'."<br>"; } } class Phoenix extends Bird

Posted:2016-02-16  By vilay

Centos 安装Sphinx以及Sphinx php扩展  

简介 Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。 Sphinx单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒(毫秒级)。Sphinx创建索引的速度为:创建100万条记录的索引只需 3~4分钟,创建1000

Posted:2016-02-15  By vilay

生产环境服务器使用disable_functions禁用一些函数增加服务器安全性  

PHP中有一些函数在开发环境中比较实用,但是在生产环境中会给服务器安全带来较大的威胁,但是我们可以使用disable_functions去禁用,增加服务器的安全性. 这边是一些可以禁用的函数: * phpinfo() -- 输出 PHP 环境信息以及相关的模块、WEB 环境等信息 * passthru() -- 允许执行一个外部程序并回显输出,类似于 exec() * exec() -- 允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等) * system() -- 允许执行一

Posted:2016-02-15  By vilay

面向对象设计的五大基本原则(S.O.L.I.D)  

这些原则,结合在一起能够方便程序员开发易于维护和扩展的软件,也让开发人员轻松避免代码异味,易于重构代码,也是敏捷或自适应软件开发的一部分。 五大原则(S.O.L.I.D)都代表什么? * S - 单一职责原则 * O - 开发封闭原则 * L - 里氏替换原则 * I - 接口隔离原则 * D - 依赖倒置原则 单一职责原则 单一职责原则(简称:S.R.P)指出:一个类应该有且只有一个去改变它的理由,这意味着一个类应该只有一项工作,只完成一个功能。 例如,我们需要去计算一些图形的面积,申明图形类

Posted:2016-02-14  By vilay

Windows下wamp集成环境时区修改  

在格式化时间的时候,与大陆时间差了8个小时. 首先想到的就是修改 php.ini配置文件,找到了目录下的 D:\wamp\bin\php\php5.4.12\php.ini,修改配置: date.timezone = PRC 重启服务.但是时间还是没调整过来. 最后找到了另一个php.ini配置文件,原来wamp集成环境调用的PHP配置文件位置是在目录D:\wamp\bin\apache\Apache2.4.4\bin\php.ini 下,把 date.timezone = UTC 修改为 da

Posted:2016-02-14  By vilay

Composer使用国内全量镜像  

Composer使用国内全量镜像的方法:有两种方式启用这种服务 系统全局配置:即将配置信息添加到 Composer 的全局配置文件 config.json 中 单个项目配置:将配置信息添加到某个项目的 composer.json文件中 系统全局配置的方法 在命令行或者控制台中,执行下面的命令: composer config -g repo.packagist composer http://packagist.phpcomposer.com 单个项目中使用的配置方法 在命令行或者控制台中,进入

Posted:2016-02-14  By vilay

Slim 3 文档(十四)-CSRF 保护  

Slim 3 使用一个可选的独立的PHP 组件 slimphp/Slim-Csrf 保护你的应用,防止CSRF(跨站请求伪造) ,这个组件会为任何的请求生成一个唯一的token随着应用客户端的HTML表单提交过来进行POST请求验证. 安装 进入命令行,在你的项目的根目录底下执行下面的代码: composer require slim/csrf 用法 slimphp/Slim-Csrf 组件包含应用中间件,添加到你的应用中即可: // Add middleware to the applicat

Posted:2016-01-29  By vilay

Slim 3 文档(十三)-HTTP 缓存  

Slim 3使用一个可选的独立PHP 组件slimphp/Slim-HttpCache 作为HTTP 缓存.可以使用这个组件创建或者返回一个响应包含 Cache,Expires,ETag 和 Last-Modified HTTP头去控制什么时候和多长时间应用输出的是保留在客户端那边的缓存. 安装 进入命令行,在你的项目的根目录底下执行下面的代码: composer require slim/http-cache 用法 slimphp/Slim-HttpCache 组件包含服务提供和应用中间件两个

Posted:2016-01-29  By vilay

Slim 3 文档(十二)-模板  

Slim 跟传统的MVC框架不一样,并没有视图层.在Slim中,视图是一个HTTP响应.任何一个Slim应用的路由都是负责准备或者返回一个PSR 7的响应对象. 切记:Slim 的视图是一个HTTP 响应 话虽如此,但是Slim项目提供了 Twig-View 和 PHP-View 组件帮助你实现在PSR 7响应里面实现模板的渲染. slim/twig-view 组件 Twig-View 组件帮助你在Slim应用里面使用 Twig 模板引擎实现模板渲染.这个组件可以在 Packagist 上找到,

Posted:2016-01-29  By vilay

Slim 3 文档(十一)-烹饪书  

URL尾部 / Slim对待一个路由中路由匹配模式有没有尾随着 / 是不一样的。也就是说 /users 跟 /users/ 是不一样的,可以绑定不同的回调处理。 如果你想让尾部有带 / 的重定向到不带 / 的,可以添加下面的中间件。 use Psr\Http\Message\RequestInterface as Request; use Psr\Http\Message\ResponseInterface as Response; $app->add(function (Request

Posted:2016-01-28  By vilay

Mysql中mysqldump使用  

项目开发过程中,我们有时候会需要导出数据库或者数据库中的某张数据表。就会需要用到mysqldump。 Mysqldump 语法:mysqldump -u username [-h host] -p[password] [-d] dbname [tablename] > filename mysqldump使用示例: 数据库:test 数据表:users 用户名:root 密码:123456 1.导出数据库结构: mysqldump -u root -p123456 -d test >

Posted:2016-01-28  By vilay

Slim 3 文档(十)-错误处理  

错误处理 Slim 框架有个错误处理去接收PHP异常错误。错误处理通常接收当前的HTTP请求和响应对象。错误处理会返回一个恰当的响应对象给客户端。 默认的错误处理 Slim 默认的错误处理是非常基础的。它会设置响应状态为500,输出类型为 text/html,并返回普通的错误消息给客户端。 这可能并不是很适应生产应用。所以非常鼓励你实现自己的错误处理。 默认的错误处理也包含错误的详细信息,但是需要你去设置 displayErrorDetails 为真。 $configuration = [ 's

Posted:2016-01-28  By vilay

Slim 3 文档(九)-路由  

Slim 3的路由是建立在组件nikic/fastroute的基础上的,在性能上更快,更稳。 创建路由 你可以使用 \Slim\App 的实例的代理方法定义应用路由,Slim提供了方法去创建RestFul的http 方法。 Get路由(从服务器取出资源(一项或多项)[对应的SQL命令:SELECT]) 你可以通过slim应用的get()方法去添加一个路由专门处理GET的HTTP请求,get()方法接收两个参数: 1.路由匹配模式(也可以有可选的命名参数占位符) 2.回调函数 $app = new

Posted:2016-01-25  By vilay