综述:showslow是一个开源的工具,集成并通过Yahoo yslow、google page speed、dynaTrace AJAX等工具监测网站各项性能指标,然后通过图表和排名展示出来。

1. 工具软件

 说明:showslow是典型的linux + apache + php + mysql结构。(当然在windows\mac也可以运行)

 我是在Mac Air 上搭建的环境,Mac 跟Linux 搭建步骤差不多啦。

 软件准备

  1)mysql和apache软件没有版本要求,去官网下载最新版本即可。我使用的是apache2.4 mysql5.6.24

  2)showslow 官网目前最新版本是1.2.2,官网对php的要求是5.3.3。经测试以及n次验证,目前最新5.6.9版本的php,会有兼容性问题,建议使用php5.4.41之前的版本(这是经验,php不要使用超过5.4.41版本。因为showslow1.2.2 php文件数据库扩展和加密扩展的接口方法已经在php5.6.9版本中弃用了,不支持了)。对于php5.3、5.4、5.5、5.6版本的不同,请自行搜索。当然如果精通php,能修改showslow软件里面的php文件相关接口,另当别论。

  3)浏览器:准备firefox,以及应用扩展(firebug、yslow、pagespeed)。

2. 环境搭建

 由于手头只有Mac Air,所以本文档仅适用用Mac和Linux,windows 用户参考即可。

2.1 apache安装

 apache使用2.4版本,编译安装网络上文档太多了,就不描述了。

 apache2.4编译安装之前,需要预先安装好apr、apr-util。

cd httpd-2.4
sudo ./configure --with-apr=/path --with-apr-util=/path
sudo make
sudo make install 

2.2 mysql安装

 mysql安装,参考网络吧。showslow对mysql的版本没有要求。

 show slow官网建库和建用户语句:

mysql> create database showslow;
mysql> grant usage on showslow.* to showslowuser@localhost identified by '... database-password ...';
mysql> grant all privileges on showslow.* to showslowuser@localhost;
mysql> quit

2.3 php安装

 经过多次验证,php5.4.41版本对于show slow是OK的。(不要使用5.4.41以上的版本,5.5 5.6 版本的php肯定报错)

 官网下载地址:http://125.39.35.133/files/21010000065E74D3/cn2.php.net/distributions/php-5.4.41.tar.gz

 Mac/Linux编译过程: 

sudo CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/php  --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/httpd-2.4./bin/apxs --with-libxml-dir=/usr/local/libxml2-2.9./ --with-pcre-dir=/usr/local/pcre-8.37/ --with-config-file-path=/etc --with-jpeg-dir --with-png-dir --with-mcrypt --with-mhash --with-curl --with-openssl -enable-mbstring --enable-debug --enable-ftp --enable-zip --enable-exif --enable-sockets --enable-safe-mode
sudo make
sudo make install

说明:

  1)php的mysqli、mcrypt、curl、mbstring对于showslow是必需的。

  2)在Mac上编译报错:ld:symbol(s) not found for architecture x86_64. clang:error:linker command failed with exit code 1 (use -v to see invocation)。编译的时候增加 CFLAGS="-O3 -fPIC"即可。

编译php后,进入httpd的配置文件httpd.conf  编辑设置:LoadModule php5_module modules/libphp5.so

并增加:

<IfModule mod_php5.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .php5
</IfModule>

2.4 firefox浏览器以及各种附加组件安装

安装firefox浏览器,并安装yslow\page speed插件。(firebug 这个就不说了,地球人都知道)

2.4.1 yslow的安装

  在firefox插件中进行搜索,然后安装即可。主要是配置插件:(firefox地址栏中输入:about:config )

  • extensions.yslow.beaconUrl = http://localhost/showslow/beacon/yslow/      (作用主要是将yslow的数据传送到本地的showslow数据库中)
  • extensions.yslow.beaconInfo = grade
  • extensions.yslow.optinBeacon = true

2.4.2 pagespeed 的安装

 这个插件坑苦我了,怎么也没弄好。其数据无法传送到本地!也记录下相关过程。

  1)pagespeed 插件安装教程:http://www.showslow.org/Configuring_Page_Speed

  2)showslow的配置文件:config.php  中有个配置:$pageSpeedOnlineAPIKey = '<your-code-goes-here>';  这个是调用google pagespeed online api。其安装教程(官网):http://www.showslow.org/Configuring_Page_Speed_Online_API  (哈哈,没看明白,没看明白,按照这个做了,但是数据依然无法传送到本地)

  3)上面提到了google pagespeed API,那么这个API key 去哪里找啊? 嗯,官网申请。 其教程为:http://starrguide.com/pagespeed-online-api-key/

  4)show slow pagespeed的功能没弄好,求大神!

2.5 showslow安装

1. 在showslow目录下,复制config.sample.php to config.php

2.修改config.php

$db = 'showslow';
$user = 'showslowuser';
$pass = '... database-password ...';
$host = 'localhost:/var/lib/mysql/mysql.sock';

3.执行make .

2.6 其他说明

  由于我没有windows系统,无法安装dynaTrace rank。

  showslow.com官网的截图如下:

2.7 My showslow show:

最后我搭建的show slow环境只有yslow的功能,需要在研究!

搭建showslow:前端性能跑分及优化工具的更多相关文章

  1. Azure 进阶攻略 | 电脑跑分你会,但虚拟机存储性能跑分的正确姿势你造吗?

    想学生时代,小编最爱做的就是研究电脑硬件,然后给自己.朋友和童鞋装机.装好后呢?当然要第一时间跑分了!各种跑分软件运行一遍,不断优化,不断测试.终于得到一个满意成绩,截图分享到网上显摆一下.当年为啥就 ...

  2. 前端性能和加载体验优化实践(附:PWA、离线包、内存优化、预渲染)

    一.背景:页面为何会卡? 1.1 等待时间长(性能) 项目本身包/第三方脚本比较大. JavaScript 执行阻塞页面加载. 图片体积大且多. 特别是对于首屏资源加载中的白屏时间,用户等待的时间就越 ...

  3. 【前端构建】WebPack实例与前端性能优化

    计划把微信的文章也搬一份上来. 这篇主要介绍一下我在玩Webpack过程中的心得.通过实例介绍WebPack的安装,插件使用及加载策略.感受构建工具给前端优化工作带来的便利. 壹 | Fisrt 曾几 ...

  4. WebPack实例与前端性能优化

    [前端构建]WebPack实例与前端性能优化   计划把微信的文章也搬一份上来. 这篇主要介绍一下我在玩Webpack过程中的心得.通过实例介绍WebPack的安装,插件使用及加载策略.感受构建工具给 ...

  5. Web前端性能优化之图片优化

    我自己的Blog:http://blog.cabbit.me/web-image-optimization/ HTTP Archieve有个统计,图片内容已经占到了互联网内容总量的62%,也就是说超过 ...

  6. 前端性能优化(三)——传统 JavaScript 优化的误区

    注:本文是纯技术探讨文,无图无笑点,希望您喜欢 一.前言 软件行业极其缺乏前端人才这是圈内的共识了,某种程度上讲,同等水平前端的工资都要比后端高上不少,而圈内的另一项共识则是--网页是公司的脸面! 几 ...

  7. Web前端性能优化全攻略

    网页制作poluoluo文章简介:Web 前端性能优化是个大话题,是个值得运维人员持续跟踪的话题,是被很多网站无情忽视的技术. Web 前端性能优化是个大话题,是个值得运维人员持续跟踪的话题,是被很多 ...

  8. Web前端性能优化全攻略[转载]

    1. 尽量减少 HTTP 请求 (Make Fewer HTTP Requests) 作为第一条,可能也是最重要的一条.根据 Yahoo! 研究团队的数据分析,有很大一部分用户访问会因为这一条而取得最 ...

  9. Web前端性能优化——如何提高页面加载速度

    前言:  在同样的网络环境下,两个同样能满足你的需求的网站,一个"Duang"的一下就加载出来了,一个纠结了半天才出来,你会选择哪个?研究表明:用户最满意的打开网页时间是2-5秒, ...

随机推荐

  1. Asm Shader Reference --- Shader Model 2.x part

    ps部分 概览   Instruction Set                                       Name Description Instruction slots S ...

  2. bzoj 2282 [Sdoi2011]消防(树的直径,二分)

    Description 某个国家有n个城市,这n个城市中任意两个都连通且有唯一一条路径,每条连通两个城市的道路的长度为zi(zi<=1000). 这个国家的人对火焰有超越宇宙的热情,所以这个国家 ...

  3. POJ-3070Fibonacci(矩阵快速幂求Fibonacci数列) uva 10689 Yet another Number Sequence【矩阵快速幂】

    典型的两道矩阵快速幂求斐波那契数列 POJ 那是 默认a=0,b=1 UVA 一般情况是 斐波那契f(n)=(n-1)次幂情况下的(ans.m[0][0] * b + ans.m[0][1] * a) ...

  4. uvalive 3938 "Ray, Pass me the dishes!" 线段树 区间合并

    题意:求q次询问的静态区间连续最大和起始位置和终止位置 输出字典序最小的解. 思路:刘汝佳白书 每个节点维护三个值 pre, sub, suf 最大的前缀和, 连续和, 后缀和 然后这个题还要记录解的 ...

  5. sed命令教程

    转载自:http://coolshell.cn/articles/9104.htmlawk于1977年出生,今年36岁本命年,sed比awk大2-3岁,awk就像林妹妹,sed就是宝玉哥哥了.所以 林 ...

  6. ERROR hdfs.DFSClient: Failed to close file解决方法

    14/04/11 17:59:44 ERROR hdfs.DFSClient: Failed to close file /wlan_out/_temporary/_attempt_local_000 ...

  7. https://lua-toolbox.com/

    Lua Toolbox https://github.com/bungle/lua-resty-session

  8. php-fpm正在生成页面时,浏览器刷新后,php-fpm会退出吗?

    好久没写博客了,因为没有啥可写. 之所以有此疑问,是因为看了一篇大牛的文章:PHP升级导致系统负载过高问题分析.看完后,其中有些文字触发了我这个想法,也想验证一下. 方案,用tcpdump抓包,用st ...

  9. linuxmint获取root

    1.进入系统à点击桌面左下角的菜单à点击系统设置 2. 在系统设置里面找到登陆窗口并进去 3.打入自己设置的开机登陆密码 4. 选择选项,并把运行root登陆的勾打上 5.重启生效

  10. 特殊的反转单链表算法(C++)

    普通的单链表反转算法 大学的时候也做过好几次单链表的反转,记得当时都是用三个变量不断修改next的值然后实现反转. ListNode* reverseList(ListNode* head) { Li ...