服务器优化
为 PHP 开启 OPCache
;php.ini
opcache.enable=1
; 可用内存,单位 megabytes
opcache.memory_consumption=256
; 控制内存中最多可以缓存多少个 php 文件
; 对多缓存文件限制,命中率不到 100%,可以提高这个值
opcache.max_accelerated_files=5000
; 检查文件修改时间周期,默认为 2,单位秒
opcache.revalidate_free=240
; 设置缓存过期时间
opcache.revalidate_freq=0
; 是否快速关闭,打开后在 hp request shutdown 时候内存回收速度会提高
opcache.fast_shutdown=1
; 不保存文件注释
opcache.save_comments=0
为 MySQL 开启 Query Cache
;my.cnf
query_cache_type=1
query_cache_limit=1M
query_cache_size=16M
在 Wordpress 中开启 gzip
// 此代码需要放在 define('WP_USE_THEMES', true); 后,
ob_start(‘ob_gzhandler’);
# nginx config
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_min_length 256;
gzip_http_version 1.1;
gzip_types text/plain text/css text/x-component text/html application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/x-icon image/svg+xml image/jpeg image/gif image/png font/opentype;
; php.ini
zlib.output_compression=On
zlib.output_compression_level=5
缓存
文件缓存
html 静态缓存
WP Super Cache 插件
Super Static Cache 插件
内存缓存
安装 Memcached 和 Batcache
yum -y install memcached
apt-get -y install memcached
下载 Memcached 插件 https://wordpress.org/plugins/memcached/ 下载 object-cache.php 移到 wp-content 目录下
下载 BatCache 插件 http://wordpress.org/extend/plugins/batcache/ 下载 object-cache.php 移到 wp-content 目录下
// wp-config.php
define('WP_CACHE', true);
关闭 Google 字体
function remove_open_sans() {
wp_deregister_style( 'open-sans' );
wp_register_style( 'open-sans', false );
wp_enqueue_style('open-sans','');
}
add_action( 'init', 'remove_open_sans' );
加速 Gravatar 头像
function my_avatar($avatar) {
$tmp = strpos($avatar, 'http');
$g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp);
$tmp = strpos($g, 'avatar/') + 7;
$f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp);
$w = get_bloginfo('wpurl');
$e = ABSPATH .'avatar/'. $f .'.jpg';
$t = 1209600; //设定时间为14天,单位为秒
if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //头像不存在或时间超过14天,重新获取
copy(htmlspecialchars_decode($g), $e);
} else $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg'));
if (filesize($e) < 500) copy($w.'/avatar/default.jpg', $e);
return $avatar;
}
add_filter('get_avatar', 'my_avatar');
合并请求
- Better WordPress Minify
WordPress Object Cache 函数
优化数据库 安装 WP-Optimize 插件 Smart WordPress 插件 开启 ETag
安全
关闭在线代码编辑
define('DISALLOW_FILE_EDIT', true);
识别文件监控变化
可以使用 iThemes Security 或 Wordfence 来监控 WordPress 的文件变动。
自动更新
define( 'WP_AUTO_UPDATE_CORE', true );
主题插件自动更新
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );