xiaolingzi's blog

每天都在成长...

欢迎您:亲

PHP由mcrypt扩展加密改为openssl扩展加密

xiaolingzi 发表于 2018-03-14 13:26:08

一、背景

最近将php版本升级到php7.2, 升级过程发现由于php_mcrypt扩展太过于老旧已经被移除,建议使用php_openssl扩展来替代。我们的项目中有使用到php_mcrypt来进行AES加密,所以就开始用openssl的方式来替代原有的方式,在替代的过程中也发现不少问题。

二、原有php_mcrypt加密

原有的加密是使用AES进行对称加密,加密长度使用MCRYPT_RIJNDAEL_128,加密模式使用MCRYPT_MODE_CBC,密钥和向量都是使用16位字符串,然后默认padding是采用补零的的方式。

代码如下:

阅读全文
  • 分类: PHP
  • 阅读: (2341)
  • 评论: (4)

PHP守护进程和多进程的实现

xiaolingzi 发表于 2017-07-20 09:27:00

PHP除了做web相关的功能之后,有时我们还需要使用它来处理一些后台任务。对于一些繁重的工作,单一的进程处理无法满足我们的需要,这时候我们就需要多线程或者多进程来处理。PHP默认不支持多线程,但有对应的扩展程序来实现。PHP多进程可以使用pcntl来实现。今天这里我们主要来讲讲在cli模式下,PHP多进程、守护进程的使用,而且只是在linux下运行。

一、多进程

多进程可以通过pcntl_fork来实现,具体看一下代码:

阅读全文
  • 分类: PHP
  • 阅读: (1682)
  • 评论: (1)

RabbitMQ的PHP扩展安装

xiaolingzi 发表于 2017-07-18 17:39:46

我们安装完的RabbitMQ的服务端之后,如果我们想要调用还得安装RabbitMQ的客户端(rabbitmq-c),所以PHP扩展安装前需要先安装RabbitMQ客户端。

一、安装RabbitMQ客户端(rabbitmq-c)

客户端地址如下:

https://github.com/alanxz/rabbitmq-c/releases

下载最新版本就好。

阅读全文
  • 分类: PHP
  • 阅读: (1944)
  • 评论: (0)

PHP使用thrift实现RPC服务(服务端和客户端)

xiaolingzi 发表于 2017-06-21 15:04:53

一、简单说明

1.RPC服务是什么

RPC全称是Remote Procedure Call Protocol,即远程过程调用。他跟Web Service有类似的地方,但又有所不同。具体可以百度两种区别。这里不做深入讨论。

2.为什么选择thrift

thrift支持多语言,而且服务端和客户端也可以使用不同的语言,比较方便。其次它是Facebook开发,后交由Apache打理,也比较可靠。当然如果只是针对php还可以考虑yar、workerman-thrift-rpc或者swoole。


二、软件安装

软件的安装可以直接看官网的介绍。地址如下:

http://thrift.apache.org/docs/install/

碰到的问题这里简单说明一下,以centos为例。里面有些软件的安装有最低版本要求,安装的时候需要注意,但官方文档里面说到的软件版本不一定是当前最新的版本,大家可以去对应软件官网下载最新版本。

阅读全文
  • 分类: PHP
  • 阅读: (3263)
  • 评论: (0)

PHP ORM框架LingORM介绍及使用文档

xiaolingzi 发表于 2017-03-15 15:55:51

LingORM是为php编写的ORM框架,支持插入修改删除等基本ORM功能,也支持一般复杂的查询(比如复杂条件下的联表查询)。除此,也支持原生sql查询以应对更加复杂的情况。


一、框架的引入

框架采用了命名空间和类自动加载,所以框架的引入也比较简单,如果项目中已有自动加载类文件,在自动加载类文件中引用框架的自动加载类即可,框架的自动加载类在AutoLoader目录下的AutoLoader.php文件。如果没有自动加载类的需要在入口执行文件的头部引入该文件即可。

GitHub地址:https://github.com/xiaolingzi/PHP-ORM-LingORM

阅读全文
  • 分类: PHP
  • 阅读: (3061)
  • 评论: (0)

PHP脚本程序框架LingPHP构建

xiaolingzi 发表于 2017-03-07 18:58:49

对于web程序,有太多较为成熟的框架可以使用,我们直接拿来用即可。而php除了写web代码之后,还经常用来写一些脚本任务,如服务器部署的一些计划任务程序或者临时使用的处理程序。之前都是大家按自己的想法随便去写,这样会导致代码的凌乱不好管理,另一方面也不便于代码的复用,故开始构建一个简单的框架。

框架需要解决的主要问题如下:

1. 类自动加载,命名空间的引入,这是框架的基本。这样可以避免文件的到处引用。

2. 项目集中管理。各个程序归总起来管理。

3. 统一的调用方式。每个项目有统一的执行入口和参数选项。

4. 代码复用。引入简单的分层架构,将代码进行有组织管理。

5. 配置区分开发环境和线上环境。开发环境的很多配置比如文件路径都和正式服务器的不一样,如果不做分离,不小心就会把开发环境的配置覆盖掉正式的配置导致出错。

6. 统一的文件命名规范。

7. Linux下多进程和守护进程的支持。

阅读全文
  • 分类: PHP
  • 阅读: (763)
  • 评论: (0)

Linux安装php7的memcached扩展

xiaolingzi 发表于 2016-03-10 15:25:03

目前还没有php7对应的memcache版本(没找到),但已经有对应的memcached扩展了,github链接如下:

https://github.com/php-memcached-dev/php-memcached/tree/php7

下面我们就开始进行安装:

1.下载源码

通过git克隆下来,命令如下:

git clone https://github.com/php-memcached-dev/php-memcached.git

阅读全文
  • 分类: PHP
  • 阅读: (2358)
  • 评论: (0)

CentOS通过yum安装php7.0

xiaolingzi 发表于 2016-02-25 15:54:43

php7.0发布已经有一段时间了,它比之前的版本在性能上有了很大的提升,还是值得升级的。这里把安装的方法记录一下,以免每次都需要重复到网上去查找。

一、删除旧版本

如果已经安装过php就先删除之前的版本。检查方法如下:

yum list installed | grep php

然后将安装的包进行删除

比如 yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64 php-mbstring.x86_64 php-mcrypt.x86_64 php-mysql.x86_64 php-pdo.x8

阅读全文
  • 分类: PHP
  • 阅读: (2284)
  • 评论: (0)