服务器建站一直都是大家喜欢的,因为自由度高。但是国外服务器因为客观物理原因,建站效果不是很理想,大口宽带意味着更多的money,对于小站来说不容易承担。将服务器转移到国内的话,一般都是1核1G1M起步,俨然成为小服务器的标配了。搭建在这样的服务器上,虽说在国内,但是效果也不理想啊。
这里就要提高本文的重点,服务器的优化很重要,优化得当,1核1G,1M小宽带也能快的飞起。

PHP

目前php都更新到7.X了,同学们还在守着5.6吗?每次php版本的更迭都会带来性能的优化和提升,何况是php5、php6、php7这样的大版本更新,建议你赶紧将手中的php升级到最新,php7对比php5,有3、4倍的性能提升已经大幅度的响应速度提升,这对提升网站速度有很大帮助哦。

Memcached

通常大型php站点都会配置页面缓存,这样在高并发下的性能优势非常突出。memcached和memcache的区别,一说是版本的区别,memcached是memcache的更新版,一说是同一意思,memcached只是memcache的一个守护进程。这里介绍php的mencached开启方式
mencached的扩展文件下载地址
https://pecl.php.net/package/memcached

但是pecl网站只支持的扩展文件还未更新到7.0版本,前往GitHub下载扩展文件
https://github.com/nono303/PHP7-memcache-dl

将合适你php版本的扩展文件下载并放置到php目录的ext/下,并修改php的配置文件php.ini,开启mencached

extension=memcached.so

另外还要安装memcached程序
www.runoob.com/memcached/window-install-memcached.html

使用方法

  • 安装:memcached -d install
  • 启动:memcached -d start

重启后,打开phpinfo页面,查看memcached扩展是否已被加载。
如果使用的是wordpress应用,需要让wordpress从memcache缓存中读取数据。WPJAM Basic 插件已经集成了 Memcached,下载 WPJAM Basic 之后,将 wpjam-basic/template/ 目录下的 object-cache.php 文件复制到 wp-content 目录下即可。

Opcache

Opcache是一种通过将解析的PHP脚本预编译的字节码存放在共享内存中来避免每次加载和解析PHP脚本的开销,解析器可以直接从共享内存读取已经缓存的字节码,从而大大提高PHP的执行效率。
请输入图片描述

php7已默认添加opcache,只需要我们开启即可。
配置php.ini文件,添加如下行代码,表示将opcache加载进来(放在[php]里)

zend_extension=opcache.so

然后找到 [opcache]

;开启opcache
opcache.enable=1

;CLI环境下,PHP启用OPcache
opcache.enable_cli=1

;OPcache共享内存存储大小,单位MB
opcache.memory_consumption=128

;PHP使用了一种叫做字符串驻留(string interning)的技术来改善性能。
例如,如果你在代码中使用了1000次字符串“foobar”,在PHP内部只会在第一使用这个字符串的时候分配一个不可变的内存区域来存储这个字符串,其他的999次使用都会直接指向这个内存区域。这个选项则会把这个特性提升一个层次——默认情况下这个不可变的内存区域只会存在于单个php-fpm的进程中,如果设置了这个选项,那么它将会在所有的php-fpm进程中共享。在比较大的应用中,这可以非常有效地节约内存,提高应用的性能。

这个选项的值是以兆字节(megabytes)作为单位,如果把它设置为16,则表示16MB,默认是4MB
opcache.interned_strings_buffer=8

;这个选项用于控制内存中最多可以缓存多少个PHP文件。这个选项必须得设置得足够大,大于你的项目中的所有PHP文件的总和。
设置值取值范围最小值是 200,最大值在 PHP 5.5.6 之前是 100000,PHP 5.5.6 及之后是 1000000。也就是说在200到1000000之间。
opcache.max_accelerated_files=4000

;设置缓存的过期时间(单位是秒),为0的话每次都要检查
opcache.revalidate_freq=60

;从字面上理解就是“允许更快速关闭”。它的作用是在单个请求结束时提供一种更快速的机制来调用代码中的析构器,从而加快PHP的响应速度和PHP进程资源的回收速度,这样应用程序可以更快速地响应下一个请求。把它设置为1就可以使用这个机制了。
opcache.fast_shutdown=1

;如果启用(设置为1),OPcache会在opcache.revalidate_freq设置的秒数去检测文件的时间戳(timestamp)检查脚本是否更新。
如果这个选项被禁用(设置为0),opcache.revalidate_freq会被忽略,PHP文件永远不会被检查。这意味着如果你修改了你的代码,然后你把它更新到服务器上,再在浏览器上请求更新的代码对应的功能,你会看不到更新的效果
强烈建议你在生产环境中设置为0,更新代码后,再平滑重启PHP和web服务器。
opcache.validate_timestamps=0

;开启Opcache File Cache(实验性), 通过开启这个, 我们可以让Opcache把opcode缓存缓存到外部文件中, 对于一些脚本, 会有很明显的性能提升.
这样PHP就会在/tmp目录下Cache一些Opcode的二进制导出文件, 可以跨PHP生命周期存在.
opcache.file_cache=/tmp

修改完毕后重启,查看方法:phpinfo

CDN

cdn现在是越来越流行了,在降低服务器空间占用,加快访问速度方面起到了很大的作用。cdn的最大作用就是把请求的文件分散到离客户端近服务器上,并通过缓存技术从而加快访问速度,弥补自己服务器物理上的客观短板。目前国内有免费的cdn服务,百度,阿里,腾讯,七牛免费不免费的,都有cdn服务,免费cdn一般都是加速http,现在都上https了,可惜国内都要收费。

这里以腾讯云对象存储(oss)为例,oss虽然只是提供文件的存储服务,都是它带有cdn加速,新用户好像每月送10G的cdn流量,送六个月。即使cdn用完,也可以使用oss作为图床,减轻服务器压力。
将网站中所有的静态文件上传到oss当中,推荐使用oss自带的桌面软件上传,速度快。
而后在当前使用主题的functions.php中,添加以下代码,将服务器的静态文件全都改为走oss线路:

ob_start("Static_Switch");
function Static_Switch($buffer){
     $buffer_out = preg_replace('/https:\/\/dailywebzy\.cn\/wp-([^"\']*?)\.(jpg|png|gif|css|js|woff|woff2|ttf|svg|eot)/i','https//pizza.zicp.io/wp-$1.$2',$buffer);
     return $buffer_out;
}

其中https://dailywebzy.cn为网站的域名,https://pizza.zicp.io为oss的地址,这段代码主要是重写了wp-content和wp-includes两个目录下的文件。

五、其他

其他可以从前端着手,比如图片延迟加载、js异步加载、css压缩等,wordpress也可以适当安装插件提高效率。
本站安装最新版php,开启opcache,memcached,动静分离,效果可参考本站。

Last modification:December 16th, 2020 at 05:26 pm
如果觉得我的文章对你有用,请随意赞赏