使用Xcache缓存器加速PHP网站的配置方法
发布时间 - 2026-01-11 00:46:32 点击率:次推荐地址:http://www.ibm.com/developerworks/cn/opensource/os-php-fastapps1/

目前用于Web的缓存系统很多,包括squid、varnish、Nginx自带的proxy_cache、FastCGI中的fastcgi_cache、APC、Xcache等。
像squid、varnish、Nginx自带的proxy_cache这类系统,属于重量级产品,配置维护比较麻烦,不适合小型网站,而且一般用这类系统缓存静态内容,比如图片、css、JavaScript等;像FastCGI中的fastcgi_cache,它主要用于缓存动态内容,所以在访问使用fastcgi_cache的网站时速度极快,但是笔者使用时发现其维护比较麻烦,特别是每次网站有数据要更新后,如果不等到缓冲期过期后得需要手动清除缓存才能看到网站更新的内容;至于APC个人感觉性能就一般了,拿它和Xcache比较时发现访问使用Xcache网站的速度明显高于使用APC网站的速度(笔者没有具体测试),所以最终选择了使用Xcache。
我们都知道PHP是一种动态语言,它在执行时是以解释的方式执行,所以PHP代码每次执行时都会被解析和转换成操作码(opcode)。而Xcache是一个开源的操作码缓存器/优化器,它通过把解析/转换PHP后的操作码缓存到文件(直到原始代码被修改)从而避免重复的解析过程,提高了代码的执行速度,通常能够提高页面生成速率2-5倍,降低了服务器负载,提高了用户访问网站的速度。
一、安装Xcache
# wget http://xcache.lighttpd.net/pub/Releases/1.3.0/xcache-1.3.0.tar.gz # tar zxvf xcache-1.3.0.tar.gz # cd xcache-1.3.0 # /usr/local/php/bin/phpize # ./configure --enable-xcache--enable-xcache-coverager --enable-xcache-optimizer--with-php-config=/usr/local/php/bin/php-config # make && make install
注:--enable-xcache表示启用Xcache支持;--enable-xcache-coverager表示包含用于测量加速器功效的附加特性;--enable-xcache-optimizer表示启用操作码优化
安装完毕后系统会提示xcache.so模块生成路径,本次生成路径为/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/,然后把xcache.so移动到/usr/local/php/include/php/ext目录下。
二、配置管理Xcache
1、修改php配置文件
配置时我们可以参考xcache的配置模板xcache.ini,此文件位于Xcache安装程序中
# vi /usr/local/php/lib/php.ini
然后添加如下内容
extension_dir=/usr/local/php/include/php/ext [xcache-common] extension = xcache.so [xcache.admin] xcache.admin.enable_auth = On xcache.admin.user = "xcache" xcache.admin.pass = "" [xcache] xcache.shm_scheme ="mmap" xcache.size=60M xcache.count =1 xcache.slots =8K xcache.ttl=0 xcache.gc_interval =0 xcache.var_size=4M xcache.var_count =1 xcache.var_slots =8K xcache.var_ttl=0 xcache.var_maxttl=0 xcache.var_gc_interval =300 xcache.test =Off xcache.readonly_protection = On xcache.mmap_path ="/tmp/xcache" xcache.coredump_directory ="" xcache.cacher =On xcache.stat=On xcache.optimizer =Off [xcache.coverager] xcache.coverager =On xcache.coveragedump_directory =""
2、生成Xcache缓存文件
# touch /tmp/xcache# chmod 777 /tmp/xcache
3、生成Xcache管理员的秘密(MD5密文)
# echo -n "123456" |
md5sume10adc3949ba59abbe56e057f20f883e
然后将上述生成的MD5密文粘贴到php.ini文件中xcache.admin.pass = ""选项,xcache.admin.pass= "e10adc3949ba59abbe56e057f20f883e"
4、拷贝Xcache管理程序到网站根目录下
# cp -a /tmp/xcache-1.3.0/admin//usr/local/nginx/html/
然后重新启动PHP,然后访问http://localhost/admin ,用户名为xcache 密码为123456;另外,还可以通过phpinfo来验证PHP是否支持Xcache
这里要注意的一点就是Xcache只能缓存默认的一些对象,如int, string, array等,不能缓存对象,否则读取的时候就会报错。
如果你非要缓存对象的话也有办法就是将对象序列化,读取的时候再反序列化一次。
下面我写的一个Xcache的简单类:
程序代码
<?php
/**
* Xcache moudle
*/
class cacheHelper{
public $prefix;
function __construct(){
if(!function_exists('xcache_get')){
exit("This application must required XCache module.");
}
}
/**
* __set
*
* @param mixed $name
* @param mixed $value
* @access public
* @return void
*/
public function __set($name, $value){
xcache_set($this->prefix.$name, $value);
}
/**
* __get
*
* @param mixed $name
* @access public
* @return mixed
*/
public function __get($name){
return xcache_get($this->prefix.$name);
}
/**
* __isset
*
* @param mixed $name
* @access public
* @return bool
*/
public function __isset($name){
return xcache_isset($this->prefix.$name);
}
/**
* __unset
*
* @param mixed $name
* @access public
* @return void
*/
public function __unset($name){
xcache_unset($this->prefix.$name);
}
}
?>
# Xcache 缓存器 加速PHP
# 这类
# 自带
# 是一个
# 提高了
# 缓冲期
# 就会
# 如果你
# 序列化
# 也有
# 是一种
# 还可以
# 我们可以
# 要注意
# 不适合
# 非要
# 它在
# 报错
# 转换成
# 主要用于
# 重新启动
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
JavaScript如何实现倒计时_时间函数如何精确控制
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
详解阿里云nginx服务器多站点的配置
JavaScript数据类型有哪些_如何准确判断一个变量的类型
iOS验证手机号的正则表达式
如何在阿里云服务器自主搭建网站?
专业商城网站制作公司有哪些,pi商城官网是哪个?
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
Thinkphp 中 distinct 的用法解析
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
如何用低价快速搭建高质量网站?
如何用5美元大硬盘VPS安全高效搭建个人网站?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理
Android利用动画实现背景逐渐变暗
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
Bootstrap整体框架之JavaScript插件架构
如何用美橙互联一键搭建多站合一网站?
网站优化排名时,需要考虑哪些问题呢?
微信小程序 canvas开发实例及注意事项
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
音乐网站服务器如何优化API响应速度?
Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区
零基础网站服务器架设实战:轻量应用与域名解析配置指南
如何自定义建站之星网站的导航菜单样式?
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
如何在VPS电脑上快速搭建网站?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
Laravel如何创建自定义Artisan命令?(代码示例)
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
java获取注册ip实例
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
如何快速建站并高效导出源代码?
python中快速进行多个字符替换的方法小结
常州企业网站制作公司,全国继续教育网怎么登录?
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
如何在Ubuntu系统下快速搭建WordPress个人网站?
Laravel如何记录自定义日志?(Log频道配置)

