使用Xcache缓存器加速你的PHP网站

news/2024/5/20 15:30:43/文章来源:https://blog.csdn.net/zqtsx/article/details/8307646

  由于国内网站备案比较麻烦,所以笔者便把网站放到了香港。虽然网站免去了备案的困扰,但是从访问速度上来看,一般要比放于国内的网站慢2-3倍,所以便想办法对网站做了一些简单的优化,比如使用缓存系统来提升网站页面访问速度。

  目前用于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

复制代码
1 # wget http://xcache.lighttpd.net/pub/Releases/1.3.0/xcache-1.3.0.tar.gz
2 # tar zxvf xcache-1.3.0.tar.gz
3 # cd xcache-1.3.0
4 # /usr/local/php/bin/phpize
5 # ./configure --enable-xcache--enable-xcache-coverager --enable-xcache-optimizer--with-php-config=/usr/local/php/bin/php-config
6 # 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

  然后添加如下内容

复制代码
 1 extension_dir=/usr/local/php/include/php/ext
 2 
 3 [xcache-common]
 4 extension = xcache.so
 5 [xcache.admin]
 6 xcache.admin.enable_auth = On
 7 xcache.admin.user = "xcache"
 8 xcache.admin.pass = ""
 9 
10 [xcache]
11 xcache.shm_scheme ="mmap"
12 xcache.size=60M
13 xcache.count =1
14 xcache.slots =8K
15 xcache.ttl=0
16 xcache.gc_interval =0
17 xcache.var_size=4M
18 xcache.var_count =1
19 xcache.var_slots =8K
20 xcache.var_ttl=0
21 xcache.var_maxttl=0
22 xcache.var_gc_interval =300
23 xcache.test =Off
24 xcache.readonly_protection = On
25 xcache.mmap_path ="/tmp/xcache"
26 xcache.coredump_directory =""
27 xcache.cacher =On
28 xcache.stat=On
29 xcache.optimizer =Off
30 
31 [xcache.coverager]
32 xcache.coverager =On
33 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的简单类:

 

程序代码

复制代码
 1 <?php
 2 /**
 3 * Xcache moudle
 4 */
 5 class cacheHelper{
 6   public $prefix;
 7   function __construct(){
 8     if(!function_exists('xcache_get')){
 9       exit("This application must required XCache module.");
10     }
11   }
12   /**
13    * __set
14    *
15    * @param mixed $name
16    * @param mixed $value
17    * @access public
18    * @return void
19    */
20   public function __set($name, $value){
21     xcache_set($this->prefix.$name, $value);
22   }
23   /**
24    * __get
25    *
26    * @param mixed $name
27    * @access public
28    * @return mixed
29    */
30   public function __get($name){
31     return xcache_get($this->prefix.$name);
32   }
33   /**
34    * __isset
35    *
36    * @param mixed $name
37    * @access public
38    * @return bool
39    */
40   public function __isset($name){
41     return xcache_isset($this->prefix.$name);
42   }
43   /**
44    * __unset
45    *
46    * @param mixed $name
47    * @access public
48    * @return void
49    */
50   public function __unset($name){
51     xcache_unset($this->prefix.$name);
52   }
53 }
54 ?>
复制代码

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_832197.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型网站架构演变和知识体系

1、架构演变第一步&#xff1a;物理分离webserver和数据库 2、架构演变第二步&#xff1a;增加页面缓存 如用squid做页面缓存&#xff0c;或生产静态页面&#xff0c;不使用jsp 3、架构演变第三步&#xff1a;增加页面片段缓存 页面缓存失效情况比较多&#xff0c;因此可以使…

网站页面性能优化的35条黄金守则

1. Make fewer HTTP requests 尽可能少的http请求。。我们有141个请求&#xff08;其中15个JS请求&#xff0c;3个CSS请求&#xff0c;47个CSS background images请求&#xff09;&#xff0c;多的可怕。思考了下&#xff0c;为什么把这个三种请求过多列为对页面加载的重要不利…

web服务器添加网站win8,Win8系统配置局域网web服务器的方法

在win8系统中&#xff0c;我们可以通过配置web服务器来将信息实现互通&#xff0c;可以放置网页让局域网内浏览等&#xff0c;那么在win8系统中要怎么配置配置局域网web服务器呢&#xff1f;下文给大家分享一下Win8系统配置局域网web服务器的方法。1、首先在win8系统中打开电脑…

如何用合作的态度来提升网站收录与排名?

合作共赢&#xff0c;这个词被应用到各行各业是不无道理的&#xff0c;在SEO行业里同样如此。 在多年前&#xff0c;那是SEO飞速发展的时代&#xff0c;我们见证了许许多多的SEO神话&#xff0c;各种各样一夜暴富的神人&#xff0c;但为什么近几年这样的神话越来越少? 这个问题…

如何利用链接诱饵来为网站获取强大的流量?

相信大家在优化网站的时候会遇到这样的问题&#xff0c;网站怎么优化都没有效果&#xff0c;排名一些掉&#xff0c;而且&#xff0c;做了外链效果不太行&#xff0c;买卖链接似乎效果平淡&#xff0c;这个时候&#xff0c;我们到底要用什么方法来改变网站的现状&#xff0c;提…

本地运行php和html文件,从本地html / javascript网站发布到在线PHP文件

我想做什么从本地html / javascript网站发布到在线PHP文件。问题当我尝试使用下面的代码时&#xff0c;我不断收到以下提到的错误。背景&#xff1a;该网站旨在在本地运行。由于要由每个用户选择使用哪种浏览器&#xff0c;因此我希望找到一种可以解决上述问题的方法&#xff0…

