PHP5缓存插件
1.1操作码介绍及缓存原理
当客户端请求一个PHP程序时,服务器的PHP引擎会解析到该PHP程序,并将其变异为特定的操作码文件(OperateCode opcode),这是要执行的PHP代码的一种二进制表示形式。默认情况下,这个编译好的操作码文件由PHP引擎执行后丢弃。操作码缓存(Opcode opcode)的原理就是将这个变异后的操作码保存下来,兵放入到共享内存里,以便在下一次调用该PHP页面时重用它,避免了相同代码的重复变异。节省PHP引擎重复编译的时间,降低了服务器负载,同时减少了CPU和内存开销
1.2PHP缓存加速软件介绍
为了提高PHP引擎的高兵发访问及执行速度,产生了一系列PHP缓存及加速软件。这些软件设计的目的就是缓存前文提到的PHP引擎解析过的操作码文件,此时,在指定时间内若有相同的PHP程序请求访问,就不需要重复解析编译了,而是直接调用缓存中的PHP操作码文件,这样就提高了动态Web服务的处理速度,从而提升了用户访问企业网站的整体体验。
1.3LNMP环境PHP缓存加速原理详解
在LNMP环境中,PHP引擎不再使用libphp5.so模块了,而是启动了独立的FastCGI(php-fpm)进程,由它监听来自Nginx的PHP程序请求,并交给PHP引擎解析处理,整个执行流程大概如下:
1) Nginx接收客户端的PHP程序访问请求。
2) Nginx根据扩展名等过滤规则将PHP程序请求传递给解析PHP的FastCGI进程(php-fpm)
3) PHP FPM进程调用PHP解析器读取站点磁盘上的PHP文件,并加载到内存中。
4) PHP解析器将PHP程序编译成为opcode文件,然后把opcode缓存起来。
5) PHP FPM引擎执行opcode树,返回数据给Nginx,进而返回客户端。
6) Nginx接收客户新的PHP程序请求,PHP FPM引擎就会直接读取缓存中的opcode执行,将结果返回,而无需第4步操作,从而提升了PHP编译解析效率。
1.4PHP缓存加速软件种类及选择建议
PHP缓存加速软件常用的种类有xcache、eaccelerator、APC(Alternative PHP Cache)ZendOpcache等。在企业环境我们要如何选择PHP缓存加速软件呢?
事实上,任选其一即可,没必要都安装上,都安装也可以能会发生冲突。总的选择建议就是根据企业的业务需求及选择前的压力测试结果,或者根据个人的经验偏好选择。不过,建议首选Xcache,其次是eaccelerator,如果想尝试,可以选择ZendOpcache
首选xcache的原因如下:
q 经过测试Xcache效率更好,更快。
q xcache软件开发社区更活跃,最新版2014年底发布。
q 支持更高版本的PHP,例如PHP5.5、PHP5.6
次选eaccelerator的原因如下:
q 安装及配置参数更简单、加速效果也不错。
q 安装资料较多,但官方对软件的更新很慢,社区不活跃。
q 仅适合PHP版本5.4以下的程序。
选择ZendOpcache的原因如下:
q 是PHP官方研发的新一代缓存加速软件,以后的发展潜力可能会更好,PHP5.5以前的版本可以通过ZendOpcache软件以插件扩展的方式安装,从PHP5.5版本开始已经整合到PHP软件里了,编译时只需要指定一个参数即可,例如:--enable-opcache
q ZendOpcache可能是未来的缓存加速首选,现在的稳定性还有待检验,小规模环境下PHP5以前的版本可以通过插件式安装使用,PHP5以上的版本可以直接指定参数编译使用,若可以忍受ZendOpcache的各种未知问题的话,也可以尝试。
1.5PHP缓存加速器安装环境准备
1.5.1 LNMP基础Web环境准备
在安装PHP的扩展及缓存加速软件之前,需要先安装好LNMP的完整环境,例如:能配置出现phpinfo信息的界面表示PHP服务正常安装,同时最好可以编写一个调用数据库的简单PHP程序,进而确认MySQL数据库是不是正常的。
1.5.2 检查LNMP软件版本
1)查看Linux内核及版本相关信息
[root@web-node1 ~]# cat /etc/redhat-release
CentOS release 6.7 (Final)
[root@web-node1 ~]# uname -r
2.6.32-573.el6.x86_64
2)查看Nginx Web版本相关信息:
[root@web-node1 ~]# /application/nginx/sbin/nginx -v
nginx version: nginx/1.6.3
3)查看PHP服务版本相关信息
[root@web-node1 ~]# /application/php/bin/php -v
PHP 5.3.27 (cli) (built: Nov 20 2015 02:39:11)
4)查看MySQL服务版本相关信息
[root@web-node1 ~]# mysql -uroot -e "select version();"
+-----------+
| version() |
+-----------+
| 5.5.32 |
+-----------+
1.5.3 有关LNMP环境扩展软件部署说明
不管是Apache还是Nginx,最后都是通过PHP提供动态程序解析的,因此,不管是Apache的libphp5.so模块方式,还是Nginx的FastCGI的PHP服务方式,最终在PHP引擎上的优化也一致的,即都是基于PHP服务(php.ini)的,因此,如无特殊说明,如下优化均适合LNMP和LAMP,有需要Apache服务的读者学习本章也能起到参考作用。
1.配置环境变量LC_ALL
[root@web-node1 ~]# echo 'export LC_ALL=C' >> /etc/profile
#设置环境变量,解决后面perl程序插件的编译问题。符号“>>”表示向文件追加内容。
[root@web-node1 ~]# tail -1 /etc/profile
export LC_ALL=C
#查看是否正确追加了export LC_ALL=C环境配置
[root@web-node1 ~]# . /etc/profile
#使增加的环境变量配置生效。
[root@web-node1 ~]# echo $LC_ALL
C #查看生效结果
2.安装perl相关软件依赖
需要提前安装perl相关软件依赖软件包,执行yum -y install perl-devel
yum -y install perl-devel
如果不安装上述软件包,在后面安装ImageMagick时可能会报错,后文安装ImageMagick时相应的报错说明。
1.6安装PHP缓存加速扩展模块
1.6.1 安装PHP eAccelerator缓存加速模块
eAccelerate是一个免费的、开放源代码的PHP加速、优化以及缓存的扩展插件软件,它可以缓存PHP程序编译后的中间代码文件(opcode)、session数据等,降低PHP程序在编译解析时对服务器的性能开销。eAccelerator还可以加快PHP程序的执行速度,降低服务器负载压力,使PHP程序代码执行效率能提高1~10倍。
eAccelerator会把编译好的PHP程序存放在共享内存里,然后每次从内存里调用执行,可以设定把一些不适合放在内存里缓存的编译结果存储在i磁盘上,默认情况,磁盘和内存缓存都会备eAccelerator使用。
eAccelerator算是一个老牌的缓存加速软件,曾经结合PHP引擎解析时备广泛使用,成熟稳定,目前代码更新不活跃,因此,使用的企业逐渐减少,但eAccelerator仍是一款值得信赖的缓存加速软件。XCache的官方也称赞eAccelerator是不错的opcode缓存器。
eAccelerator的最新版为0.9.6.1,支持的PHP最新版本为PHP5.3以及前5系列的版本。
eAccelerator具体的安装如下:
cd /application/tools/
tar xf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1
/application/php/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/application/php/bin/php-config
make
make install
cd ../
ls /application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/
eaccelerator.so #最后生成了eaccelerator.so模块就表示eaccelerator安装成功
#注意:5.5无法使用该软件
configure的参数路径要正确配置,特别是后面的--with-php-config参数对应的PHP安装目录地址,几乎所有的PHP扩展都要指定这个参数。
1.6.2 安装PHP xcache缓存加速模块
XCache是一个开源的、又快又稳定的PHP opcode缓存器/优化器,其项目leader曾经是Lighttpd(和Nginx类似的高速web服务软件)的开发成员之一。XCache通过把对PHP程序编译后的数据(opcode)缓存到共享内存里,避免让相同的程序重复编译。用户请求相同的PHP程序时,可以直接使用缓存中已编译好的数据,从而提高PHP的访问速度,通常可以提升2~5倍,并大幅降低服务器负载开销。
很多公司在使用XCache,它已经能在大流量/高负载的生产环境稳定运行,与同类型的opcode缓存器相比在各个方面都更胜一筹,例如:社区活跃、快速开发、能够快速跟进PHP的版本更新等。
关于XCache软件详情请参考:http://xcache.lighttpd.net 或http://xcache.lighttpd.net/wiki/Introduction
Xcache具体的安装如下:
cd /application/tools/
wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.bz2
tar xf xcache-3.2.0.tar.bz2
cd xcache-3.2.0
/application/php/bin/phpize
./configure --enable-xcache--with-php-config=/application/php/bin/php-config
make
make install
ls /application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/
xcache.so #最后生成了xcache.so模块就表示xcache安装成功
1.6.3 安装PHP ZendOpcache缓存加速模块
从PHP5.5开始,官方已经集成新一代的缓存加速插件,名字为ZendOpcache,功能和前三者相似但又有少许不同,据官方说,这个ZendOpcache缓存速度更快。
这几个PHP加速插件的主要原理基本相同,就是把PHP执行后的数据缓存到内存中从而避免重复的编译过程,使其能够直接使用缓存中已编译的代码,从而提高速度,降低服务器负载,它们的效率是显而易见的,像一些大型的CMS,每次打开一个页面要调用十个PHP文件,执行数万行代码,效率可想而知,在安装上树加速器后打开页面的速度明显快了不少。
由于我们PHP版本为5.3,因此需要以PHP扩展插件的方式安装,而不能使用PHP编译直接加参数(--enable-opcache)的方式(PHP5.5以上才可以),操作步骤及过程如下。
ZendOpcache具体的安装如下:
cd /application/tools/
wget -q 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/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/
opcache.so #最后生成了opcache.so模块就表示opcache安装成功
1.7安装数据库缓存及PHP扩展插件
1.7.1 安装PHP Memcached扩展模块
Memcached缓存软件说明
Memcache工作原理
Memcache具体的安装如下:
cd /application/tools/
wget -q http://pecl.php.net/get/memcache-2.2.7.tgz
tar xf memcache-2.2.7.tgz
cd memcache-2.2.7
/application/php/bin/phpize
./configure --enable-memcache --with-php-config=/application/php/bin/php-config
make && make install
ls /application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/
memcache.so #最后生成了memcache.so模块就表示memcache安装成功
phpinfo加载Memcache状态信息
1.7.2 安装PHP Redis扩展模块
为php安装redis客户端扩展
cd /applications/tools/
wget https://github.com/nicolasff/phpredis/archive/master.zip
unzip master.zip
cd phpredis-master/
/application/php/bin/phpize
./configure -with-php-config=/application/php/bin/php-config
make && make install
ls /application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/
cd ../
1.7.3 安装PHP PDO_MYSQL扩展模块
PDO扩展为PHP访问数据库定义了一个轻量级一致性的接口,它提供了一个数据访问抽象层,这样,无论使用的是什么数据库,都可以通过一致的函数执行查询并获取数据。
PDO_MYSQL的安装有两种方法,一种插件方式安装,一种是编译PHP时加入PDO_MYSQL支持,直接指定PHP的对应PDO_MYSQL变异参数安装即可,例如:--with-pdo-mysql=mysqlnd,同时PHP的环境也可以不装MySQL软件,直接指定如下参数--with-mysql=mysqlnd即可让PHP支持连接MySQL数据库。
PDO_MySQL具体的安装如下:
cd /application/tools
wget -q http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
tar xf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2/
/application/php/bin/phpize
./configure--with-php-config=/application/php/bin/php-config --with-pdo-mysql=/application/mysql
make
make install
ls /application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/
pdo_mysql.so
#config的参数路径要正确配置。/application/mysql为MySQL的安装路径,要先安装好MySQL,如果是远程的话则使用mysqlnd,本文讲解的是LNMP一体的环境。
tail -1 /etc/ld.so.conf #添加MySQL路径
/application/mysql-5.5.32-linux2.6-x86_64/lib/
ldconfig #生效
软链接方式
ln -s /application/mysql-5.5.32-linux2.6-x86_64/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18
1.7.4 安装PHP Imagick扩展插件
imagick插件工作需要ImageMagick软件的支持,所以,必须要先安装ImageMagick,否则会报错。
imagick插件是一个可以供PHP调用ImageMagick功能的扩展模块。使用这个扩展可以使PHP具备和ImageMagick相同的功能。
装了ImageMagick图像程序后,再装PHP的扩展imagick插件,才能使用ImageMagick提供的api来进行图片的创建与修改、压缩等操作,因为它们都集成在了imagik这个PHP扩展中。
ImageMagick的常见功能如下:
q 将图片从一个格式转换到另一个格式,包括直接转换成图标。
q 可以改变图片尺寸、旋转、锐化、减色、设置图片特效。
q 对图片设置各种尺寸缩略图。
q 可以适应于Web背景的透明图片。
q 将一组图片做成gif动画,直接convert。
q 将几张图片做成一张组合图片。
q 在一个图片上写字或画图形,带蚊子阴影和边框渲染。
q 给图片加边框或框架。
q 取得一些图片的特性信息。
它几乎包括了gimp可以实现的所有常规插件功能,甚至包括各种曲线参数的渲染功能。ImageMagick的下载地址:
http://download.chinaunix.net/download/0001000/95.shtml
ImageMagick具体的安装如下:
cd /application/tools/
tar xf ImageMagick-6.7.9-9.tar.xz
cd ImageMagick-6.7.9-9
./configure
make && make install
cd ..
#此软件make时间较长
Imagick具体的安装如下(先安装imageMagick):
cd /application/tools/
tar xf imagick-2.3.0.tgz
cd imagick-2.3.0
/application/php/bin/phpize
./configure --with-php-config=/application/php/bin/php-config
make
make install
ls /application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/
imagick.so
下面针对PHP加速器比较结果进行总结。
通过测试 得出eAccelerator在请求时间和内存占用综合方面是最好的。
通过测试得出使用加速去比无加速器在请求时间快了3倍左右。
通过各个官方观察,Xcache是更新最快的,这也说明它是最有发展的。
每个加速器还有一些可以调优的参数,所以要根据你的系统环境而定,然后Xcache和ZendOpcache这两款加速器的潜力还是很大的。
1.8配置PHP加速与缓存相关扩展插件模块
1.8.1 配置Memcache/pdo_mysql/imagick模块生效
cd /application/php/lib/
cp php.ini php.ini.ori
sed 's#; extension_dir = "./"#extension_dir = "/application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/"#g' php.ini
快速操作如下:
cat >> /application/php/lib/php.ini <<EOF
extension = memcache.so
extension = pdo_mysql.so
extension = imagick.so
EOF
[root@web-node1 lib]# tail -5 php.ini #检查
extension_dir = "/application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/"
extension = memcache.so
extension = pdo_mysql.so
extension = imagick.so
1.8.2 配置eAccelerator插件加速
mkdir -p /tmp/eaccelerator
#此目录可以使用tmpfs内存文件系统或者SSD固态磁盘来存储优化。
#mount -t tmpfs -o size=16m tmpfs /tmp/eaccelerator
#临时使用内存替换磁盘空间
chown -R www.www /tmp/eaccelerator
#上面的授权是nginx的用户
cat >> /application/php/lib/php.ini<<EOF
[eaccelerator]
extension=eaccelerator.so
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
EOF
eaccelerator配置参数详解
[eaccelerator] #开始eaccelerator加速模块配置。
extension=eaccelerator.so #加载eaccelerator加速模块,路径相对于extension_dir的配置。
eaccelerator.shm_size="64" #存储缓存数据的共享内存大小,如果为0,则最大值看内核配置/proc/sys/kernel/shmmax。
eaccelerator.cache_dir="/tmp/eaccelerator" #磁盘缓存存储路径,缓存内容为precompiled code\session\data\content\user\entries。默认路径。
eaccelerator.enable="1" #eaccelerator缓存生效开关,1为默认值,即生效。0为关闭,不生效。
eaccelerator.optimizer="1" #加速PHP代码行速度,1为默认值表示激活,0为不激活。用于缓存前的代码加速。
eaccelerator.check_mtime="1" #检查缓存修改时间决定代码是否需要重新变异,1为激活,是默认值。
eaccelerator.debug="0" #缓存加速调试,0为关闭,1为打开,打开后可以看到缓存命中信息。
eaccelerator.filter="" #设置对象是否缓存规则,空表示不设定。
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
检查eAccelerator加速配置是否生效
[root@web-node1 ~]# /application/php/bin/php -v #查看模块是否生效
PHP 5.3.27 (cli) (built: Nov 20 2015 02:39:11)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
重启php-fpm,访问php.info才能加载eaccelerator
[root@web-node1 ~]# pkill php-fpm
[root@web-node1 ~]# /application/php/sbin/php-fpm
phpinfo加载eAccelerator状态信息
1.8.3 配置xcache插件加速
[root@web-node1 xcache-3.2.0]# cat /application/tools/xcache-3.2.0/xcache.ini >> /application/php/lib/php.ini #加载xcache.so文件
检查Xcache加速配置是否生效
[root@web-node1 lib]# /application/php/bin/php -v #查看模块是否生效
PHP 5.3.27 (cli) (built: Nov 20 2015 02:39:11)
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
xcache配置参数详解
[xcache-common]
extension = /application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/xcache.so
[xcache.admin]
xcache.admin.enable_auth = On #激活管理认证
xcache.admin.user = "mOo" #指定xcache管理员用户
xcache.admin.pass = "md5 encrypted password" #指定xcache管理员密码
[xcache] #开始xcache缓存参数配置段,喜爱安所有的初始化值即为默认值,除非明确说明。
xcache.shm_scheme = "mmap" #设置xcache如何从系统分配共享内存
xcache.size = 60M #0为禁止缓存,非0则启用缓存,需要注意系统所允许的nmap最大值
xcache.count = 1 #指定将cache切分成多少块,官方推荐设置服务器cpu的数量
xcache.slots = 8K #只是作为hash槽个数的参考值,缓冲超过这个个数的内容没有任何问题
xcache.ttl = 0 #设定cache对象的生存期TTL 0为永不过期。
xcache.gc_interval = 0 #回收器扫描过期的对象回收内存空间的间隔,0为不扫描,其他值的单位是秒。
xcache.var_size =4M #这几个值和上面的几个类似,只不过用于变量缓存,而不是opcode缓存。
xcache.var_count = 1
xcache.var_slots = 8K
xcache.var_ttl =0
xcache.var_maxttl =0
xcache.var_gc_interval = 300
xcache.var_namespace_mode = 0
xcache.var_namespace = ""
xcache.readonly_protection = Off
xcache.mmap_path = "/dev/zero"
xcache.coredump_directory = ""
xcache.coredump_type = 0
xcache.disable_on_crash = Off #当xcache发生crash时,自动关闭xcach缓存。
xcache.experimental = Of
xcache.cacher = On
xcache.stat = On
xcache.optimizer = Off
[xcache.coverager]
xcache.coverager = Off
xcache.coverager_autostart = On
xcache.coveragedump_directory = "" #当xcache crash后,是否把数据保存到指定路径。
xcache可调整的关键参数(如下是调整后参数)
xcache.size = 256M #0为禁止缓存,非0则启用缓存,需要注意系统所允许的nmap最大值
xcache.count = 2 #指定将cache切分成多少块,官方推荐设置服务器cpu的数量
xcache.ttl =86400 #设定cache对象的生存期TTL 0为永不过期。
xcache.gc_interval = 3600 #回收器扫描过期的对象回收内存空间的间隔,0为不扫描,其他值的单位是秒。
xcache.var_size =64M #这几个值和上面的几个类似,只不过用于变量缓存,而不是opcode缓存。
phpinfo加载xcache状态信息
1.8.4 配置xcache Web界面
[root@web-node1 lib]#cd /application/tools/xcache-3.2.0
[root@web-node1 lib]#cp -a htdocs/ /application/nginx/html/blog/xadmin
[root@web-node1 lib]# echo -n "123456"|md5sum #生成md5密钥
e10adc3949ba59abbe56e057f20f883e -
#编辑php.ini里面的xcache.admin
[xcache.admin]
xcache.admin.enable_auth = On
xcache.admin.user = "test"
xcache.admin.pass = "e10adc3949ba59abbe56e057f20f883e"
#编辑php.ini Date时区
[Date]
date.timezone = Asia/Shanghai
Xcache登陆认证信息
1.8.5 配置ZendOpcache插件加速
cat >> /application/php/lib/php.ini<<EOF
[opcache]
zend_extension=/application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/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
EOF
检查ZendOpcache加速配置是否生效
[root@web-node1 lib]# /application/php/bin/php -v #查看模块是否生效
PHP 5.3.27 (cli) (built: Nov 20 2015 02:39:11)
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
phpinfo加载ZendOpcache状态信息
Opcache配置参数详解
opcache.memory_consumption=128 #Opcache共享内存空间大小,用于存放precompiledPHP code,默认为64,单位为Mbytes
opcache.interned_strings_buffer=8 #默认值为4,interned strings 内存的数量,单位是M
opcache.max_accelerated_files=4000 #默认值为2000,Opcache哈希表的key的最大数量
opcache.revalidate_freq=60 #默认值为2,检查文件时间戳的频率,用于共享内存分配的变化。
opcache.fast_shutdown=1 #默认值为0,如果激活一个快速的关闭队列将被用来加速代码。
opcache.enable_cli=1 #默认值为0,激活PHP CLI的Opcache,用于测试和调试。
更多的opcache参数可以查看安装目录下的README,本书的路径为/application/tools/zendopcache-7.0.5/README。
PHP5.5及以上版本在编译参数里指定--enable-opcache即可编译。
tar zxf php-5.5.13.tar.gz
cd php-5.5.13
./configure --prefix=/application/php --with-mysql --with-jpeg-dir --with-png-dir --with-zlib --enable-xml --with-libxml-dir --with-curl --enable-bcmath --enable-shmop --enable-sysvsem--enable-inline-optimization --enable-mbregex --with-openssl --enable-mbstring --with-gd --enable-gd-native-ttf --enable-sockets --with-xmlrpc --enable-zip --enable-soap --disable-debug --enable-opcache --enable-zip --enable-fpm --with-fpm-user=www --with-fpm-group=www
make && make install
PHP5缓存插件的更多相关文章
- 缓存插件 EHCache
EHCache是来自sourceforge(http://ehcache.sourceforge.net/)的开源项目,也是纯Java实现的简单.快速的Cache组件. 下载jar包 Ehcache ...
- WordPress缓存插件WP Super Cache的使用及常见问题解决
WP Super Cache是一款很好的WordPress优化插件,是我用过最好的一款缓存插件.打开WordPress后台搜索插件页面,第一个就是这个插件,可想而知他的地位有多厉害了. 什么是WP S ...
- 最好用的jQuery-Ajax缓存插件
AJAX-Cache 最好用的jQuery-Ajax缓存插件 介绍 AJAX-Cache是一款jQuery插件,基于localStorage/sessionStorage实现异步请求缓存功能,并 ...
- wordpress缓存插件使用提高网站速度
WordPress是世界上使用量最多的CMS,由于程序非常吃主机性能,正常情况下当页面被访问时,使用php和mysql. 因此,系统需要消耗RAM和CPU. 如果同一时间有大量访客访问,系统将使用大量 ...
- 最佳 WordPress 静态缓存插件 WP Super Cache 安装和使用(转)
WP Super Cache 是 WordPress 官方开发人员 Donncha开发,是当前最高效也是最灵活的 WordPress 静态缓存插件.它把整个网页直接生成 HTML 文件,这样 Web ...
- LNMP-day3-php扩展缓存插件
perl的编译问题 [root@localhost php5.6.33]# echo 'export LC_ALL=C' >> /etc/profile #设置环境变量,解决后面perl ...
- PHP 缓存插件之 Zend Opcache ( 取代 APC )
简介: Zend Opcache .APC 这都是 PHP 代码加速器,将 PHP 源代码的编译结果缓存起来,再次调用时对比时间标记,如果没有改变则使用缓存数据,免去再次解析代码的开销. APC 止步 ...
- smartload跨浏览器极速缓存插件用法
smartload由39smart团队原创,主要实现前端css/js的一次加载请求,永久缓存的加速效果,在移动端效果非常明显. 插件特点: 支持平台: PC和移动端所有版本浏览器,ie6+,firef ...
- 缓存插件 EHCache 对象缓存(Spring)
对象缓存就是将查询的数据,添加到缓存中,下次再次查询的时候直接从缓存中获取,而不去数据库中查询. 对象缓存一般是针对方法.类而来的,结合Spring的Aop对象.方法缓存就很简单.这里需要用到切面编程 ...
随机推荐
- Compass入门
一.Compass是什么? 简单说,Compass是Sass的工具库(toolkit). Sass本身只是一个编译器,Compass在它的基础上,封装了一系列有用的模块和模板,补充Sass的功能. ...
- MpVue开发之组件引入的问题
再一次开发订餐系统中,遇到订餐页面引入头部商品列表,底部组件时,报错,模块编译失败,未进入缓存区. 我以为是新添加的模块没有重新启动导致的,然后重新与运行npm run dev后还是失败, 最后经过反 ...
- OC中使用单例模式
static Config * instance = nil; +(Config *) Instance { @synchronized(self) { if(nil == instance) { [ ...
- 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference
在前段时间我写了一篇迁移 csproj 格式的博客 将 WPF.UWP 以及其他各种类型的旧样式的 csproj 文件迁移成新样式的 csproj 文件,不过全过程是手工进行的,而且到最后处理 XAM ...
- 《DSP using MATLAB》示例Example 9.5
代码: %% ------------------------------------------------------------------------ %% Output Info about ...
- {Reship}{Emgu}{vs2010}C#配置Emgu
=============================================================================================This Ar ...
- vue a href="tel" 拨打电话
走默认的方式失败 <a href="tel:{{telPhone}}">{{telPhone}}</a> 走字符串拼接方法成功 <a :href=&q ...
- Hyper-V 手动导入虚机配置实例(转载)
原文转载:http://blog.51cto.com/bobzy/980241 Hyper-V提供了很方便的虚机导入和导出功能.平时假如我们想导出虚机,先选中虚机,然后鼠标右键在出现菜单列表中选中“导 ...
- Redis持久化的简单介绍
Redis的强大功能很大程度上是由于其将所有数据都存储在内存中,为了使Redis在重启后仍能保证数据不丢失,需要将数据从内存中以某种形式持久化到硬盘中. Redis支持两种方式的持久化,一种是RDB方 ...
- 【转载】细粒度图像识别Object-Part Attention Driven Discriminative Localization for Fine-grained Image Classification
细粒度图像识别Object-Part Attention Driven Discriminative Localization for Fine-grained Image Classificatio ...