WDCP,LNMP安装PHP缓存加速扩展eAccelerator,xcache和memcached

VPS主机   2014年03月07日 18:00  

WDCP,LNMP安装PHP缓存加速扩展eAccelerator,xcache和memcached

VPS主机性能配置如果太差,则在运行Wordpress博客和Discuz! 论坛等高消耗程序时能够明显感觉出VPS有些吃力。另外,即使VPS主机的CPU、内存、硬盘I/O等性能足够好,但是在面对大流量时则有可能导致PHP执行效率降低,网页打开速度变慢等不正常的情况。

为了能够在低配置的VPS主机上Web也能跑出流畅的感觉和在面对流量高峰时服务器也能从容应对大量的应该访问请求,我们一般会给PHP安装上几点缓存加速扩展:eAccelerator,xcache和memcached,优化动态内容缓存,提高php脚本的缓存性能和执行效率。

eAccelerator是一个免费开源的PHP加速、优化、编译和动态缓存的项目,主要是把经过编译后的PHP代码缓存到共享内存中,并在用户访问的时候直接调用从而起到高效的加速作用。XCache是由国人开始的PHP加速器,在Linux下测试,高负载状况下表现良好,同时还支持ThreadSafe/Windows。

memcached与eAccelerator,xcache不同,它是一套分布式的高速缓存系统,通过在内存中缓存数据和对象来减少读取数据库的次数,一般将它用MysqL数据库的缓存加速。eAccelerator,xcache和memcached搭配起来,各自分区,加速效果更好。

本篇文章主要是分享一下如何在WDCP面板和LNMP下安装eAccelerator,xcache和memcached,如果你使用了其它的VPS主机控制面板或者LNMP一键安装包,可以参考此文来安装。更多的有关于VPS主机性能优化和加速的方法还有:

WDCP,LNMP安装PHP缓存加速扩展eAccelerator,xcache和memcached

一、WDCP安装eAccelerator

1、登录到VPS主机客户端,执行以下命令:


wget https://down.wdlinux.cn/in/eac0961_ins.sh
sh eac0961_ins.sh

WDCP安装eAccelerator

2、然后在/www/wdlinux/目录下新建一个eaccelerator_cache目录。

eAccelerator新建一个目录

3、最后在/www/wdlinux/apache_php-5.2.17/etc中找到php.ini。

eAccelerator找到php.ini文件

4、编辑php.ini,在文件最后加入以下代码:


[eaccelerator]
extension_dir="/www/wdlinux/apache_php-5.2.17/lib/php/extensions/no-debug-zts-20060613/"
extension="eaccelerator.so"
eaccelerator.shm_size="8"
eaccelerator.cache_dir="/www/wdlinux/eaccelerator_cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

eAccelerator加入php.ini代码

5、重启服务器,刷新探针,这时就能看到eAccelerator安装成功了。

eAccelerator安装成功

二、WDCP安装xcache

1、登录到VPS主机客户端,执行以下命令:


wget https://xcache.lighttpd.net/pub/Releases/3.0.3/xcache-3.0.3.tar.gz
tar -zxvf xcache-3.0.3.tar.gz
cd xcache-3.0.3
/www/wdlinux/php/bin/phpize
./configure -with-php-config=/www/wdlinux/php/bin/php-config -enable-xcache -enable-xcache-coverager -enable-inline-optimization -disable-debug
make
make install

xcache执行代码安装

2、然后将以下代码加入到php.ini中。(可以放在文件的最后面)


[xcache-common]
extension = xcache.so

[xcache]
xcache.shm_scheme = "mmap"
xcache.size = 160M
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.var_namespace_mode = 0
xcache.var_namespace = ""
xcache.readonly_protection = Off
xcache.mmap_path = "/tmp/xcache"
xcache.coredump_directory = ""
xcache.coredump_type = 0
xcache.disable_on_crash = Off
xcache.experimental = Off
xcache.cacher = On
xcache.stat = On
xcache.optimizer = Off

[xcache.coverager]
xcache.coverager = Off
xcache.coverager_autostart = On
xcache.coveragedump_directory = ""

xcache添加代码到php.ini

3、重启VPS,生效。

三、WDCP安装APC缓存

1、APC全称是Alternative PHP Cache,是PHP PECL中的一个扩展,APC的缓存分两部分:系统缓存和用户数据缓存。系统缓存是APC把PHP文件源码的编译结果缓存起来,然后在每次调用时先对比时间标记。如果未过期,则使用缓存的中间代码运行。用户数据缓存是缓存由用户在编写PHP代码时用apc_store和apc_fetch函数操作读取、写入的。

