php添加imagick扩展


wget http://pecl.php.net/get/imagick-3.3.0RC2.tgz
tar zxvf imagick-3.3.0RC2.tgz;cd imagick-3.3.0RC2.tgz;
phpize
yum install ImageMagick
./configure --with-php-config=/usr/local/php/bin/php-config
make test
make
make install
make test

=====================================================================
TIME END 2015-10-14 16:30:07

=====================================================================
TEST RESULT SUMMARY
———————————————————————
Exts skipped : 0
Exts tested : 47
———————————————————————

Number of tests : 27 27
Tests skipped : 0 ( 0.0%) ——–
Tests warned : 0 ( 0.0%) ( 0.0%)
Tests failed : 0 ( 0.0%) ( 0.0%)
Expected fail : 0 ( 0.0%) ( 0.0%)
Tests passed : 27 (100.0%) (100.0%)
———————————————————————
Time taken : 3 seconds
=====================================================================

make

[root@aoxiang imagick-3.3.0RC2]# make
Build complete.
Don’t forget to run ‘make test’.

make install

[root@aoxiang imagick-3.3.0RC2]# make install
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
Installing header files: /usr/local/php/include/php/

安装完成,配置下php.ini

vim /usr/local/php/etc/php.ini
#添加一下内容
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/imagick.so
#保存退出
service php-fpm restart

添加imagick扩展之后,重启php-fpm,查看phpinfo多出了imagick

PHP开启Opcache性能对比

前阵子在群里,看到大庆提到opcache加速器,当时也不明白是什么,于是抽空研究了一下。发现php官方手册真的非常非常非常有必要通读一遍!!!!
opcache是zend出的一个缓存工具,先将php脚本预编译,缓存到内存中,需要用的时候就不用再次编译了。在php5.5的版本以后,php都内置了opcache。正好vps装的是5.4的,于是闲来无事安装下测试看看。
安装非常简单,一句即可

pecl install ZendOpcache

安装完成后会在php.ini中看到多了opcache

php.ini中的opcache
php.ini中的opcache

图中因为我在测试对比开启opcache前后的性能情况,我是注释了opcache。
注意一定要把opcache.so的位置写正确
添加一些配置内容

 opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

重启php后,我们在phpinfo中能看到多了opcache
前面介绍过xhprof的安装与使用,正好可以用xhprof测试下开启前后情况。仍然是以博客首页为测试对象。测试结果如下:

opcache开启前响应时间对比(单位:毫秒)
响应时间 开启前 开启后
659,185 407,844
516,839 325,101
585,206 450,047
483,782 445,568
518,558 425,767
851,166 359,448
495,277 349,735
561,613 471,427
600,126 644,085
平均值 585750.2222 431002.4444

 

明显开启后速度是有提高的。

Over~

Centos下http_load做压力测试

前阵子做了个小项目,很小很小的那种,但是这家公司确实很有钱很有钱的那种,赞助了某地方卫视黄金档综艺节目,于是乎,节目首播,客户担心服务器扛不住,于是乎有了我这种菜鸟试着玩一下压力测试。

安装很简单
可以到这里下载http_load http://www.acme.com/software/http_load/

mkdir http_load
cd http_load
wget http://www.acme.com/software/http_load/http_load-14aug2014.tar.gz
tar zxvf http_load-14aug2014.tar.gz
cd http_load-14aug2014
make
make install
vim urllist.txt#输入要做压力测试的url地址保存即可

这样就安装好了
下面要进行测试
也非常简单

-r 每秒访问多少次
-s 访问时长
-f 访问总次数

http_load -r 10 -s 10 urllist.txt 

下面看结果

每秒访问10次,共访问10秒,总计100次请求
[root@aoxiang http_load-14aug2014]# http_load -r 10 -s 10 urllist.txt
42 fetches, 58 max parallel, 1.94275e+06 bytes, in 10.0012 seconds
46256 mean bytes/connection
4.19951 fetches/sec, 194253 bytes/sec
msecs/connect: 1.88881 mean, 11.376 max, 1.164 min
msecs/first-response: 3268.35 mean, 5607.34 max, 534.501 min
HTTP response codes:
code 200 — 42

42 fetches, 58 max parallel, 1.94275e+06 bytes, in 10.0012 seconds
进行了42次请求,最大并发进程数58,总计传输 1.94275e+06 bytes,耗时10秒

46256 mean bytes/connection
每次请求平均传输数据量46256 bytes

4.19951 fetches/sec, 194253 bytes/sec
意味着系统最大每秒钟处理4.1次请求,每秒钟传输194253 bytes数据

msecs/connect: 1.88881 mean, 11.376 max, 1.164 min
平均响应时间1.8秒,最大响应时间 11.376msecs,最小响应时间1.164msecs

更详细的信息,可以参考百度百科《http_load》

Laravel5添加自定义类库

Laravel5中文文档比较少,写点东西出来看看骗点访问量好了。我没有用过其他本本,直接从Laravel5开始的,文档比较少,有时候看的也比较蛋疼。
废话不说,Laravel和其他框架Codeginiter、ThinkPHP之类的不一样的地方在于多了个命名空间的概念。所以第三方类库也需要定义namespace。

1、在App目录下建立classes\Common.php

这里的classes文件夹可以自定义的,不一定需要叫做classes

2、在Common.php中编写类及函数。

这里要注意需要指定第三方类库所在的命名空间,

namespace App\Classes;//定义命名空间
class Common
{
	public static function getPendingOrders()
	{
		echo "Include Library Success";
	}
}

3、在控制器中调用自定义类库。

在控制器中我们需要指定自定义类库所使用的命名空间

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Classes\Common;//使用自定义类库的命名空间
use App\Http\Requests;
use App\Http\Controllers\Controller;

class TestController extends Controller
{
    public function index()
    {
        Common::getPendingOrders();//调用自定义类Common的方法
    }
}

Larave5引入自定义类库

完结,其实很简单吧

Zend Guard 代码加密详细步骤图解

最近想研究下Zend Guard给代码加密,以便以后做项目做好保密性,也方便以后客户抓在自己手上做维护。

这里分两步做

1、生成加密文件

2、配置服务器环境解密运行加密后的文件

一、生成加密文件
先抛出来Zend Guard相关安装包吧。

百度云下载Zend Guard.5.5

这里的注意以下2点:

  1. Zend Guard是需要收费的,下载的文件包里面有key,但是Key的有效期是10年7月10号。安装完成register的时候需要将系统时间调整到10年以前,[Help]->[Register]->[Search for a license file on my disk]
  2. key是试用版的,所以加密后的文件只能使用14天。你在生成加密文件以前可以将系统时间向后调整N年,比如2099年。这样就会在2099年以后14天过期。

PS:文件包中有个.zl,是激活用的。但是我们其实可以自己生成一个zl。可以选择不用它的。

下面上图按步骤走吧:

  1. 新建一个项目【File】-【New】-【Zend Guard Project】。这里主要填写下项目名称,以及最后一个加密后代码输出位置:OutputLocation:

    新建Zend Guard Project
    新建Zend Guard Project
  2. 选择代码所在文件夹

    选择代码所在文件夹
    选择代码所在文件夹

继续阅读Zend Guard 代码加密详细步骤图解