PHP爬取网站内容

最近公司需要存在阿里云对象存储&#xff08;oss&#xff09;里的视频文件&#xff0c;而且需要18套课程的视频源文件&#xff0c;这周就要&#xff0c;我想了一下这要是一个一个找那可就麻烦了。要想想一套课程有n个章节&#xff0c;每个章节有n个视频文件。所以我下定决心要写…

wamp控制下多目录挂网站

图片&#xff1a; 前几天有个网上一起看php100视频学习php的朋友问我怎么在wamp上不同目录挂多个网站&#xff0c;我在网上搜了下资料&#xff0c;自己琢磨了一下午&#xff0c;现在把自己的方法公布出来&#xff0c;欢迎大家指正。也希望大家有更好的办法也公布出来。 以下方…

一种常见网站布局的实现

一种常见布局&#xff08;上方显示单元列表链接&#xff0c;左边显示分类链接&#xff09;的实现 很多网站有一种布局&#xff0c;就是在页面上方显示单元的列表&#xff08;可能是这样&#xff0c;也可以加其它的链接&#xff09;&#xff0c;用户单击某个单元的链接后产生的新…

任意网站支持RSS

说好的metal咋出锅了啊? 今天本来想分享metal还有一些东西在整理,就先分享一个好玩的东西,我们有时候想关注一个不错的学习网站在有更新的时候第一时间知道, 有的网站还不支持RSS, 这可能用Feed43blogtrottr这两个工具了 1,就会在此页面有内容更新。然后 打开 Feed43&#xf…

以电商网站为例,谈大型分布式架构设计与优化

本文大纲&#xff1a; 1. 使用电商案例的原因 2. 电商网站需求 3. 网站初级架构 4. 系统容量估算 5. 网站架构分析 6. 网站架构优化 本文主题为电商网站架构案例&#xff0c;将介绍如何从电商网站的需求&#xff0c;到单机架构&#xff0c;逐步演变为常用的、可供参考的分布式架…

大型php网站性能和并发访问优化方案(转载自php中文网)

网站性能优化对于大型网站来说非常重要&#xff0c;一个网站的访问打开速度影响着用户体验度&#xff0c;网站访问速度慢会造成高跳出率&#xff0c;小网站很好解决&#xff0c;那对于大型网站由于栏目多&#xff0c;图片和图像都比较庞大&#xff0c;那该怎么进行整体性能优化…

你想学的一切,只需要这一个网站就够了

简评&#xff1a;这个网站叫 Learn Anything&#xff0c;最终形态是「人们想要搜索什么知识&#xff0c;都会获得最高效且适合自己的学习路径&#xff0c;知识图谱」。现在网站刚刚建立不久&#xff0c;还处于比较初期&#xff0c;是个开源项目&#xff0c;大家有兴趣可以参与一…

程序员业余必去的六个网站!

工作了半年后&#xff0c;觉得自己的能力毫无提升的方式&#xff1f;作做好本职工作之外&#xff0c;不妨多去接一些私活&#xff0c;除了提升自己的技能之外&#xff0c;也让收入再上一层&#xff0c;何乐不为&#xff1f; 平台 0.程序员客栈 https://www.proginn.com/ 主要雇…

用xampp 和wordpress 搭建本地网站

你好&#xff0c;从今天开始&#xff0c;我将为大家带来一些我学习SEO和建站的免费教程&#xff0c;今天为大家带来的是如何用XAMPP搭建一个属于你自己的网站。来到这里&#xff0c;可以说很多在百度上已经过时了的资料需要总结的资料这里都有&#xff0c;你只要按照我的教程来…

Ruby on Rails 简介。来自于一个台湾网站,某些术语与大陆翻译不同

转:https://ihower.tw/rails4/intro.html Ruby on Rails 簡介 “Life’s too short to build something nobody wants” - Ash Maurya, Running Lean 作者 Ruby on Rails是一套非常有生產力、維護性高、容易佈署的Web開發框架。從一開始不知名的玩具&#xff0c;到現在它已經成…

大型网站技术架构(五)网站高可用架构

2019独角兽企业重金招聘Python工程师标准>>> 网站的可用性&#xff08;Avaliability&#xff09;描述网站可有效访问的特性。 1、网站可用性的度量与考核 网站不可用时间&#xff08;故障时间&#xff09;故障修复时间点-故障发现&#xff08;报告&#xff09;时间点…

安装网站源码时提示:【写入配置失败,请检查***目录是否可写入!】 (已解决)

首先网站安装位置&#xff0c;可以百度查一查。 我的是阿里云服务器&#xff0c;位置是阿里云之前指定的路径&#xff0c;就直接拿来用了&#xff0c;具体文章参考这里&#xff1a;传送门。 然后一路绿灯&#xff0c;也没有什么服务没有开启的情况。不过这里&#xff0c;有个文…

免费抖音短视频素材网站分享

今天给大家分享抖音短视频的知识。 要做好短视频&#xff0c;拥有视频素材网站肯定是少不了&#xff0c;在我们日常的工作学习中也不免会用到一些视频素材。 今天给大家分享一些不错的无版权视频网站(部分需科学上网)&#xff0c;用好了&#xff0c;视频制作的成本将大大降低…

PCB封装库网站

https://www.snapeda.com/home/ https://componentsearchengine.com/index.html 在线EDA&#xff08;可以导出pcb和原件封装&#xff09; https://easyeda.com AD官网库&#xff08;新&#xff09; https://designcontent.live.altium.com/#UnifiedComponents AD官网库&#…