bt(宝塔)面板安装wordpress、启用memcached、Batcache让你的博客飞起来

2017年12月21日 72 40,804 3182字阅读10分36秒

wordpress,大鸟前面也说过教程,如何开启memcachedbatcache这些缓存插件,但是前面说的教程都是要自己动手安装,当然了,军哥的lnmp 是自己安装的时候可以选择的,wdcp没有默认安装,bt(宝塔)面板到是可以自己选择安装,很方便啊。今天就来说说如何用bt(宝塔)面板来玩转wordpress。

bt(宝塔)面板安装wordpress、启用memcached、Batcache让你的博客飞起来

bt(宝塔)面板确实挺好用的,而且可以一键安装很多知名的cms,但是大鸟不习惯用他的一键部署源码这个插件,我还是喜欢自己动手安装。

第一,安装bt(宝塔)面板

我们自己要有一台vps,虚拟主机就不要搞了。然后安装bt(宝塔)面板,不会安装可以看看大鸟前面的教程(推荐Linux服务器面板宝塔软件)或者去他们官网看看如何安装bt(宝塔)面板。

官网:www.bt.cn

安装好之后,把坏境配置好,这些bt(宝塔)面板都是一键就可以搞定了。大鸟这选择的php7.2,bt(宝塔)面板默认的是php5.5,这个请随意。你也可以选择更高版本的php。bt(宝塔)面板安装wordpress、启用memcached、Batcache让你的博客飞起来

大鸟这里就是这样的了,redis可以不用安装。大鸟这里是测试用的。

第二:新建站点,安装wordpress

第一步做好了,我们需要新建站点,bt(宝塔)面板新建网站如果你不会可以看大鸟前面的教程(BT宝塔Linux VPS/服务器Web面板添加域名、FTP、数据库、备份攻略)这些都很简单。看下就会了。

bt(宝塔)面板安装wordpress、启用memcached、Batcache让你的博客飞起来

php版本选择大家可以自行选择。

大鸟选择是php-72,你可以选择更高的或者用默认的。但是选择之前自己在后台软件管理里面安装好需要的版本,不建议都安装,那样也占用资源。就用默认就可以了。弄好之后就安装wordpress,开始建站吧。

第三,安装Memcached

wodpress安装好之后,我们开始安装Memcached,这个安装也很简单,后台,点点点就可以了。bt面板这点做的挺好的,常用的缓存都给我们在后台集成好了,根据需要可以自行安装。bt(宝塔)面板安装wordpress、启用memcached、Batcache让你的博客飞起来

看到大鸟图上箭头所指向的那个,Memcached 点击安装就可以了(宝塔面板有两个地方有Memcached,一个是在软件商店的运行环境里面,一个是在php扩展里面,我们需要先安装PHP扩展中的Memcached 如图上所示,安装好之后,运行环境中的Memcached 也会自动安装好,不用人工干预。)安装好之后。我们看到这两个地方,如图

bt(宝塔)面板安装wordpress、启用memcached、Batcache让你的博客飞起来

安装好之后我们开始折腾wordpress。要安装和wopress配套的插件大鸟前面也说过(【Memcached+Memcache】WordPress安装Memcached(Memcache)缓存加速)看步骤!

1、安装插件

memcached插件有两个地方可以下载,我们可以访问github项目页面下载插件包:

https://github.com/tollmanz/wordpress-pecl-memcached-object-cache

下载并解压得到的 object-cache.php,上传到 wp-content 目录即可开启memcached缓存。

或者我们去wodpress后台的插件库里下载MemcacheD Is Your Friend,只要后台搜索下既可默认下载安装就可以了。

PHP Memcached 扩展https://wordpress.org/plugins/memcached-is-your-friend/

值得说明的是,这里还有一个大坑等着你来踩:

WordPress官网上还有的object-cache.php虽然也号称Memcached 插件,然而它只支持Memcache,不支持新版的,所以不能使用。如果错误地将object-cache.php和Memcached混用的话,则会出现WordPress打不开,前台后台页面一片空白的现象。

2、安装batcache插件

batcache可以将整个页面缓存到内存中,下次直接从内存中取出html,完全不需要计算,所以速度非常快。下载解压后其实只有advanced-cache.php是有用的,而batcache.php是一个提供情况缓存的GUI入口,并无大用。

