首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Apache 和 PHP 如何开启 gzip 压缩

Apache 和 PHP 如何开启 gzip 压缩

作者头像
Denis
发布2023-04-14 11:37:34
发布2023-04-14 11:37:34
1.4K0
举报
文章被收录于专栏:WordPress果酱WordPress果酱

网页开启 gzip 压缩以后,其体积可以减小 60%~90%,可以节省下大量的带宽与用户等待时间,下图就是我爱水煮鱼首页经过 gzip 压缩之后的比例。由于网站的 CSS/JS/图片 等静态资源我们已经使用阿里云进行 CDN 加速,而阿里云已经实现了 gzip 压缩,所以如果网站的 PHP 生成的内容也可以实现 gzip 压缩,则整站即可实现 gzip 压缩。

下面我就从 Apache 服务器,PHP 等方面去讲解下如何开启 gzip 压缩:

Apache 开启 gzip 压缩

首先确保你的 Apache 已经加载了 mod_deflate 模块,然后在 httpd.conf 代码中加载以下代码:

代码语言:javascript
复制
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/json application/x-httpd-php application/x-javascript
</IfModule>

如果你没有权限修改你的主机,你也可以将以上代码复制到网站根目录的 .htaccess 文件。

PHP 开启 gzip 压缩

如果修改 Apache httpd.conf 文件无效,则可以通过修改 PHP 的 php.ini 方法:

打开 PHP 目录下的 php.ini 文件,找到 zlib.output_compression = Off,改成 zlib.output_compression = On,再把 ;zlib.output_compression_level 前面的;去掉,后面的-1改成1~5的数值,这样便可以实现所有 PHP 页面的 gzip 效果。

如果无法修改 php.ini 文件,则可以在需要 gzip 压缩的 PHP 文件头部加入:

代码语言:javascript
复制
if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) {
	ob_start('ob_gzhandler');
}else{
	ob_start();
}

既可以实现该 php 页面 gzip 压缩。

WordPress 开启 gzip 压缩

如果修改 Apache httpd.conf 文件和 PHP 的 php.ini 文件的方法都无效,则将下面的代码复制到当前主题的 functions.php 文件中也可以实现 WordPress 整站 gzip 压缩:

代码语言:javascript
复制
add_action('init', 'wpjam_gzip_compression');
function wpjam_gzip_compression(){
	if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) {
		ob_start('ob_gzhandler');
	}else{
		ob_start();
	}
}

总结

经过测试,采用服务器压缩要比使用 PHP 压缩要更快,而且压缩之后更小。所以最好的方法还是直接让 Apache 直接进行 gzip 压缩。如果无法修改 Apache 的 httpd.conf 文件,再尝试去修改 php.ini 文件,最终才是使用修改 php 文件以及 WordPress hook 的方法。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Apache 开启 gzip 压缩
  • PHP 开启 gzip 压缩
  • WordPress 开启 gzip 压缩
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档