我的网站打开速度目前来说还不错,虽然算不上顶级,但是至少能在1秒之内打开所有页面,我个人是非常满意的,为了方便自己和大家以后做站的时候也能像现在一样把网站的速度优化到最快,我从网上转载了这篇文章给大家,非常实用,非常有效和简单的wordpress速度优化技巧。
服务器/vps
首先推荐国内的大主机商比如阿里云、腾讯云、百度云、景安
如果是国外的VSP,起码要是CN2线路,最好是CN2 GIA线路,或者香港机房。
cpu和内存起码要是1核1G
后台系统要是linux
wordpress主题
wordpress速度快慢跟主题有很大的关系,因人而异。
PHP7.2及以上mysql
因为PHP7.2版本目前比较稳定,主题支持也较好。
memached功能打开
PHP里面的一个功能,在宝塔面板PHP里面可以找到
memached是提速的利器,不仅是对wordpress,其他程序也一样,但前提是得是独立主机,虚拟主机就不用想了。关于怎么部署memached的教程网上有很多,但是要在linux下安装memached并不是一件容易学会的事情,即使照着教程也会各种出错,所以对于不懂linux的人还是用面板比较方便,一键安装。
正常linux下安装memached比较麻烦,因为需要经过Mencached 的服务端安装、libmemcached安装、php-memcached拓展三步,每一步都可能出错,尤其是php-memcached可能因版本问题会一直不成功。PHP7.0以上版本需要下载github PHP7专用的memcached组件版本,地址https://github.com/php-memcached-dev/php-memcached/archive/php7.zip。
如果不想用面板安装,而要ssh编译安装的话那网上有大把的教程,照着安装就行,但需要注意服务器环境是否和你的一样,否则基本上不会成功。
memached服务器端安装好后百度教程配置wordpress插件,也很简单,网上教程一大把。
WP Rocket
opcache功能打开
PHP里面的一个功能,在宝塔面板PHP里面可以找到
opcache是PHP自带的功能,不需要安装,只要开启就行。在php安装目录下的php.ini文件开启。
打开php.ini搜索opcache,发现[zend opcache],在他下面第一行加上
zend_extension= /www/wdlinux/nginx_php-7.2/lib/php/extensions/no-debug-non-zts-20090626/opcache.so
上面的路径根据自己的实际路径改下,其他内容参照下面的,下表没有的可以不用改。
#启用Zend Optimizer优化开关
opcache.enable=1
#共享内存的大小, 总共能够存储多少预编译的 PHP 代码(单位:MB),推荐128M(根据服务器内存大小调整)
opcache.memory_consumption=128
#暂存池中字符串的占内存总量.(单位:MB), 推荐 8
opcache.interned_strings_buffer=8
#最大缓存的文件数目 200 到 100000 之间,推荐 4000
opcache.max_accelerated_files=4000
#;内存“浪费”达到此值对应的百分比,就会发起一个重启调度.
opcache.max_wasted_percentage=5
#2s检查一次文件更新 注意:0是一直检查不是关闭,推荐 120
opcache.revalidate_freq=2
#是否保存文件/函数的注释 如果apigen、Doctrine、 ZF2、 PHPUnit需要文件注释,推荐 0
opcache.save_comments=0
#打开快速关闭, 打开这个在PHP Request Shutdown的时候会收内存的速度会提高
opcache.fast_shutdown=1
PHP-Fpm
PHP里面的一个功能,在宝塔面板PHP里面可以找到
很多wordpress的502错误都和php-fpm及nginx.conf配置有关,调整这两个设置可以根治502问题,同时调整设置也可以提高服务器负载。
php-fpm初始/空闲/最大worker进程数,根据服务器内存来定,基本上每个进程占20-30m内存,自己按照内存大小计算合理数字。
pm.max_children = 300
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
最大处理请求数
最大处理请求数是指一个php-fpm的worker进程在处理多少个请求后就终止掉,master进程会重新respawn一个新的,这个配置的主要目的是避免php解释器或程序引用的第三方库造成的内存泄露。
pm.max_requests = 10240
最长执行时间
最大执行时间在php.ini和php-fpm.conf里都可以配置,配置项分别为max_execution_time和request_terminate_timeout,建议设置300秒。
nginx.conf
nginx.conf设置也会解决各种502问题,其实502问题也就是nginx的问题,出现这一问题基本上就是nginx超时。打开nginx.conf,找到FastCGI的timeout时间,并修改如下:
http {
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
……
}
重启nginx
以上所有设置完成后重启nginx服务,如果不会重启的话直接重启服务器即可,wordpress马上飞起。
插件
目前我只启用了WP Super Cache和Autoptimize两个插件,其中WP Super Cache开启了对象存储。另外还安装了WP Clean Up,一款数据库优化插件,可以删除历史版本,碎片数据,优化数据库,从而太高速度,但这个插件不用常开,过一段时间优化一次即可。
至于有人说在开启memached和Opcache的情况下WP Super Cache没有多大用,但我自己对比后发现还是开启WP Super Cache后更快一些。当然这也许是心理作用,因为已经很快了,那点差异很难观察到。
CDN
其实如果带宽足够的话都用不着CDN,但在带宽太贵的的情况下CDN是不错的选择,对于图片、js、css等体积较大的资源加速非常明显。
以上所有设置中只有memached比较麻烦,其他都很容易,其实如果有老鸟带着设置一遍的话基本上就能上手,自己折腾的话只能让时间成为老师。
以上记录的核心是memached和opcache,这两个才是提速的关键,但很多人望难而退,其实动手做起来并不难。
这篇文章其实是我自己使用wordpress过程中的经验,是一种思路的整理,而不是教程,因为很多内容都没有详细的步骤,因为我自己不懂服务器运维技术,如果强抄别人的教程很可能会误导他人。