直接在WordPress后台搜索安装 batcache ,也可以从官方下载插件包:

https://wordpress.org/plugins/batcache/

然后解压得到 advanced-cache.php 上传到wp-content即可。

其中advanced-cache.php有一些自定义的选项可供配置:我们打开源代码编辑调成成下面的模式。

var $max_age =  3600; // Expire batcache items aged this many seconds (zero to disable batcache)
var $remote  =    0; // Zero disables sending buffers to remote datacenters (req/sec is never sent)
var $times   =    2; // Only batcache a page after it is accessed this many times… (two or more)
var $seconds =  0; // …in this many seconds (zero to ignore this and use batcache immediately)

max_age代表缓存过期时间(以秒为单位),times表示访问多少次才创建缓存(2是最小值),seconds表示在多少秒之后才创建缓存(0表示立即)。

之后将advanced-cache.php上传到wp-content目录即可。

3、编辑博客根目录的wp-config.php 文件

上述所说步骤做完之后,编辑博客根目录的wp-config.php 文件,添加下方两段代码进去并保存:

define('ENABLE_CACHE', true);
define('WP_CACHE', true);

如下图所示:bt(宝塔)面板安装wordpress、启用memcached、Batcache让你的博客飞起来

 解析:define('ENABLE_CACHE', true);这段是激活Memcached; define('WP_CACHE', true);是激活Batcache;

上方步骤完成之后,进入博客后台-插件-已安装插件,如下图所示,就已经开启了Memcached 缓存功能,试试打开速度,是不是飞快?bt(宝塔)面板安装wordpress、启用memcached、Batcache让你的博客飞起来

第四:查看memcached的缓存效果

有时候我们想看看Memcached的加速效果,这时候可以利用官网上的一个工具:

http://pecl.php.net/get/memcache-3.0.8.tgz

解压后提取memcache.php上传到服务器,访问后即可看到缓存效果。

或者直接退出wordpress的登录状态,然后刷新网站首页。

bt(宝塔)面板安装wordpress、启用memcached、Batcache让你的博客飞起来

看源文件,出现绿色的的文字自后,说明,缓存已经工作了。说明下,缓存登录的时候是不缓存的,那时候刷新没用,只有游客访问才会缓存。

这些都弄好了是不是感觉飞快。

第五:总结

1、bt(宝塔)面板开启memcached缓存真的很方便,软件管理里面安装就可以了,这点要比Wdcp要好,wdcp集成的memcached还是老版本的,而且wdcp没有软件管理这个功能呢,如果有,可以让我们自行选择。

2、wordpress本身是个很优秀的cms,但是如果你不给他做缓存,那根本没法用。所以大鸟选择用bt(宝塔)面板来安装wordpress并且开启缓存加速这样更适合小白用。不用再ssh端敲那些命令。

3、memcached缓存可比什么WP-Super-Cache效果好很多,如果你不信,可以自己试试看。即使远在大洋彼岸,也会让你的博客快很多。

第六:遇到的问题

感谢网友“无心”提醒,如果是2个一样的wordpress,得修改数据库前缀不同这样缓存才不会冲突,如果是默认得wp会出现把第一个缓存到第二个到情况。如果大家要安装两个站点要注意这里。

继续阅读
  • 我的微信
  • 分享宝塔面板建站技术交流等!
  • weinxin
  • 微信公众号
  • 关注本博公众号
  • weinxin
  • 文本由 发表于 2017年12月21日
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
去掉bt(宝塔)面板后台的广告推广 技术分享

去掉bt(宝塔)面板后台的广告推广

