利用memcached,xcache等做PHP缓存优化

来源:互联网 发布:淘宝实名认证的截图 编辑:程序博客网 时间:2024/06/07 20:09

1)eaccelerator

1.介绍

eAccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。使您的PHP程序代码执效率能提高1-10倍.

2.缓存原理

用户请求一个PHP程序时,PHP引擎会解析该程序,并将其编译为特定的操作码(opcode),这是一种二进制格式的可执行代码。然后此操作码会由PHP引擎执行并丢弃。操作码缓存将保存这个编译后的操作码,并在下一次调用该页面时重用它,这样就节省了很多重复编译的时间,节省资源,优化性能。
3.安装eaccelerator

调整字符集 
#echo 'LC_ALL=C' >> /etc/profile
#source /etc/profile

[root@~]#tar jxf eaccelerator-0.9.6.tar.bz2 
[root@~]#cd eaccelerator-0.9.6

[root@~]#/usr/local/php/bin/phpize

phpize是用来扩展php模块的,通过phpize可以建立php的外挂模块
[root@~]#./configure --enable-eaccelerator=shared \

--with-php-config=/usr/local/php-5.3.27/bin/php-config
[root@~]#make && make install

[root@~]# ls /usr/local/php-5.3.27/lib/php/extensions/no-debug-zts-20090626/
eaccelerator.so

4.配置PHP加载eaccelerator

创建缓存目录

mkdir /tmp/eaccelerator  #可目录可以用tmpfs内存文件系统来存储,SSD固态硬盘

chown -R www.www /tmp/eaccelerator 

在php.ini中添加以下内容:

eaccelerator cache config by Zhang DeJin 2017-12-1 
[eaccelerator]
extension = eaccelerator.so
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.chech_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_perid="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
--End config

测试:[root@lnmp nginx]# /usr/local/php-5.3.27/bin/php -v
PHP 5.3.27 (cli) (built: Nov 30 2017 05:35:00)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
    with eAccelerator v0.9.6, Copyright (c) 2004-2010 eAccelerator, by eAccelerat

配置完毕

重启httpd或者php-fpm生效

5.版本选择

php5.3.xx 可用eaccelerator-0.9.6版本
php5.2.xx 可用eaccelerator-0.9.5.2版本

2)Xcache

1介绍

XCache 是一个又快又稳定的 PHP opcode 缓存器. 经过良好的测试并在大流量/高负载的生产机器上稳定运行. 经过(在 linux 上)测试并支持所有现行 PHP 分支的最新发布版本, 如 PHP_4_3 PHP_4_4 PHP_5_0 PHP_5_1 PHP_5_2 HEAD(6.x), 并支持线程安全/Windows. 与同类 opcode 缓存器相比更胜一筹, 比如能够快速跟进 PHP 版本.
XCache 工程由 mOo 领队, 他也是 Lighttpd 的开发成员之一. Lighttpd 是最快的 Web 服务器应用程序之一, 并且超越 Apache 以及许多其他 Web 服务器. XCache 努力达到类似的效果.
2.安装

tar jxf xcache-1.3.2.tar.bz2
cd xcache-1.3.2
/usr/local/php-5.3.27/bin/phpize
./configure --enable-xcache --with-php-config=/usr/local/php-5.3.27/bin/php-config
make && make install

ls /usr/local/php-5.3.27/lib/php/extensions/no-debug-zts-20090626/

3.配置PHP加载xcache

cd /usr/local/php/lib/
添加备注
echo >> php.ini
echo "xcache config by ZhangDejin 2017-12-1"
修改xcache-1.3.2/xcache.ini,可用sed命令修改
注释第三行
zend_extension = /usr/local/lib/php/extensions/non-debug-non-zts-xxx/xcache.so
注释第六行
zend_extension_ts = c:/php/extensions/php_xcache.dll
启用第八行
;extension = xcache.so
剩下的参数根据服务器配置自行调整
然后加入到php.ini
cat /home/king/xcache-1.3.2/xcache.ini >> php.ini
测试
/usr/local/php-5.3.27/bin/php -v
PHP 5.3.27 (cli) (built: Nov 29 2017 18:03:24)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
    with XCache v1.3.2, Copyright (c) 2005-2011, by mOo

重启httpd或者php-fpm生效

