zoukankan      html  css  js  c++  java
  • PHP缓存加速插件 XCache 、 ZendOpcache 安装

    PHP缓存原理

    当客户端请求一个PHP程序时,服务器的PHP引擎会解析该PHP程序,并将其编译为特定的操作码(OperateCode,简称opcode)文件,该文件是PHP代码的一种二进制表示方式。默认情况下,这个编译好的操作码文件由PHP引擎执行后丢弃,而操作码缓存(Opcode Cache)的原理就是将编译后的操作码保存到共享内存,以便下一次调用相同PHP程序时重复使用该操作码,避免了相同代码的重复编译,节省了PHP引擎重复编译的时间,降低了服务器负载同时节省了CPU和内存开销,主要的缓存加速插件有eAccelerator、XCache、ZendOpcache等。

    XCache缓存插件部署

    XCache是一个开源的、又快又稳定的PHPopcode缓存插件,其项目leader曾经是Lighttpd的开发成员之一。XCache把PHP编译后的opcode缓存到共享内存里,避免相同的程序重复编译。用户请求相同的PHP程序时,可以直接使用缓存中已经编译好的数据,从而提高PHP的访问速度,通常可以提升2-5倍,并大幅度降低服务器负载开销。很多公司使用XCache,它已经能在大流量、高负载的生产环境中稳定运行,与同类型的opcache缓存插件相比在各个方面都更胜一筹,同时xcache的社区活跃、开发快速,能够快速跟进PHP的版本更新。目前的3.2版本全面支持PHP5.1-5.6,官方网站http://xcache.lighttpd.net

    echo $LC_ALL
    echo "export LC_ALL=C" >> /etc/profile
    source /etc/profile
    yum install perl-devel -y
    #注:在做PHP扩展前要做好上述环境配置,以免编译过程报错
    cd /server/tools/
    wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz
    tar xf xcache-3.2.0.tar.gz
    cd xcache-3.2.0
    /application/php/bin/phpize
    ./configure --enable-xcache --with-php-config=/application/php/bin/php-config
    make 
    make install
    
    vim /application/php/lib/php.ini
    extension_dir = "/application/php-5.3.27/lib/php/extensions/no-debug-non-zts-20090626/"
    
    cp xcache.ini xcache.ini.bak
    grep -v "^;" xcache.ini.bak > xcache.ini
    echo -n "123456" | md5sum
    e10adc3949ba59abbe56e057f20f883e  -
    vim xcache.ini
    [xcache-common]
    extension = xcache.so
    [xcache.admin]
    xcache.admin.enable_auth = On
    xcache.admin.user = "peter"
    xcache.admin.pass = "e10adc3949ba59abbe56e057f20f883e"
    [xcache]
    xcache.shm_scheme =        "mmap"   
    xcache.size  =               256M   
    xcache.count =                 1
    xcache.slots =                8K
    xcache.ttl   =                 86400
    xcache.gc_interval =           3600
    xcache.var_size  =            64M
    ...
    #含义:
    内存分配方式
    缓存大小
    将缓存切分为多少块,推荐设置为CPU个数 grep -c processor /proc/cpuinfo
    hash槽个数
    对象生存时间
    扫描回收过期数据的周期
    变量缓存的大小
    
    echo ";xcache config by peter" >> /application/php/lib/php.ini
    cat xcache.ini >> /application/php/lib/php.ini
    /application/php/bin/php -v
    PHP 5.3.27 (cli) (built: Sep 14 2017 11:03:50)
    Copyright (c) 1997-2013 The PHP Group
    Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
        with XCache v3.2.0, Copyright (c) 2005-2014, by mOo
        with XCache Cacher v3.2.0, Copyright (c) 2005-2014, by mOo
    
    #配置web监控界面 cp -a htdocs/ /application/nginx/html/xadmin chown -R nginx.nginx /application/nginx/html/xadmin pkill php-fpm /application/php/sbin/php-fpm http://172.16.1.88/xadmin

     

    ZendOpcache缓存插件部署

    从PHP5.5开始,官方已经集成了新一代缓存加速插件ZendOpcache,编译PHP时只需加上 --enable-opcache即可,据官方说缓存速度更快。
    对于更低版本的PHP则需以扩展插件的形式安装ZendOpcache,扩展插件支持PHP5.3-5.4。
    cd /server/tools
    wget http://pecl.php.net/get/zendopcache-7.0.5.tgz
    tar xf zendopcache-7.0.5.tgz
    cd zendopcache-7.0.5
    /application/php/bin/phpize
    ./configure --enable-opcache --with-php-config=/application/php/bin/php-config
    make
    make install
    ls /application/php-5.3.27/lib/php/extensions/no-debug-non-zts-20090626/
    
    vim /application/php/lib/php.ini
    [opcache]
    zend_extension=/application/php-5.3.27/lib/php/extensions/no-debug-non-zts-20090626/opcache.so
    ;extension=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
    #含义:
    缓存大小
    缓冲大小
    散列表Key的最大数量,即opcode文件数量
    检查文件时间戳的周期
    激活快速关闭队列,可以加速代码
    激活PHPCLI的OPcache,用于测试和调试
    
    [root@test88 zendopcache-7.0.5]# /application/php/bin/php -v
    PHP 5.3.27 (cli) (built: Sep 14 2017 11:03:50)
    Copyright (c) 1997-2013 The PHP Group
    Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
        with Zend OPcache v7.0.5, Copyright (c) 1999-2015, by Zend Technologies
    

    phpize是什么

    通过phpize可以建立PHP的外挂模块,在编译要添加的扩展模块之前,需要执行一下phpize。

  • 相关阅读:
    (转)ios限制控制器旋转
    iOS NSMutableURLRequest 上传图片
    iOS中UIWebView使用JS交互
    Cocoa pods的安装和使用
    NSThread/NSOperation/GCD 三种多线程技术
    动画效果-基础动画设置(改变大小,改变透明度,翻转,旋转,复原)
    动画效果一风火轮加载效果/动态图展示
    Swift代理和传值
    Swift基础(类,结构体,函数)
    IOS面试问题总结
  • 原文地址:https://www.cnblogs.com/Peter2014/p/7610548.html
Copyright © 2011-2022 走看看