大鸟前前后后也写过不少bt(宝塔)面板的教程,确实,bt(宝塔)面板很好用,用户量也是增长的很迅速,希望bt(宝塔)面板能保持初心,砥砺前行。 但是我们经常在bt(宝塔)面板后台看到推广广告,而且关闭...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:72   其中:访客  65   博主  7
    • avatar tensec @回复 0

      都安装了,切换到游客的时候,还是看不到绿色的缓存秒数,这个是没有安装成功的意思吗?另外,安装memcache后,需要在服务器那边开放11121的端口吗?

        • avatar 大鸟 @回复 5

          @tensec 如果看不到绿色的缓存说明,可能安装不成功,需要仔细看看教程,看看自己哪里出错了,不需要开放,那些都是安装的时候系统自动给你配置好的。

        • avatar 233 @回复 0

          博主你好,为什么我在wp-config.php 里面已经添加了define(‘WP_CACHE’, true);但是在高级插件哪里为什么还会显示“未启用: 需要在wp-config.php文件中包含define(‘WP_CACHE’, true);。”

            • avatar 大鸟 @回复 5

              @233 你在wp-config.php放的位置不对。你可以按照图上的地方放放看,或者你换个地方放放看。

            • avatar 阿哲 @回复 2

              博主你好,我昨天按照你的文章步骤测试了下memcached+wp super cache的实验室对象缓存功能。开启成功。但是宝塔面板的带宽从原本的200k-400k左右波动一下子一两千k的跳。从服务器上看带宽变化不到,不知道这个是不是异常?
              还有一个问题是,开启之后文章似乎变成动态的了,阅读数字都可以刷新了。没开之前17ce测速度是在0.2秒左右 打开之后都飙到十几秒了。蜘蛛抓取也由原来的0.1秒多变成一两秒。但是正常打开网站是正常的,服务器负载波动也很大。

              是不是不应该用wp super cache这个缓存插件?还是说本身memcached开启后就是这样?网站流量一天4000ip左右,同时在线峰值不超过30的情况下。希望鸟哥能够为小白解答下 万分感谢!

                • avatar 大鸟 @回复 5

                  @阿哲 batcache安装了没有,安装了memcached之后要安装batcache才会把对象缓存到内存里面!你在测试看看!

                    • avatar 阿哲 @回复 2

                      @大鸟 我原本目录下就有advanced-cache.php 不知道是不是wp super cache自带的。用不用替换掉?还是说两个冲突了,那今晚回去把wp super cache卸载再安装batcache这个可行吗?

                        • avatar 大鸟 @回复 5

                          @阿哲 恩,memcached和batcache才是绝配,其实和wp super cache搭配效果不是太好。我这个博客就是memcached和batcache的组合,你打开看的话速度应该还可以。

                            • avatar 阿哲 @回复 2

                              @大鸟 博主 今天我试了下 按照你给的地址下载了并且上传了 advanced-cache.php 也在wp-config.php 上面define(‘WP_CACHE’, true); 启用了 但是wordpress 后台显示 未启用 不知道什么原因 试了好几次

                                • avatar 大鸟 @回复 5

                                  @阿哲 define(‘WP_CACHE’, true)的位置放对了没,有时候一直显示未启用,就是define(‘WP_CACHE’, true)放的位置不对,你可以放在我截图上所标识的位置,这些其实都很简单,就是有时候一些小细节没注意!

                                    • avatar 阿哲 @回复 2

                                      @大鸟 嗯 检查之后 可以了 但是最后没有绿色的缓存说明。。

                                        • avatar 大鸟 @回复 5

                                          @阿哲 退出登录之后刷新页面就会显示了,或者换个浏览器!

                                            • avatar 阿哲 @回复 2

                                              @大鸟 测试好了 速度杠杠的 服务器一下子缓过来了 非常感谢帮助!

                                                • avatar 大鸟 5

                                                  @阿哲 有问题可以多交流!

                                • avatar 阿哲 @回复 2

                                  最近网站一直被攻击 几个IP 高频访问 封了 又来 鸟哥对于这种有没有好的解决办法啊

                                    • avatar 大鸟 @回复 5

                                      @阿哲 看看这篇文章是否对你有帮助【bt(宝塔)面板添加shell 脚本通过nginx日志封访问频率过高的IP】
                                      http://www.daniao.org/2490.html

                                    • avatar yeemun @回复 1

                                      请问,如果网站还用了压缩页面js,ccs,htm的插件,可以一起公用吗,比如 Autoptimize这个,

                                        • avatar 大鸟 @回复 5

                                          @yeemun 额,当然可以,大鸟这个博客就是用了 Autoptimize 来压缩的,很显然这样做优化的效果会更好!

                                        • avatar 似水年华 @回复 1

                                          博主,你好。
                                          按教程上传 object-cache.php 后网站出现错误提示,我完全按教程重新设置了两遍都不行,麻烦看下是否可以根据错误提示协助解决,谢谢。 Fatal error: Uncaught Error: Class ‘Memcached’ not found in /www/wwwroot/www.domain.com/wp-content/object-cache.php:825 Stack trace: #0 /www/wwwroot/www.domain.com/wp-content/object-cache.php(735): WP_Object_Cache->__construct() #1 /www/wwwroot/www.domain.com/wp-includes/load.php(514): wp_cache_init() #2 /www/wwwroot/www.domain.com/wp-settings.php(113): wp_start_object_cache() #3 /www/wwwroot/www.domain.com/wp-config.php(100): require_once(‘/www/wwwroot/ww…’) #4 /www/wwwroot/www.domain.com/wp-load.php(37): require_once(‘/www/wwwroot/ww…’) #5 /www/wwwroot/www.domain.com/wp-admin/admin.php(31): require_once(‘/www/wwwroot/ww…’) #6 /www/wwwroot/www.domain.com/wp-admin/index.php(10): require_once(‘/www/wwwroot/ww…’) #7 {main} thrown in /www/wwwroot/www.domain.com/wp-content/object-cache.php on line 825

                                            • avatar 大鸟 @回复 5

                                              @似水年华 你是vps,用的什么面板?貌似是memcache装错了!你把php重启下看看!

                                                • avatar 似水年华 @回复 1

                                                  @大鸟 重启无效,我用的腾讯云1核2G,宝塔面板。另外我刚新开了个 Linode 2核2G 的,宝塔面板,安装也是卡在这,错误提示:Fatal error: Class ‘Memcached’ not found in /www/wwwroot/domain.com/wp-content/object-cache.php on line 825

                                              • avatar Skeet @回复 0

                                                @@大鸟 大鸟,我也是这个on line825的问题,怎么破呀

                                                  • avatar 大鸟 @回复 5

                                                    @Skeet 我擦,各种奇葩问题啊。给我qq我加你下,给你看看!

                                                    • avatar 大鸟 @回复 5

                                                      @Skeet 它看起来像你试图使用一个(“memcache”),但你安装的(“memcached”)安装错了?

                                                    • avatar chxws @回复 0

                                                      大鸟,这个能跟WP Rocket一起使用吗?还是单独用这个快一些

                                                        • avatar 大鸟 @回复 5

                                                          @chxws 一起用也没什么关系,但是建议单独使用吧。

                                                        • avatar 冷兔 @回复 2

                                                          我是阿里云突发性能t5主机 最近安装了宝塔面板 进入wordpress后台 响应速度很慢 不稳定 我安装试试怎么样

                                                          • avatar 冷兔 @回复 2

                                                            我按照你的教程安装了 但现在wordpress后台插件只显示一个object-cache.php 没有显示advanced-cache.php

                                                            • avatar 冷兔 @回复 2

                                                              刚才我把advanced-cache.php从plugins里找到并修改了里面一些自定义的选项配置 然后把advanced-cache.php剪切到wp-content文件夹下 现在wordpress显示了那两个插件 但我感觉速度还是差不多 可能我一直使用七牛云 所以速度都差不多

                                                                • avatar 大鸟 @回复 5

                                                                  @冷兔 如果用的国内的然后套上了cdn,也可以不用缓存!

                                                                    • avatar 小康博客 @回复 0

                                                                      @大鸟 我用了CDN,感觉还是卡,尤其是评论和注册登录的时候。

                                                                        • avatar 大鸟 @回复 5

                                                                          @小康博客 动态是不缓存的,评论卡的话,可以把邮件提醒功能去掉,在wordpress后台! :mrgreen:

                                                                    • avatar 冷兔 @回复 2

                                                                      这个缓存生效 以后怎么重新刷新缓存

                                                                        • avatar 大鸟 @回复 5

                                                                          @冷兔 可能你没仔细看,batcache里面有设置会缓存会自动失效,然后重新生成。

                                                                        • avatar 冷兔 @回复 2

                                                                          这个缓存开关在哪里呀

                                                                          • avatar 神探飞机猴 @回复 0

                                                                            问一下 开启了wp-rocket插件和这个冲突吗?

                                                                            • avatar 无心 @回复 2

                                                                              大鸟问下,如果是宝塔面板里面又2个wordpress程序,会冲突吗?是否需要修改呢

                                                                                • avatar 大鸟 @回复 6

                                                                                  @无心 2个站点,2个wordpress,没什么冲突,就按照这样安装启用就可以了!

                                                                                    • avatar 无心 @回复 2

                                                                                      @大鸟 感谢回复,今天尝试了下发现,如果是2个一样的wordpress,得修改数据库前缀不同这样缓存才不会冲突,如果是默认得wp会出现把第一个缓存到第二个到情况。

                                                                                        • avatar 大鸟 @回复 6

                                                                                          @无心 感谢提醒,我会更新在文章里,提醒更多的人,谢谢!

                                                                                    • avatar 香蕉 @回复 0

                                                                                      如何清理缓存

                                                                                        • avatar 大鸟 @回复 6

                                                                                          @香蕉 额,自动清理缓存,缓存有个有效期,可以不用去管这个问题。max_age代表缓存过期时间(以秒为单位),times表示访问多少次才创建缓存(2是最小值),seconds表示在多少秒之后才创建缓存(0表示立即)。

                                                                                            • avatar 香蕉 @回复 0

                                                                                              @大鸟 等了很久,并不会自动清理,主题设置保存后依旧还是旧缓存

                                                                                                • avatar 大鸟 @回复 6

                                                                                                  @香蕉 额,这是缓存在内存里面的啊,你用的什么面板还是一键包,最好用这个cache
                                                                                                  https://github.com/tollmanz/wordpress-pecl-memcached-object-cache

                                                                                            • avatar 大鸟 @回复 6

                                                                                              清理memcached缓存
                                                                                              首先telnet连接memcache,然后“flush_all”清除缓存,最后quit退出。
                                                                                              [root@admin ~]# telnet 192.168.101.51 12000
                                                                                              Trying 10.118.180.58…
                                                                                              Connected to 10.118.180.58.
                                                                                              Escape character is ‘^]’.
                                                                                              flush_all
                                                                                              OK
                                                                                              quit
                                                                                              Connection closed by foreign host.

                                                                                                • avatar memcache @回复 0

                                                                                                  @大鸟 链接不上memcache啊。
                                                                                                  telnet 192.168.101.51 12000 进不去
                                                                                                  百度说要安装telnet,可是好麻烦。有其他方法吗?

                                                                                                    • avatar 大鸟 @回复 6

                                                                                                      @memcache yum install telnet-server
                                                                                                      宝塔面板的释放内存试试看!用计划任务做个定时释放内存。

                                                                                                  • avatar 一芦居 @回复 0

                                                                                                    我的站点根据您的办法,安装了memcached+batcache,现在快了很多,有没有必要再上一个opcache啊?另外,CDN插件有没有推荐的?

                                                                                                      • avatar 大鸟 @回复 6

                                                                                                        @一芦居 opcache是必装的,所以没装的赶紧安装。CDN,我们可以先动静分离,然后把静态的放到又拍云,或者七牛云都可以。文章可以自己搜索,都有!

                                                                                                      • avatar 为主的祥助 @回复 0

                                                                                                        请问advanced-cache.php和object-cache.php上传后默认是644权限,是否需要改为755权限?

                                                                                                          • avatar 大鸟 @回复 6

                                                                                                            @为主的祥助 嗯,可以修改成755 www的权限!可以加我的微信,有空也可以多交流!

                                                                                                          • avatar 缙哥哥 @回复 6

                                                                                                            2个或以上wordpress的话还可以参考下这个https://www.dujin.org/12476.html

                                                                                                            • avatar 三石 @回复 5

                                                                                                              感谢大鸟分享,安装memcached成功,但是安装batcache报错(2处错误):
                                                                                                              1.Call to undefined function wp_cache_init()
                                                                                                              2.Call to undefined function load_default_textdomain()
                                                                                                              重试了几遍都没能解决。请教大鸟!
                                                                                                              感谢指点!!!

                                                                                                                • avatar 大鸟 Admin @回复

                                                                                                                  @三石 你是什么web环境?

                                                                                                                    • avatar 三石 @回复 5

                                                                                                                      @大鸟 感谢大鸟!!!宝塔面板+LNMP环境,阿里云ECS。

                                                                                                                        • avatar 大鸟 Admin @回复

                                                                                                                          @三石 php什么版本?你可以试试换一个PHP版本!

                                                                                                                        • avatar 三石 @回复 5

                                                                                                                          @大鸟 两个站都重试了几遍,还是报错。所以就来请教大鸟了!

                                                                                                                      • avatar emorsl @回复 6

                                                                                                                        为啥我在宝塔直接安装 memcached 一直安装不成功啊

                                                                                                                          • avatar 大鸟 Admin @回复

                                                                                                                            @emorsl 是不是安装了什么安全软件啊,可以试着关闭,执行试试看!
                                                                                                                            yum install libevent libevent-devel -y

                                                                                                                          • avatar 感恩 @回复 1

                                                                                                                            感谢大鸟分享,我这个是什么问题
                                                                                                                            Fatal error: Uncaught Error: Call to undefined function wp_cache_init() in /www/wwwroot/gsypsxljt.com/wp-content/advanced-cache.php:360 Stack trace: #0 /www/wwwroot/gsypsxljt.com/wp-settings.php(95): include() #1 /www/wwwroot/gsypsxljt.com/wp-config.php(86): require_once(‘/www/wwwroot/gs…’) #2 /www/wwwroot/gsypsxljt.com/wp-load.php(37): require_once(‘/www/wwwroot/gs…’) #3 /www/wwwroot/gsypsxljt.com/wp-blog-header.php(13): require_once(‘/www/wwwroot/gs…’) #4 /www/wwwroot/gsypsxljt.com/index.php(17): require(‘/www/wwwroot/gs…’) #5 {main} thrown in /www/wwwroot/gsypsxljt.com/wp-content/advanced-cache.php on line 360
                                                                                                                            The site is experiencing technical difficulties.

                                                                                                                              • avatar 大鸟 Admin @回复

                                                                                                                                @感恩 你可以试试BT(宝塔面板)-WordPress开启Nginx fastcgi_cache缓存加速
                                                                                                                                https://www.daniao.org/3624.html
                                                                                                                                目前最好用的缓存!

                                                                                                                              • avatar 玩转英语语法 @回复 0

                                                                                                                                能不能出一个lamp环境下安装memcached的教程?

                                                                                                                                • avatar 哈哈 @回复 1

                                                                                                                                  我把这个memcache.php上传到宝塔建的网站的根目录下面了 问什么会报错啊

                                                                                                                                  访问就出现下面的情况了: 我是传到了我新建网站xin123 这个目录下的 是不是放错位置了

                                                                                                                                  Warning: Division by zero in /www/wwwroot/xin123/memcache.php on line 701

                                                                                                                                  Warning: Division by zero in /www/wwwroot/xin123/memcache.php on line 702

                                                                                                                                  Warning: Division by zero in /www/wwwroot/xin123/memcache.php on line 703

                                                                                                                                  Warning: Division by zero in /www/wwwroot/xin123/memcache.php on line 704

                                                                                                                                    • avatar 大鸟 Admin @回复

                                                                                                                                      @哈哈 上传到wp-content目录

                                                                                                                                    • avatar MAY的SEO博客 @回复 4

                                                                                                                                      哈哈,这篇文章值得收藏。

                                                                                                                                      • avatar 小鸟 @回复 0

                                                                                                                                        感谢分享。
                                                                                                                                        请问装了memcached缓存插件 是不是 会导致 来访者的ip 全都显示127.0.0.1 ? 宝塔面板的日志也是127.0.0.1?

                                                                                                                                          • avatar 大鸟 Admin @回复

                                                                                                                                            @小鸟 不是,没有这个说法。

                                                                                                                                              • avatar 小鸟 @回复 0

                                                                                                                                                @大鸟 那 请问 博主 知不知道 来访ip 全显示为127.0.0.1 是什么原因啊?

                                                                                                                                                  • avatar 大鸟 Admin @回复

                                                                                                                                                    @小鸟 我不知道哎,你需要截图给我看才行。