• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP网站优化-小记

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Apache+php 网站性能优化

1.开启GZIP压缩(针对文件大小)  网页大小可以压缩率可以达到百分之70多;

   一、打开php.ini配置文件,找到zlib.output_compression = Off,将

zlib.output_compression = Off;

zlib.output_compression_level = -1

修改为

zlib.output_compression = On;
zlib.output_compression_level = 6

 

php gzip配置知识点:

  1、默认php是不开启zlib整站压缩输出的,而是通过对需要压缩输出的页面使用ob_gzhandler函数实现,两者只能二选一,否则会报错。

  2、zlib.output_compression默认值为Off,你可以将其设置为On,或者output buffer size(默认为4k)

  3、zlib.output_compression_level代表压缩比,默认推荐设置压缩比值为6,可选范围为1-9,-1代表关闭php zlib(gzip)压缩

  二、保存php.ini配置文件,并重启apache服务器

  三、打开apache 配置文件httpd.conf,配置装载deflate_module

     #LoadModule deflate_module modules/mod_deflate.so

      去除开头的#号;

设置压缩类型

<IfModule deflate_module>  
    SetOutputFilter DEFLATE  
    # Don’t compress images and other  
    SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary  
    SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary  
    SetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-gzip dont-vary  
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css  
    AddOutputFilterByType DEFLATE application/ms* applicationnd* application/postscript application/javascript application/x-javascript

</IfModule>  

并重启apache即可。

2.减少request

  一、文件合并

       方法(1)

                    

下面是使用PHP通过GZIP压缩CSS的实例。

在存放CSS的文件夹中新建一个style.php文件,在此文件中加入以下代码:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

if(extension_loaded('zlib')){//检查服务器是否开启了zlib拓展
ob_start('ob_gzhandler');
}
header ("content-type: text/css; charset: gb2312");//注意修改到你的编码
header ("cache-control: must-revalidate");
$offset = 60 * 60 * 24;//css文件的距离现在的过期时间,这里设置为一天
$expire = "expires: " . gmdate ("D, d M Y H:i:s", time() + $offset) . " GMT";
header ($expire);
ob_start("compress");
function compress($buffer) {//去除文件中的注释
$buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
return $buffer;
}
 
//包含你的全部css文档
include('global.css');
include('layout.css');
 
if(extension_loaded('zlib')){
ob_end_flush();//输出buffer中的内容,即压缩后的css文件
}
?>

 

如果你处理的是JavaScript文件,你需要将上面代码中的第5行的Content-type修改成以下:

header ("content-type:application/x-javascript; charset: gb2312");

同样需要注意的是文件的编码,这里我用的是gb2312,如果你采用的是UTF-8或其他编码,修改成对应的即可。

修改完成之后,在原引入CSS和JS文件的地方,将.css后缀/.js后缀的文件更换成这个style.php文件即可,如:

script type="text/javascript" src="http://www.i1323.net/scripts/11.js.php?v=121

由于上面代码中使用到了HTTP的Expires(过期)属性用于在客户端缓存CSS/JS代码,所以,如果过期时间设置的太长(比如2020 年),当你在服务器端修改了JS/CSS代码时,客户端可能不会立即生效。解决办法是:在php文件后面添加一个随机参数,如上面例子中的v=121,当下次修改了文件时,记得相应修改此随机参数即可。

     方法(2)

   可以使用第三方框架如 Mint 解压到根目录就行 使用很方便 例如下:

SCRIPT>
 一次加载所有所需的JS

  二、懒加载

例如使用瀑布流,按要求优化首次加载的资源特别是图片比较多的时候。使用AJAX加载会较多。

 

三、资源大小优化

JS、CSS、图片 等资源 尽量將大小压缩至最小

JS、CSS 推荐工具yuicompressor


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
centos6.5和centos7如何搭建php环境(包括php7)发布时间:2022-07-10
下一篇:
php实现粘贴截图并完成上传功能发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap