配置eAccelerator和XCache扩展来加速PHP程序的执行


Posted in PHP onDecember 22, 2015

eaccelerator安装配置PHP加速
eAccelerator简介
eAccelerator是一个的免费、开源的PHP模块,它能够为提供PHP加速、优化、加码、和动态内容缓存功能。它通过存储PHP脚本编译后的状态而加快执行PHP脚本的速度,而不需要频繁的编译这个PHP脚本。而且它能优化PHP脚本,以提高执行PHP的速度。eAccelerator特色是减少了服务器负载、使PHP脚本加速1-10倍。
下载地址:http://sourceforge.net/projects/eaccelerator/
解压修改源代码(解决出现open_basedir等报错)

# tar jxvf eaccelerator-0.9.6.tar.bz2
# cd eaccelerator-0.9.6/
# vi eaccelerator.c

找到以下:

if (PG(open_basedir) && php_check_open_basedir(realname TSRMLS_CC)) {

改为

if (PG(open_basedir) && php_check_open_basedir(file_handle->filename TSRMLS_CC)) {

编译安装扩展eaccelerator

# /usr/local/php-5.2.14/bin/phpize # 对应你自己的phpize,一定要在eaccelerator-0.9.6目录执行
# ./configure
?enable-eaccelerator \
?with-php-config=/usr/local/php-5.2.14/bin/php-config
# make
# make install # 会提示你扩展装到了哪个目录,我这边是/usr/local/php-5.2.14/lib/php/extensions/no-debug-non-zts-20060613/

配置php.ini
如果本机之前有加过扩展,直接跳到下一步“添加eacclerator扩展”

Vi /usr/local/php-5.2.14/etc/php.ini

extension_dir = ./

替换成

extension_dir=/usr/local/php-5.2.14/lib/php/extensions/no-debug-non-zts-20060613/

添加eacclerator扩展

# vi /usr/local/php-5.2.14/etc/php.ini

 增加如下内容

[eaccelerator]
 extension=eaccelerator.so
 eaccelerator.shm_size=”16″
 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=”0″
 eaccelerator.shm_prune_period=”0″
 eaccelerator.shm_only=”0″
 eaccelerator.compress=”1″
 eaccelerator.compress_level=”9″

创建eaccelerator目录

# mkdir /tmp /eaccelerator
# chmod 777 /tmp/eaccelerator

重启测试
重启apache或者nginx,并且查看效果,如果/tmp/eaccelerator下有目录,说明安装成功了。
配置参数详解(eaccelerator)

eaccelerator.shm_size=”8″
eAccelerator 可以使用的共享内存的数量 (以兆为单位) . “0” 是指操作系统的默认值. 默认值是 “0”.可根据服务器的实际情况来调整,8,16,32,64,128都是可以的。
eaccelerator.cache_dir=”/tmp/eaccelerator ”

这个目录是给磁盘缓存使用. eAccelerator 在这里储存预先编译好的代码, 进程数据, 内容以及用户的自定义内容. 同样的数据也能被储存在共享内存中 (这样可以提高访问速度). 默认的设置是 “/tmp/eaccelerator”.

eaccelerator.enable=”1″

开启或关闭 eAccelerator。“1” 为开启,“0” 为关闭。默认值为 “1”。

eaccelerator.optimizer=”1″

启或关闭内部优化器,可以提升代码执行速度。“1” 为开启,“0” 为关闭。默认值为 “1”。

eaccelerator.check_mtime=”1″

打开或者关闭 PHP 的文件修改检查. “1” 是指打开, “0” 是指关闭. 如果您在修改以后重新编译 PHP 的文件,那么您应当设置为 “1”. 默认值是 “1”.

eaccelerator.debug=”0″

开启或关闭调试日志记录。“1” 为开启,“0” 为关闭。默认值为 “0”。会将缓存命中得记录写入日志。

eaccelerator.filter=””

判断哪些 PHP 文件必须缓存。您可以指定缓存和不缓存的文件类型(如 “*.php *.phtml”等),如果参数以 “!” 开头,则匹配这些参数的文件被忽略缓存。默认值为 “”,即,所有 PHP 文件都将被缓存。

eaccelerator.shm_max=”0″

当使用 ” eaccelerator_put() ” 函数时禁止其向共享内存中存储过大的文件。该参数指定允许存储的最大值,单位:字节 (10240, 10K, 1M)。“0” 为不限制。默认值为 “0”。

eaccelerator.shm_ttl=”0″

当eAccelerator 获取新脚本的共享内存大小失败时,它将从共享内存中删除所有在最后 “shm_ttl” 秒内没有存取的脚本缓存。默认值为 “0”,即:不从共享内春中删除任何缓存文件。

eaccelerator.shm_prune_period=”0″

当eAccelerator 获取新脚本的共享内存大小失败时,他将试图从共享内存中删除早于“shm_prune_period” 秒的缓存脚本。默认值为 “0”,即:不从共享内春中删除任何缓存文件。

eaccelerator.shm_only=”0″

允许或禁止将已编译脚本缓存在磁盘上。该选项对 session 数据和内容缓存无效。默认值为 “0”,即:使用磁盘和共享内存进行缓存。

eaccelerator.compress=”1″

允许或禁止压缩内容缓存。默认值为 “1”,即:允许压缩。

eaccelerator.compress_level=”9″

指定内容缓存的压缩等级。默认值为 “9”,为最高等级。

eaccelerator.keys = “disk_only”
eaccelerator.session = “disk_only”
eaccelerator.content = “disk_only”

设置内容缓存的存放的地方,可以设置为:

  • shm_and_disk 在共享缓存和硬盘(默认值)
  • shm 默认存在共享内存,如果共享内存已满或大小超过 “eaccelerator.shm_max” 的值,就存到硬盘
  • shm_only 只存放在共享内存
  • disk_only 只存放在硬盘
  • none 不缓存数据

PHP扩展xcache安装
xcache模块可以缓存php运行时编译生成的opcode可以加速php程序的效率,安装xcache和安装memcache方法类似,都是以扩展的方式安装,PHP任何扩展方法基本上都是如下,所以不需要特意去找xxx扩展的文档.
安装PHP扩展xcache

# wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz
# tar -xvf xcache-3.2.0.tar.gz
# cd xcache-3.2.0
# ./configure ?with-php-config=/usr/local/php/bin/php-config ?enable-xcache
# make && make install

会生成类似如下信息

Installing shared extensions:  /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/

所有的模块都会生成到这个目录下
编辑php配置文件

# vim /usr/local/php/etc/php.ini
extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xcache.so

重载PHP

# service php-fpm reload

如果是你Apache+PHP模式,那么重启Apache即可.

# service httpd restart

或者

# /usr/local/apache-2.2.27/bin/apachectl restart

测试结果

配置eAccelerator和XCache扩展来加速PHP程序的执行

PHP 相关文章推荐
默默小谈PHP&MYSQL分页原理及实现
Jan 02 PHP
PHP MemCached 高级缓存应用代码
Aug 05 PHP
PHP新手入门学习方法
May 08 PHP
php获取目录所有文件并将结果保存到数组(实例)
Oct 25 PHP
php实现的发送带附件邮件类实例
Sep 22 PHP
php实现每天自动变换随机问候语的方法
May 12 PHP
thinkPHP中验证码的简单使用方法
Dec 26 PHP
PHP数学运算函数大汇总(经典值得收藏)
Apr 01 PHP
PHP抓取远程图片(含不带后缀的)教程详解
Oct 21 PHP
php array_key_exists() 与 isset() 的区别
Oct 24 PHP
thinkPHP简单实现多个子查询语句的方法
Dec 05 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
Oct 11 PHP
PHP使用mkdir创建多级目录的方法
Dec 22 #PHP
PHP按指定键值对二维数组进行排序的方法
Dec 22 #PHP
php删除数组中重复元素的方法
Dec 22 #PHP
yii2.0实现验证用户名与邮箱功能
Dec 22 #PHP
PHP内核探索之解释器的执行过程
Dec 22 #PHP
PHP内核探索之变量
Dec 22 #PHP
yii2.0使用Plupload实现带缩放功能的多图上传
Dec 22 #PHP
You might like
淘宝ip地址查询类分享(利用淘宝ip库)
2014/01/07 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
javascript编程起步(第五课)
2007/01/10 Javascript
JS实现IE状态栏文字缩放效果代码
2015/10/24 Javascript
理解 JavaScript Scoping & Hoisting(二)
2015/11/18 Javascript
探讨:JavaScript ECAMScript5 新特性之get/set访问器
2016/05/05 Javascript
javascript监听页面刷新和页面关闭事件方法详解
2017/01/09 Javascript
移动端手指放大缩小插件与js源码
2017/05/22 Javascript
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
在layui tab控件中载入外部html页面的方法
2019/09/04 Javascript
浅谈vue3中effect与computed的亲密关系
2019/10/10 Javascript
Python中文件遍历的两种方法
2014/06/16 Python
Python中使用ConfigParser解析ini配置文件实例
2014/08/30 Python
以911新闻为例演示Python实现数据可视化的教程
2015/04/23 Python
通过Python 接口使用OpenCV的方法
2018/04/02 Python
Python实现合并两个有序链表的方法示例
2019/01/31 Python
详解Python中is和==的区别
2019/03/21 Python
django实现用户注册实例讲解
2019/10/30 Python
Python 实现Numpy中找出array中最大值所对应的行和列
2019/11/26 Python
pytorch中tensor张量数据类型的转化方式
2019/12/31 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
2020/06/01 Python
pycharm最新激活码有效期至2100年(亲测可用)
2021/02/05 Python
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
韩国休闲女装品牌网站:ANAIS
2016/08/24 全球购物
西班牙英格列斯百货官网:El Corte Inglés
2016/09/25 全球购物
美国男装连锁零售商:Men’s Wearhouse
2016/10/14 全球购物
Meli Melo官网:名媛们钟爱的英国奢侈手包品牌
2017/04/17 全球购物
老板电器官方购物商城:老板油烟机、燃气灶、消毒柜、电烤箱
2018/05/30 全球购物
Java程序员面试90题
2013/10/19 面试题
给排水专业应届生求职信
2013/10/12 职场文书
总经理助理的职责
2014/03/14 职场文书
优秀团支部申报材料
2014/12/26 职场文书
面试感谢信范文
2015/01/22 职场文书
CSS实现多个元素在盒子内两端对齐效果
2021/03/30 HTML / CSS
Python基础之条件语句详解
2021/06/16 Python
Nginx报错104:Connection reset by peer问题的解决及分析
2022/07/23 Servers