2、在WDCP上安装APC缓存方法也很简单,执行以下命令:


wget https://pecl.php.net/get/APC-3.0.19.tgz
tar xvzf APC-3.0.19.tgz
cd APC-3.0.19

/www/wdlinux/php/bin/phpize
./configure -enable-apc -enable-apc-mmap -with-php-config=/www/wdlinux/php/bin/php-config
make
make install

3、然后编辑php.ini文件,在[eaccelerator] extension_dir="/www/wdlinux/apache_php-5.2.17/lib/php/extensions/no-debug-zts-20060613/"下方加入以下代码:


extension ="/apc.so"
enabled = 1
apc.cache_by_default = on
apc.shm_segments = 1
apc.shm_size = 32
apc.ttl = 600
apc.user_ttl = 600
apc.num_files_hint = 0
apc.write_lock = On

WDCP安装APC缓存

4、重启VPS,生效。(点击放大)

WDCP成功安装了eAccelerator、xcache、APC缓存

5、这是我的WDCP成功安装了eAccelerator、xcache、APC缓存后,php.ini的代码:


[xcache-common]
extension = xcache.so
[xcache]
xcache.shm_scheme = "mmap"
xcache.size = 160M
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.var_namespace_mode = 0
xcache.var_namespace = ""
xcache.readonly_protection = Off
xcache.mmap_path = "/tmp/xcache"
xcache.coredump_directory = ""
xcache.coredump_type = 0
xcache.disable_on_crash = Off
xcache.experimental = Off
xcache.cacher = On
xcache.stat = On
xcache.optimizer = Off

[xcache.coverager]
xcache.coverager = Off
xcache.coverager_autostart = On
xcache.coveragedump_directory = ""

[eaccelerator]
extension_dir="/www/wdlinux/apache_php-5.2.17/lib/php/extensions/no-debug-zts-20060613/"
extension ="/apc.so"
enabled = 1
apc.cache_by_default = on
apc.shm_segments = 1
apc.shm_size = 32
apc.ttl = 600
apc.user_ttl = 600
apc.num_files_hint = 0
apc.write_lock = On
extension="eaccelerator.so"
eaccelerator.shm_size="8"
eaccelerator.cache_dir="/www/wdlinux/eaccelerator_cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

四、WDCP安装memcached

1、WDCP官方已经给出了安装memcached的方法,执行以下命令:


wget -c https://down.wdlinux.cn/in/memcached_ins.sh
sh memcached_ins.sh
服务启动或停止
service memcached start|stop|restart

WDCP安装memcached

2、选择你的PHP版本,安装完成。

memcached安装完成

3、然后到WDCP控制面板中,点击memcached设置,没有提示让你安装memcached扩展,就表示WDCP安装memcached成功了。

WDCP后台查看memcached

4、当然你也可以在phpinfo中看到memcached是否已经编译安装。

memcached查看是否编译成功

五、LNMP安装eAccelerator,xcache和memcached

1、LNMP安装eAccelerator,xcache和memcached的方法官方都已经给出,安装比较简单,进入lnmp解压后的目录,执行:./eaccelerator.sh 可以快速安装eAccelerator。

LNMP安装eAccelerator

2、eaccelerator 0.9.5.3 支持PHP 5.2,如需此版本,输入 old 回车。eaccelerator 0.9.6.1 支持PHP 5.2、5.3,如需此版本,输入 new 回车。eaccelerator 1.0-dev 支持PHP 5.2、5.3、5.4,如需此版本输入 dev 回车。

3、执行:./xcache.sh 可以快速安装xcache,有两个版本可以选择,分别是XCache 2.0.0 和XCache 3.0.1。

LNMP安装xcache

4、执行:./memcached.sh 可以快速安装memcached。

5、最后重启VPS主机,重新探针,就可以看到LNMP安装eAccelerator,xcache和memcached成功了。

LNMP安装PHP扩展成功

六、VPS主机安装PHP缓存扩展小结

1、本篇文章只给出了WDCP和LNMP安装eAccelerator,xcache和memcached的方法,如果你使用了其它的VPS控制面板,建议参考官方的文档来安装,如果自己单独配置的话会比较麻烦,且容易出错。

