优化方案介绍
整个优化方案分为3篇文章,争取写个由简入深的介绍,希望没有技术背景的站长都能看懂:
- 第一篇介绍加速的原理(本篇也就是第一篇了)
- 第二篇介绍加速插件 W3 Total Cache
- 第三篇介绍 MySQL 的优化
一、主机选择
由于本篇是整体优化,所以必须要能配置主机 PHP 、 Nginx、MySQL 这些相关软件,所以,这篇文章是按照此类主机写的,如果您的主机不能配置这些,那么也可以看看相关原理,再自己动手想办法进行优化。
二、软件环境的选择
64 位 CentOS、Nginx、PHP-FPM、APC、Memcached、MySQL,这里介绍一下 Nginx、PHP-FPM、APC、Memcached 这3个是什么。
PHP-FPM 可以理解成单独的 PHP 服务器,简单的理解就是如果你使用了 PHP-FPM,那么你的 PHP 脚本就不必和 Web 服务器放置在同一个服务器上,而且支持负载均衡。一个 Nginx 可以和多个 PHP-FPM 服务器协同工作。
APC 是 PHP 缓存工具。PHP 每次处理请求都会要重新编译源代码,APC 就是负责把编译好的执行文件存储再内存中,下次调用的时候就不必再重新编译了,极大提高了访问速度。
Memcache 也是一个内存工具,它的主要作用是将一些静态化的内容存储再内存里面,这样当下次用户访问时,不必读取硬盘,访问速度自然大大加快。Memcache 可以用来存储 Session。具体安装方法请看:VPS安装Memcached对象缓存 为WordPress再提速!
3、 WordPress缓存插件的选择
我选择了臭名昭著的w3totalcache。此插件的配置很麻烦,不是最有效的。我选择它的原因和它的名字一样,它集成了所有的功能。强烈建议百度在安装该插件之前了解如何卸载该插件。此外,在晚上无人时配置它。还有时间来解决这个问题。
4、 加速原理
1.使用APC缓存PHP文件可以大大提高网站的响应速度,尤其是在后台,响应速度几乎为秒。安装APC后,打开/etc/php.d/APC
扩展=APC。因此//介绍APC模块APC。Stat=off//关闭文件检查。默认值为onapc.shm u; Size=128M//内存大小。通常,128M是WordPress的合适尺寸。APC。TTL=7200//缓存时间apc.user TTL=7200//用户缓存时间
这里,我们将重点讨论参数APC。Stat=0ff。这一行关闭文件更改检查。如果没有,PHP将检查文件是否每次都更改以降低运行速度。关闭后速度会提高,但如果更改PHP文件,则不会生效(HTML和JS文件不受影响)。因此,如果对PHP进行更改,则需要将此项设置为on。
APC有一个管理工具页面。您可以从官网下载一个名为apc.php的文件,并将其放在服务器上以查看apc的运行状态。
2.使用memcached缓存静态页面
存储在内存中比从硬盘读取快得多。用户的访问权限越大,速度的提高就越明显。在VPS中安装memcached对象缓存以加快WordPress的速度!配置后,w3totlecache插件中的Memcache从灰色变为可选。您可以将pagecachemethod、minifycachemethod、databasecachemethod和objectcachemethod设置为memcached。从那时起,大多数请求将数据直接返回内存,服务器硬盘可以集中在MySQL上。
Memcached还有一个特殊的管理页面,可以下载。细节将不再重复。打开PHP FPM配置文件/etc/PHP FPM.d/www.conf。最后几行应如下所示:
; 将SessionPathToDirectoryOwnedByProcessUser;php_uuvalue[session.save uuhandler]=文件//注释掉;php\uvalue[session.save\upath]=/var/lib/php/session//注释掉;最后,这里设置的会话路径是有效的value[session.save\Handler]=Memcache//添加这行PHP_value[session.save\upath]=tcp://127.0.0.1:11211// 添加此行并记下IP地址和端口号
3.删除Google字体:自动替换Google的URL–轻松替换前面和背景中的外来字体,显著加快网站速度
4.合理配置php fpm,大大提高php的运行速度。
打开/etc/php-fpm.d/www.conf并将用户名和第39行和第41行的组配置为nginx。其中156条线路必须关闭:
slowlog=/var/log/php-fpm/www-slow.log
这是一个错误。如果您记录一个缓慢的日志,PHP将不可避免地溢出内存,导致所有PHP错误。在这一行前面放一个冒号,然后注释掉。
5.MySQL的合理配置
MySQL的配置原理比较复杂,但总体思路是减少硬盘读取,合理利用内存缓存。打开另一篇文章,讨论第三篇。
MySQL优化首先可以提供一个插件来删除post的历史版本,这几乎可以将post表的容量减少2/3。那些拥有上万个post的站点应该是一个必要的插件:WP optimize。这个插件不仅可以删除帖子的版本,还可以优化数据表,这也是非常有用的。
6.Nginx配置必须扼杀技术。
nginx作为一个web服务器,是网站软件环境的主题。你为什么最后才谈论它?众所周知,我们的主机是一台虚拟机。在8核或16核机器上,随机分配给您的CPU。如果您购买4个内核,则只会为您分配4个CPU。如果此物理机器有10个正在使用的工作站,则实际CPU使用情况未知,但有一条规则保持不变。第一个核心使用最频繁,占用率最高。原因是许多软件默认使用第一个内核。
可爱的nginx具有CPU进程分配功能。默认情况下,您可以反向分配,让nginx使用其他内核,以避免与主机的其他用户发生冲突。
具体操作如下:
执行cat/proc/cpuinfo命令将生成一个大的结果列表。我们只需要查看物理ID,它是CPU的物理ID。如果您购买2核CPU,则将有2个物理ID。请仔细查一下。Cpucores:16表示这是一个16核服务器。Physicalid:0表示第一个核心已分配给您。Physicalid:3表示第五个核心分配给您的服务提供商。CPU分配是随机的,重启后可能会改变。因此,您应该在每次服务器重新启动时重新检查CPU核心号并重新绑定nginx。打开/etc/nginx/conf.d/plus086.conf//将文件名更改为您自己的配置文件名,并添加以下两行:Worker\uprocesses2;工人与cpu的亲缘关系0000000100000011;worker_uuProcess2已被很好地理解,这表明有两个核心任务。worker_uCPU_uuaffinity表示cpu核心的序列号,它由8位二进制表示。
CPU核心编号:
8位二进制表示
0:00000001
1:00000010
2:00000011
3:00000100
4:00000101
5:00000110
6:00000111
7:00001000
如果分配了核0和核6,则应按如下方式填写:worker_uCPU_uuAffinity0000011100000001;
将芯6放在前面,避免芯1的负载,直接使用相对空闲的芯6。如果您的机器有8个以上的芯,则最多可以绑定8个芯。Nginx官员不建议分配超过8个内核的进程。