频道栏目
首页 > 程序开发 > Web开发 > php > 正文

使用memcached,xcache做PHP缓存优化

2017-12-02 09:34:32      个评论    来源:飞翔的荷兰人  
收藏   我要投稿

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

完毕

上一篇:php查询到的数据乱码和转json时中文变成了Unicode的编码怎么解决?
下一篇:php字符串的有序拆分讲解
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站