2、eAccelerator,xcache是PHP缓存扩展,memcached、APC缓存是数据库缓存扩展,一般两者只有要安装其中一个即可,不要贪多。另外,实际测试中发现当Cache数量超过一定阀值的时候,APC的性能不如Memcache。

文章出自:免费资源部落 https://www.freehao123.com/ 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。

十个便宜VPS主机分享-VPS服务器建站和搭建应用服务体验
2014年六大免费VPS主机-免费VPS申请、使用和点评

您或许对下面这些文章有兴趣:                    本月吐槽辛苦排行榜

在这个部落村庄里,已经有57 位神马家族成员冒出泡来在农场开始干活了
  • 今天簽到啦!

    阿城守候 回复:

    @超級efly, 你真勤快,天天來部落簽到

    余人陶艺 回复:

    @阿城守候, 看不懂,纯送IP

    这是农场的第 1 块农田,部落批准 [超級efly] 在[2014-3-7 18:10]开垦完成.
  • ivmm 9

    WDCP 的 PHP、Mysql、Nginx 也都是可以升级的。

    EAC 和 Xcache 虽然可以共存但是会严重影响网站性能。

    qi 回复:

    @ivmm, PHP、Mysql升级有没有必要?

    ivmm 回复:

    @qi, 难道会没有必要? PHP 5.3 也已经停止性能更新了,况且越来越多的新的执行语言出现,PHP 的版本更新都会带来很大的性能更新、。

    Mysql 5.1 虽然内存占用少,但是性能和 Mysql 5.5 差了不知道几个档次,不过 5.6 却比 5.5 的性能还要垃圾(一般内存机器上) 而且 Mariadb 代替 Mysql 更加爱了!

    qi 回复:

    @ivmm, 我的PHP和MysqL都低版本的,有几次想升级的冲动。

    ivmm 回复:

    @qi,

    升级是很有必要的,我PHP用5.5.10 。数据库用 Mariadb 10.0.8.

    还是要自己做做功课的,Wordpress 对高版本当然不会有问题拉,但是难保会出其他的错误,备份是需要的。

    要弄清楚自己折腾的环境可不可以平滑升级,不然以后出漏洞了更新不了就麻烦了。由于你这是大网站了,生产环境,自然都要用稳定版本。

    给你个建议吧:PHP 升级到 5.4 + zend opcache + mecached/Redis。 Mysql 用 Mariadb 5.5 代替。 Nginx 折腾 SPDY,买个 SSL。。

    这是农场的第 2 块农田,部落批准 [ivmm] 在[2014-3-7 18:14]开垦完成.
  • 小新 6

    学习了!话说写文章真累人呢

    余人陶艺 回复:

    @小新, 我会说我后台放了一百多篇草稿和定时发布。。

    专注绿软 回复:

    @余人陶艺, 大神啊

    这是农场的第 3 块农田,部落批准 [小新] 在[2014-3-7 18:19]开垦完成.
  • Kung 23

    好吧..缓存什么的- –

    这是农场的第 4 块农田,部落批准 [Kung] 在[2014-3-7 18:30]开垦完成.
  • 若水 16

    后排

    这是农场的第 5 块农田,部落批准 [若水] 在[2014-3-7 18:59]开垦完成.
  • 今天签到了

    这是农场的第 6 块农田,部落批准 [逗妇乳] 在[2014-3-7 19:00]开垦完成.
  • JACK 9

    啦啦啦阿拉

    这是农场的第 7 块农田,部落批准 [JACK] 在[2014-3-7 19:18]开垦完成.
  • 后排,表示小流量目前没需求~

    这是农场的第 8 块农田,部落批准 [无纯洁] 在[2014-3-7 20:09]开垦完成.
  • 等下回去折騰下aws看看

    这是农场的第 9 块农田,部落批准 [阿城守候] 在[2014-3-7 20:40]开垦完成.
  • iWin8 5

    DigitalOcean选哪个机房好?

    qi 回复:

    @iWin8, 这个没有用过。

    iWin8 回复:

    @qi, 听说洛杉矶的机器有问题,纽约的对大陆友好么

    逗妇乳 回复:

    @iWin8, do木有洛杉矶 :?:

    这是农场的第 10 块农田,部落批准 [iWin8] 在[2014-3-7 21:35]开垦完成.
  • 个人感觉XCache好用

    这是农场的第 11 块农田,部落批准 [不认识] 在[2014-3-7 23:27]开垦完成.
  • winson 2

    个人意见:如果你的日IP没有超过5万以上的。PV没有超过上千万。根本没必要安装这些。或者同时在线人数没有达到350~450人每秒。以上所有的功能都没必要。

    我两台独服这些东西我都测试过好几遍。如果没有要封杀他人IP的情况下。直接安装那些 WP缓存插件(其中WP Super Cache 最好)。或者 Varnish服务器。因为这些WP缓存插件跟Varnish服务器生成缓存后。后台的那些WP插件需要服务器Headers头的插件全部失效。

    PS:所有安装WP-缓存插件跟VARNISH,Wp-All-in-One-Seacurity插件,在Nginx服务器下面也失效。也就是大部分有跟安全类别的插件全部没有用。 在LAMP下面倒是可以。

    这是农场的第 12 块农田,部落批准 [winson] 在[2014-3-8 02:13]开垦完成.
  • winson 2

    以上所说的IP没有超过5万以上的。PV没有超过上千万是指 日IP。

    请博主帮我修改下。谢谢

    qi 回复:

    @winson, 谢谢,已经更新。日IP是5万的话,算是一个大型的站点了,如果低于这些IP,安装了缓存反而没有效果还是起到了反效果?

    Winson 回复:

    @qi, 其实,也不能说反效果。如果几百上千,有安装跟没安装没有多大区别。
    eAccelerator
    这个可以有。对php跟脚本有优化加速。

    这是农场的第 13 块农田,部落批准 [winson] 在[2014-3-8 02:14]开垦完成.
  • winson 2

    再加上一点。LNMP很蛋疼。军哥的LNMP。我连续折腾了一个月。因为同时在线人数如果达到450人后。会出现非常卡的现象。。我之前以为是 MYSQL数据库连接数的问题。发现并非如此。因为我修改了连接数都没有用。

    个人觉得,如果不是大型的网站根本不要去玩Nginx服务器。没有技术,反而会让你蛋疼的不行。我单单因为人数同时在线超过450人会卡的问题。我已经在老外论坛或者博客四处发帖。没人知道。

    因为每个人安装LNMP都不同。除非是那些固定的一键安装包。

    说句实话,有时候你发一些问题问那些国内一键安装包作者,他们根本都不知道出了什么问题。

    不是大站点,还是玩Apache的好。

    PS:我很佩服那些国内的那些一键安装包的作者,只是修改了安装步骤或路径,就发表示自己原创的安装包。

    如果要玩国内的那些作者的一键安装包,所有问题都得自己折腾,而最终的答案往往只能从老外的站点上面得到答案。

    个人建议:小站点没必要玩VPS。去购买CPANEL的空间主机最好。

    余人陶艺 回复:

    @winson, 我草,大神

    qi 回复:

    @winson, 我现在用的是Apache,看网上有人说Nginx要好于Apache,差点就想要换了。我发现如果换了Nginx好多的在Apache下运行的插件和规则都可以修改。

    这是农场的第 14 块农田,部落批准 [winson] 在[2014-3-8 02:23]开垦完成.
  • 搬个板凳来学习

    这是农场的第 15 块农田,部落批准 [xilouqingzhu] 在[2014-3-8 11:19]开垦完成.
  • 哪个大侠教我做下网站RSS功能同步啊!

    qi 回复:

    @神回复大全, 同步到哪里?

    神回复大全 回复:

    @qi, 同步到腾讯微博

    qi 回复:

    @神回复大全, 貌似自动同步可以使用插件,你用的是WP吗?

    这是农场的第 16 块农田,部落批准 [神回复大全] 在[2014-3-8 14:24]开垦完成.
  • 现在正在用zend opcache,据说是性能会好些……

    qi 回复:

    @PC丶爱好者,zend opcache效果貌似要好 于apc

    这是农场的第 17 块农田,部落批准 [PC丶爱好者] 在[2014-3-8 17:15]开垦完成.
  • Hiay

    谷歌邮箱收不到godaddy的验证邮件,怎么办?

    qi 回复:

    @Hiay, 应该是在垃圾邮箱当中,我经常就是这样。

    这是农场的第 18 块农田,部落批准 [Hiay] 在[2014-3-8 18:40]开垦完成.
  • exexue

    老大。我们应该转行了呀。多少人离我们而去了呀。。。。。。。。。。。。。。。。。。。。。。。。。

    qi 回复:

    @exexue, 转到哪里去?

    这是农场的第 19 块农田,部落批准 [exexue] 在[2014-3-8 20:33]开垦完成.
  • 金瓶 2

    好吧 不会玩这个!!!

    这是农场的第 20 块农田,部落批准 [金瓶] 在[2014-3-8 22:56]开垦完成.
  • 我们是是一群为分享而生的人

    这是农场的第 21 块农田,部落批准 [外星人源码论坛] 在[2014-3-8 23:24]开垦完成.
  • Winson 2

    缓存插件有用。

    这是农场的第 22 块农田,部落批准 [Winson] 在[2014-3-9 14:41]开垦完成.
  • Winson 2

    缓存插件wp super cache 非常好。就是在nginx下面…缓存插件会让服务器Headers失效。

    qi 回复:

    @Winson, 修改nginx的规则也会导致这样的问题?

    这是农场的第 23 块农田,部落批准 [Winson] 在[2014-3-9 14:44]开垦完成.
  • Winson 2

    我觉得空间主机Godady最好。可惜我的网站JS文件多。占用1~2内存。在一些美国空间主机上,就go da d d y让我运行了2个月。其他一两天被踢或关闭

    qi 回复:

    @Winson, 通过试用Godaddy的VPS,我发现,Godadyd的VPS主机配置确实与它定价20美元一月相当。虽然贵,但配置好。

    这是农场的第 24 块农田,部落批准 [Winson] 在[2014-3-9 14:48]开垦完成.
  • Winson 2

    以上几种拓展,我按我个人所用后的感想排列:
    1,eAccelerator
    2, Xcache
    3,memcached
    4,APC

    另外:# Pagespeed拓展,根本是垃圾一个。

    其实真正的缓存王者是Varnish

    小型站点,没有必要用Vps,推荐空间主机,然后用wp super cache

    qi 回复:

    @Winson, eAccelerator确实有用,我现在还用了memcached

    星翊 回复:

    @qi, 目前装了AMH面板在用
    Memcache-2.2.7-v2
    ZendOpcache-7.0.2
    这两个缓存加速扩展,感觉还是挺不错的。

    AMH运行在windowsazure上,FTP公用端口1721,私有端口21,然后用FTP软件连接会显示:服务器发回了不可路由的地址。使用服务器地址代替。
    用S@SH作端口转发:

    iptables -t nat -A PREROUTING -m tcp -p tcp -d X.X.X.X –dport 1721 -j DNAT –to y.y.y.y:21
    iptables -A FORWARD -m tcp -p tcp -d y.y.y.y –dport 21 -j ACCEPT

    但还是这样,网上的方法试过。请问qi姐知道怎么弄吗? :neutral:

    qi 回复:

    @星翊, 我也没有遇到这样的问题,是不是FTP Server没有安装好?

    这是农场的第 25 块农田,部落批准 [Winson] 在[2014-3-9 14:55]开垦完成.
  • Iris 7

    曾经俩H1F组的memcached分布式轮询缓存效果我会乱说,wordpress秒开有木有!

    Iris 回复:

    @Iris, 新站[url]https://xn--im-5y2d.cn[/url]求关注,内存太小没法再装缓存器了,同时还跑着其他服务。

    小七 回复:

    @Iris, 帅……

    这是农场的第 26 块农田,部落批准 [Iris] 在[2014-3-9 22:01]开垦完成.
  • FINLE 4

    自从上次把vps搞垮之后,再也不敢动它了!

    这是农场的第 27 块农田,部落批准 [FINLE] 在[2014-3-13 11:12]开垦完成.
  • 奇玩

    博主,请问一下,我用的wdcp面板,安装了eAccelerator,xcache和memcached,探针显示xcache为叉,phpinfo里也没有xcache的信息,其它两个都正常开启了,vps也重启了,xcache就是显示叉,请问怎么能解决,百度了一下也没找到解决方法,求指导,我用的是linux php5.2谢谢啦

    这是农场的第 28 块农田,部落批准 [奇玩] 在[2014-4-20 16:05]开垦完成.
  • 其实没有必要安装过多的服务,看站点的日均访问人数而定的。wdcp+memcached足够一般的中小站点。 wdcp超级占内存,不推荐这货,还是自己去手工配置吧

    这是农场的第 29 块农田,部落批准 [kejianet] 在[2014-7-5 20:53]开垦完成.
看贴要回贴有N种理由!看帖不回贴的后果你懂得的!


(Ctrl + Enter提交)   

部落快速搜索栏

热门点击排行榜

网站导航栏

X
返回顶部