wordpress,大鸟前面也说过教程,如何开启memcached 、batcache这些缓存插件,但是前面说的教程都是要自己动手安装,当然了,军哥的lnmp 是自己安装的时候可以选择的,wdcp没有默认安装,bt(宝塔)面板到是可以自己选择安装,很方便啊。今天就来说说如何用bt(宝塔)面板来玩转wordpress。
bt(宝塔)面板确实挺好用的,而且可以一键安装很多知名的cms,但是大鸟不习惯用他的一键部署源码这个插件,我还是喜欢自己动手安装。
第一,安装bt(宝塔)面板
我们自己要有一台vps,虚拟主机就不要搞了。然后安装bt(宝塔)面板,不会安装可以看看大鸟前面的教程(推荐Linux服务器面板宝塔软件)或者去他们官网看看如何安装bt(宝塔)面板。
官网:www.bt.cn
安装好之后,把坏境配置好,这些bt(宝塔)面板都是一键就可以搞定了。大鸟这选择的php7.2,bt(宝塔)面板默认的是php5.5,这个请随意。你也可以选择更高版本的php。
大鸟这里就是这样的了,redis可以不用安装。大鸟这里是测试用的。
第二:新建站点,安装wordpress
第一步做好了,我们需要新建站点,bt(宝塔)面板新建网站如果你不会可以看大鸟前面的教程(BT宝塔Linux VPS/服务器Web面板添加域名、FTP、数据库、备份攻略)这些都很简单。看下就会了。
php版本选择大家可以自行选择。
大鸟选择是php-72,你可以选择更高的或者用默认的。但是选择之前自己在后台软件管理里面安装好需要的版本,不建议都安装,那样也占用资源。就用默认就可以了。弄好之后就安装wordpress,开始建站吧。
第三,安装Memcached
wodpress安装好之后,我们开始安装Memcached,这个安装也很简单,后台,点点点就可以了。bt面板这点做的挺好的,常用的缓存都给我们在后台集成好了,根据需要可以自行安装。
看到大鸟图上箭头所指向的那个,Memcached 点击安装就可以了(宝塔面板有两个地方有Memcached,一个是在软件商店的运行环境里面,一个是在php扩展里面,我们需要先安装PHP扩展中的Memcached 如图上所示,安装好之后,运行环境中的Memcached 也会自动安装好,不用人工干预。)安装好之后。我们看到这两个地方,如图:
安装好之后我们开始折腾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);
解析:define('ENABLE_CACHE', true);这段是激活Memcached; define('WP_CACHE', true);是激活Batcache;
上方步骤完成之后,进入博客后台-插件-已安装插件,如下图所示,就已经开启了Memcached 缓存功能,试试打开速度,是不是飞快?
第四:查看memcached的缓存效果
有时候我们想看看Memcached的加速效果,这时候可以利用官网上的一个工具:
http://pecl.php.net/get/memcache-3.0.8.tgz
解压后提取memcache.php上传到服务器,访问后即可看到缓存效果。
或者直接退出wordpress的登录状态,然后刷新网站首页。
看源文件,出现绿色的的文字自后,说明,缓存已经工作了。说明下,缓存登录的时候是不缓存的,那时候刷新没用,只有游客访问才会缓存。
这些都弄好了是不是感觉飞快。
第五:总结
1、bt(宝塔)面板开启memcached缓存真的很方便,软件管理里面安装就可以了,这点要比Wdcp要好,wdcp集成的memcached还是老版本的,而且wdcp没有软件管理这个功能呢,如果有,可以让我们自行选择。
2、wordpress本身是个很优秀的cms,但是如果你不给他做缓存,那根本没法用。所以大鸟选择用bt(宝塔)面板来安装wordpress并且开启缓存加速这样更适合小白用。不用再ssh端敲那些命令。
3、memcached缓存可比什么WP-Super-Cache效果好很多,如果你不信,可以自己试试看。即使远在大洋彼岸,也会让你的博客快很多。
第六:遇到的问题
感谢网友“无心”提醒,如果是2个一样的wordpress,得修改数据库前缀不同这样缓存才不会冲突,如果是默认得wp会出现把第一个缓存到第二个到情况。如果大家要安装两个站点要注意这里。
1F
都安装了,切换到游客的时候,还是看不到绿色的缓存秒数,这个是没有安装成功的意思吗?另外,安装memcache后,需要在服务器那边开放11121的端口吗?
B1
@ tensec 如果看不到绿色的缓存说明,可能安装不成功,需要仔细看看教程,看看自己哪里出错了,不需要开放,那些都是安装的时候系统自动给你配置好的。
2F
博主你好,为什么我在wp-config.php 里面已经添加了define(‘WP_CACHE’, true);但是在高级插件哪里为什么还会显示“未启用: 需要在wp-config.php文件中包含define(‘WP_CACHE’, true);。”
B1
@ 233 你在wp-config.php放的位置不对。你可以按照图上的地方放放看,或者你换个地方放放看。
3F
博主你好,我昨天按照你的文章步骤测试了下memcached+wp super cache的实验室对象缓存功能。开启成功。但是宝塔面板的带宽从原本的200k-400k左右波动一下子一两千k的跳。从服务器上看带宽变化不到,不知道这个是不是异常?
还有一个问题是,开启之后文章似乎变成动态的了,阅读数字都可以刷新了。没开之前17ce测速度是在0.2秒左右 打开之后都飙到十几秒了。蜘蛛抓取也由原来的0.1秒多变成一两秒。但是正常打开网站是正常的,服务器负载波动也很大。
是不是不应该用wp super cache这个缓存插件?还是说本身memcached开启后就是这样?网站流量一天4000ip左右,同时在线峰值不超过30的情况下。希望鸟哥能够为小白解答下 万分感谢!
B1
@ 阿哲 batcache安装了没有,安装了memcached之后要安装batcache才会把对象缓存到内存里面!你在测试看看!
B2
@ 大鸟 我原本目录下就有advanced-cache.php 不知道是不是wp super cache自带的。用不用替换掉?还是说两个冲突了,那今晚回去把wp super cache卸载再安装batcache这个可行吗?
B3
@ 阿哲 恩,memcached和batcache才是绝配,其实和wp super cache搭配效果不是太好。我这个博客就是memcached和batcache的组合,你打开看的话速度应该还可以。
B4
@ 大鸟 博主 今天我试了下 按照你给的地址下载了并且上传了 advanced-cache.php 也在wp-config.php 上面define(‘WP_CACHE’, true); 启用了 但是wordpress 后台显示 未启用 不知道什么原因 试了好几次
B5
@ 阿哲 define(‘WP_CACHE’, true)的位置放对了没,有时候一直显示未启用,就是define(‘WP_CACHE’, true)放的位置不对,你可以放在我截图上所标识的位置,这些其实都很简单,就是有时候一些小细节没注意!
B6
@ 大鸟 嗯 检查之后 可以了 但是最后没有绿色的缓存说明。。
B7
@ 阿哲 退出登录之后刷新页面就会显示了,或者换个浏览器!
B8
@ 大鸟 测试好了 速度杠杠的 服务器一下子缓过来了 非常感谢帮助!
B9
@ 阿哲 有问题可以多交流!
4F
最近网站一直被攻击 几个IP 高频访问 封了 又来 鸟哥对于这种有没有好的解决办法啊
B1
@ 阿哲 看看这篇文章是否对你有帮助【bt(宝塔)面板添加shell 脚本通过nginx日志封访问频率过高的IP】
http://www.daniao.org/2490.html
5F
请问,如果网站还用了压缩页面js,ccs,htm的插件,可以一起公用吗,比如 Autoptimize这个,
B1
@ yeemun 额,当然可以,大鸟这个博客就是用了 Autoptimize 来压缩的,很显然这样做优化的效果会更好!
6F
博主,你好。
按教程上传 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
B1
@ 似水年华 你是vps,用的什么面板?貌似是memcache装错了!你把php重启下看看!
B2
@ 大鸟 重启无效,我用的腾讯云1核2G,宝塔面板。另外我刚新开了个 Linode 2核2G 的,宝塔面板,安装也是卡在这,错误提示:Fatal error: Class ‘Memcached’ not found in /www/wwwroot/domain.com/wp-content/object-cache.php on line 825
B3
@ 似水年华 你给我qq,我加你看看!
7F
@@大鸟 大鸟,我也是这个on line825的问题,怎么破呀
B1
@ Skeet 我擦,各种奇葩问题啊。给我qq我加你下,给你看看!
B1
@ Skeet 它看起来像你试图使用一个(“memcache”),但你安装的(“memcached”)安装错了?
8F
大鸟,这个能跟WP Rocket一起使用吗?还是单独用这个快一些
B1
@ chxws 一起用也没什么关系,但是建议单独使用吧。
9F
我是阿里云突发性能t5主机 最近安装了宝塔面板 进入wordpress后台 响应速度很慢 不稳定 我安装试试怎么样
10F
我按照你的教程安装了 但现在wordpress后台插件只显示一个object-cache.php 没有显示advanced-cache.php
11F
刚才我把advanced-cache.php从plugins里找到并修改了里面一些自定义的选项配置 然后把advanced-cache.php剪切到wp-content文件夹下 现在wordpress显示了那两个插件 但我感觉速度还是差不多 可能我一直使用七牛云 所以速度都差不多
B1
@ 冷兔 如果用的国内的然后套上了cdn,也可以不用缓存!
B2
@ 大鸟 我用了CDN,感觉还是卡,尤其是评论和注册登录的时候。
B3
@ 小康博客 动态是不缓存的,评论卡的话,可以把邮件提醒功能去掉,在wordpress后台!
12F
这个缓存生效 以后怎么重新刷新缓存
B1
@ 冷兔 可能你没仔细看,batcache里面有设置会缓存会自动失效,然后重新生成。
13F
这个缓存开关在哪里呀
14F
问一下 开启了wp-rocket插件和这个冲突吗?
B1
@ 神探飞机猴 没测试过,但是可以一起用。
15F
大鸟问下,如果是宝塔面板里面又2个wordpress程序,会冲突吗?是否需要修改呢
B1
@ 无心 2个站点,2个wordpress,没什么冲突,就按照这样安装启用就可以了!
B2
@ 大鸟 感谢回复,今天尝试了下发现,如果是2个一样的wordpress,得修改数据库前缀不同这样缓存才不会冲突,如果是默认得wp会出现把第一个缓存到第二个到情况。
B3
@ 无心 感谢提醒,我会更新在文章里,提醒更多的人,谢谢!
16F
如何清理缓存
B1
@ 香蕉 额,自动清理缓存,缓存有个有效期,可以不用去管这个问题。max_age代表缓存过期时间(以秒为单位),times表示访问多少次才创建缓存(2是最小值),seconds表示在多少秒之后才创建缓存(0表示立即)。
B2
@ 大鸟 等了很久,并不会自动清理,主题设置保存后依旧还是旧缓存
B3
@ 香蕉 额,这是缓存在内存里面的啊,你用的什么面板还是一键包,最好用这个cache
https://github.com/tollmanz/wordpress-pecl-memcached-object-cache
17F
清理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.
B1
@ 大鸟 链接不上memcache啊。
telnet 192.168.101.51 12000 进不去
百度说要安装telnet,可是好麻烦。有其他方法吗?
B2
@ memcache yum install telnet-server
宝塔面板的释放内存试试看!用计划任务做个定时释放内存。
18F
我的站点根据您的办法,安装了memcached+batcache,现在快了很多,有没有必要再上一个opcache啊?另外,CDN插件有没有推荐的?
B1
@ 一芦居 opcache是必装的,所以没装的赶紧安装。CDN,我们可以先动静分离,然后把静态的放到又拍云,或者七牛云都可以。文章可以自己搜索,都有!
19F
请问advanced-cache.php和object-cache.php上传后默认是644权限,是否需要改为755权限?
B1
@ 为主的祥助 嗯,可以修改成755 www的权限!可以加我的微信,有空也可以多交流!
20F
2个或以上wordpress的话还可以参考下这个https://www.dujin.org/12476.html
21F
感谢大鸟分享,安装memcached成功,但是安装batcache报错(2处错误):
1.Call to undefined function wp_cache_init()
2.Call to undefined function load_default_textdomain()
重试了几遍都没能解决。请教大鸟!
感谢指点!!!
B1
@ 三石 你是什么web环境?
B2
@ 大鸟 感谢大鸟!!!宝塔面板+LNMP环境,阿里云ECS。
B3
@ 三石 php什么版本?你可以试试换一个PHP版本!
B4
@ 大鸟 我用的7.2
B2
@ 大鸟 两个站都重试了几遍,还是报错。所以就来请教大鸟了!
B1
@ 三石 已经四五年了,这个问题还是没有太多资料可查。。。我这么中奖的么
22F
为啥我在宝塔直接安装 memcached 一直安装不成功啊
B1
@ emorsl 是不是安装了什么安全软件啊,可以试着关闭,执行试试看!
yum install libevent libevent-devel -y
23F
感谢大鸟分享,我这个是什么问题
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.
B1
@ 感恩 你可以试试BT(宝塔面板)-WordPress开启Nginx fastcgi_cache缓存加速
https://www.daniao.org/3624.html
目前最好用的缓存!
24F
能不能出一个lamp环境下安装memcached的教程?
25F
我把这个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
B1
@ 哈哈 上传到wp-content目录
26F
哈哈,这篇文章值得收藏。
27F
感谢分享。
请问装了memcached缓存插件 是不是 会导致 来访者的ip 全都显示127.0.0.1 ? 宝塔面板的日志也是127.0.0.1?
B1
@ 小鸟 不是,没有这个说法。
B2
@ 大鸟 那 请问 博主 知不知道 来访ip 全显示为127.0.0.1 是什么原因啊?
B3
@ 小鸟 我不知道哎,你需要截图给我看才行。
28F
博客速度是快了,但是我找不到源文件的绿色的字,请问在源文件哪里?
29F
大神,如果网站用了wp-roctet,还需要关掉然后再按照你的教程来操作吗?
30F
我可能是踩了你文中所谓的大坑,总之遇到了系统错误,我按照精准关键词搜索来到你这个页面,按你说的做了,系统错误倒是没有出现了,但是。。。。。宝塔后台打不开了ERR_SSL_PROTOCOL_ERROR