php 7同时启用memcache和memcacheD 优化wordpress服务器响应时间

前提:Linux VPS;LNMP一键安装包;已安装WP。

首先安装memcached:

在lnmp一键安装包里有addons.sh,运行./addons.sh,分别安装memcacheD和opcache。

wget https://github.com/websupport-sk/pecl-memcache/archive/php7.zip

unzip pecl-memcache-php7.zip
cd pecl-memcache-php7
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

修改php.ini 加载Memcache组件(lnmp一键包默认的php.ini的位置是:/usr/local/php/etc/php.ini)

[memcache]
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/"
extension = "memcache.so"

重启lnmp:lnmp restart

下载插件:https://wordpress.org/plugins/memcached/

解压文件夹,把object-cache.php上传到wp-content目录下

下载插件:https//wordpress.org/extend/plugins/batcache/

解压文件夹,把advanced-cache.php上传到wp-content目录下

在wordpress根目录 wp-config.php 添加以下代码激活 Batcache:

define(‘WP_CACHE’, true);

然后在wordpress仪表盘=>插件 页面会看到有两个drop-in插件被启用了。

然后未登录状态:尝试多次载入页面查看源代码,应该在 之前可以看到一些 Batcache 状态代码(batcache只对游客进行缓存);
7. 当然,你也可以修改 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表示立即)

你可以在主题文件:footer.php中</body>之前加入如下代码:

<!-- <?php echo get_num_queries(); ?> queries in <?php timer_stop(3); ?> seconds -->

在页面载入完以后,鼠标右键,查看源代码,可以看到,wordpress共执行多少query,用了多少时间。

你会看到跟没优化前的页面,sql-query少了很多,页面加载速度同样减少了很多,一般速度比以前快10倍。

2 thoughts on “php 7同时启用memcache和memcacheD 优化wordpress服务器响应时间

发表评论

电子邮件地址不会被公开。 必填项已用*标注