![2ec1584a0c388f94ba86fdb006902b34.png](https://i-blog.csdnimg.cn/blog_migrate/ed21486d865479c38f64177170f3b4f0.jpeg)
在上一节教程中,我们已经搭建了wordpress环境php+nginx+mysql+redis,并完成wordpress安装,目前你应该可以正常登录wordpress后台了。
![e2d8627a617b85e31d78de0bb0aea767.png](https://i-blog.csdnimg.cn/blog_migrate/da96a50a7f1450d17348a39b95c6adb1.jpeg)
这篇文章是wordpress优化的第一篇文章,主要是软件配置方面的内容,后面我们还会再写一篇wordpress动静分离使用CDN的文章,主要优化内容如下:
- 安装静态化插件wp super cache或安装redis插件Redis Object Cache
- 修改php和nginx上传文件大小限制
- 配置php-fpm进程数
- 降低mysql内存占用
一、安装静态化缓存插件wp super cache或安装redis插件Redis Object Cache
静态化缓存和redis对象缓存都是为了加速查询数据产生的两种方案,前者是将文章/页面缓存成html文件,后者是将数据缓存到内存中加快查询速度,这两种方案如何选择?
- 对于内存较小的服务器,使用静态化缓存方案占用内存少
- 对于内存足够用,大于2G的情况,使用redis缓存较好,个人更偏向于redis,建议使用腾讯云用户使用redis。
选项1、安装静态化插件wp super cache
![ae2bf93dff240bbe166521894ee2a6f6.png](https://i-blog.csdnimg.cn/blog_migrate/84a4e96e82497e54779c45868a3e1bcb.png)
工作原理:
常规情况下wordpress文章页面数据存储在mysql数据库中,浏览器请求的网页加载时需要首先查询数据库返回数据,每次加载页面都需要查询数据库,mysql的负载就会比较高。
使用wp super cache插件后,文章/页面等数据会缓存成静态文件,浏览器请求的网页加载时直接返回静态文件,无需查询数据库,提高响应速度。
安装插件:
- 可直接在wordpress后台【插件】中搜索wp super cache然后在线安装即可。
- 对于国内服务器,wordpress在线安装插件因为下载速度慢,可能会失败,你也可以通过下面的链接将wp super cache安装包下载下来,然后通过wordpress后台【插件】-【安装插件】-【上传插件】安装。
下载地址:
wp super cache下载,https://downloads.wordpress.org/plugin/wp-super-cache.1.7.1.zip
启用插件:
1、在后台【插件】中启用wp super cache,然后点击【设置】,进入此插件配置页面。
![5fdb0e08c330c684f710cac40ef56c6e.png](https://i-blog.csdnimg.cn/blog_migrate/3c0bc97dac4eb11f48207d0b0c11748f.png)
2、在插件设置页面,勾选启用,然后保存即可。
![a7cec093dc945b6ea6ee7c1a317bd7ec.png](https://i-blog.csdnimg.cn/blog_migrate/91d444e619d1aa6a91521b2702eef7ee.png)
选项2、安装redis插件Redis Object Cache(推荐)
![b22711ddc65e4aa3fbe32e46c5186065.png](https://i-blog.csdnimg.cn/blog_migrate/2b997143207b05628e07160c218c84a7.png)
工作原理:
wordpress redis插件,将原本需要查询mysql的内容缓存在内存中,更快的响应速度。
安装插件:
- 可直接在wordpress后台【插件】中搜索Redis Object Cache然后在线安装即可。
- 对于国内服务器,wordpress在线安装插件因为下载速度慢,可能会失败,你也可以通过下面的链接将Redis Object Cache安装包下载下来,然后通过wordpress后台【插件】-【安装插件】-【上传插件】安装。
下载地址:
redis object cache下载,https://downloads.wordpress.org/plugin/redis-cache.2.0.15.zip
启用插件:
1、在后台【插件】中启用redis object cache,然后点击【settings】进入设置页
![b7ca698225bbd6bd8981fca840f2501e.png](https://i-blog.csdnimg.cn/blog_migrate/c37a0b010c067c5a8dcfdd915a3e6528.jpeg)
2、点击【enable object cache】启动插件即可,插件会自动连接redis
![51304edd9d545d90bf34c5f2c12ddfa4.png](https://i-blog.csdnimg.cn/blog_migrate/cdf0fd5f4962f2f53105508626bdb9e9.png)
3、redis目前未配置最大内存限制,对于一个初期网站,内存大于2G的情况下,redis内存占用不会特别大,当数据量大到内存占用过多,导致mysql/php等内存不够用时,我们才开始需要考虑增加内存或是设置最大内存占用并启用Policy策略。
二、修改php及nignx上传文件大小限制
![e9a18b7f02a29c267f18b6a02d7f83f4.png](https://i-blog.csdnimg.cn/blog_migrate/340662d6ba405a22f6420167fa8c3e57.png)
1、修改php上传文件大小限制
remi源安装的php配置位置位于:/etc/opt/remi/php74/php.ini
vi /etc/opt/remi/php74/php.ini
然后修改upload_max_filesize和post_max_size两个参数,下图示例中我修改为20M
![b9c095c21cc35758f83a5620f56a7784.png](https://i-blog.csdnimg.cn/blog_migrate/643a138d52dea2c5f0d75a8902ed4b7c.png)
![ecdfd9e259d5d6635126c6c2ad3d9f10.png](https://i-blog.csdnimg.cn/blog_migrate/004ae735626a594ffbb68f638f42fc6e.png)
然后重启一下php(注意本教程是使用remi源安装,所以服务名可能和其他情况不一样)
systemctl restart php74-php-fpm
2、修改nginx上传文件大小限制
nginx配置文件位置位于:/etc/nginx/nginx.conf
vi /etc/nginx/nginx.conf
然后修改client_max_body_size参数,下图示例中我修改为20M
![b2a2a1621b2724949a50f76e0dded8b8.png](https://i-blog.csdnimg.cn/blog_migrate/2b8f6a22817c50ba8aed13df1ca4678c.jpeg)
然后重启nginx
systemctl restart nginx
三、php-fpm进程数配置
![b44a84d3ef3d89dc12fce4050e13ede7.png](https://i-blog.csdnimg.cn/blog_migrate/6e2fb5290c747dc6887f293638730d25.jpeg)
一般来说以我们2G内存的服务器配置,php-fpm采用动态方式,我们的服务器是1M的带宽,而wordpress又不是CPU密集运算场景,所以综合带宽并发和内存情况,我们设置php-fpm初始进程为10个,最多不超过20个。
vi /etc/opt/remi/php74/php-fpm.d/www.conf
修改pm.start_servers = 10,pm.min_spare_servers = 10,pm.max_spare_servers = 20
![da6d0bf2379c91d28d837328da533310.png](https://i-blog.csdnimg.cn/blog_migrate/8e7e422121733166d2795e03719b54fe.jpeg)
然后重启php-fpm
systemctl restart php74-php-fpm
四、mysql内存占用配置
![33fac6f05e6fe0a13a5e335e07f7c836.png](https://i-blog.csdnimg.cn/blog_migrate/0af291d4f29a3407a5a60161867ffe36.png)
对于非独立服务器,mysql默认innodb内存占用总内存10%,这个我们可以不用管。如果你想指定一个数值那么需要编辑以下文件
vi /etc/my.cnf
然后修改innodb_buffer_pool_size的值,记得去掉前面的#号。如果你想降低mysql内存占用,那么我们可以关闭performance_schema,在my.cnf配置文件中增加一行performance_schema=off,mysql内存占用会有极大的降低。如下图
![062f7fc5b43fbf9d890e02b1b3f480c2.png](https://i-blog.csdnimg.cn/blog_migrate/c112a9d157be8fec265592c4e4b146ad.jpeg)
然后,保存,重启mysql。
systemctl restart mysqld