3)memcache客户端,PDO_mysql,imagick扩展库

1.介绍

Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像,视频文件以及数据库检索的结果,简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高了读取速度

PDO扩展为PHP访问数据库定义了一个轻量级的,一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询获取数据

ImageMagick是一套功能强大,稳定而且免费的工作集和开发包,对图片超过89中格式的图片类型进行改变大小,旋转,锐化,减色等处理,现在它的主要精力集中在性能,减少bug以及提供稳定的API和ABI上

2.安装

tar zxf memcache-2.2.5.tgz 
cd memcache-2.2.5
/usr/local/php-5.3.27/bin/phpize 
./configure --with-php-config=/usr/local/php-5.3.27/bin/php-config
make && make install
ln /usr/local/php-5.3.27/lib/php/extensions/no-debug-zts-20090626/
ls /usr/local/php-5.3.27/lib/php/extensions/no-debug-zts-20090626/

安装PDO_MYSQL

tar zxf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2
/usr/local/php-5.3.27/bin/phpize
./configure --with-php-config=/usr/local/php-5.3.27/bin/php-config --with-pdo-mysql=/usr/local/mysql/
make && make install
ls  /usr/local/php-5.3.27/lib/php/extensions/no-debug-non-zts-2009062

yum install perl-devel -y
 tar zxf ImageMagick.tar.gz
 cd ImageMagick-6.5.1-2/
 ./configure
 make && make install
安装imagick
tar zxf imagick-2.3.0.tgz
cd imagick-2.3.0
/usr/local/php-5.3.27/bin/phpize
./configure --with-php-config=/usr/local/php-5.3.27/bin/php-config
make && make install
ls  /usr/local/php-5.3.27/lib/php/extensions/no-debug-zts-20090626/


配置PHP加载pdo_mysql,memcache,imagick等模块
修改extension_dir = "./"为
extension_dir = "/usr/local/php-5.3.27/lib/php/extensions/no-debug-zts-20090626
/"
添加这几个模块
;--cache ext start by Zhang Dejin 2017-12-1
extension = memcache.so
extension = pdo_mysql.so
extension = imagick.so
;End config:

查看nginx编译参数
nginx -V
查看httpd编译参数
cat httpd/build/config.nice
查看mysql编译参数
grep "CONFIGURE_LINE" mysql/bin/mysqlbug
php编译参数
php/bin/php -i|grep configure

完毕

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 驾驶证记分周期到了违章未消怎么办 驾照被扣科目一过期没考怎么办 驾驶证暂扣过了换证日期怎么办? 考驾照科目二身份证丢了怎么办 驾照科目一考试身份证丢了怎么办 换驾驶证名下有车辆脱审怎么办 交警把驾驶证和行车证扣了怎么办 连续两天驾照都是扣12分怎么办? 交警开的电动车罚单丢了怎么办 驾驶证b证体检报告拖期怎么办 在中国把美国护照弄丢了怎么办 拿了驾照两年了不敢上高速怎么办 我要移民过香港大陆的驾驶证怎么办 交警开的扣行驶证的单不见了怎么办 行驶证累计记分满12分后怎么办 行车证丢了被交警查到怎么办 手机摔了一下一半黑屏了怎么办 三星手机的显示屏插头坏了怎么办? 被普通的手机维修店骗了怎么办? 手机外屏裂了内屏进水了怎么办 小米2s手机忘了解锁图案怎么办 红米note5手机屏烂了怎么办 网上买好高铁票身份证没带怎么办 高铁票买好了身份证丢了怎么办 苏州园区社保卡丢了怎么办 大学办的社保卡丢了怎么办 毕业六年了大学社保卡丢了怎么办 医保卡丢了补办后卡里余额怎么办 银行卡丢了记不住卡号怎么办 哈尔滨医保卡挂失后又找到了怎么办 孩子在哈尔滨户口在外地医保怎么办 椒江二桥通行证被扣走了怎么办 住建委查到买房材料不真怎么办 房子租出去被别人又租出去了怎么办 在成都乘出租车房产证掉了怎么办 电信不限量卡限网速了怎么办 only实体店换货没有小票怎么办 运管所包车单不给盖章怎么办 上海留学生落户过了取号时间怎么办 电信固话怎么办才能显示自己公司 日本跟团签证没有资产证明怎么办