折腾了两天搞定了在阿里云的centos 6.8上安装PageSpeed for Apache,记录一下以免忘记。
Google有一个很简单的安装方式:如果Apache是通过包管理器安装的,那么linux下载deb包,centos下载rpm包,然后用各自的包管理器直接安装就完成了,全剧终。
但是!!哥是手动安装apache2.4.15以上,开启过HTTP/2的人啊,比yum repo里的版本要高,安装时选择的路径也和默认不一样,所以我的直接安装也会直接。。。失败。。。😭
我决定关机睡觉了。可在今天白天又发现可以曲线救国
开工:
1.先装依赖
sudo yum install httpd gcc-c++ python subversion gperf make rpm-build git curl zlib-devel libuuid-devel
*其中httpd可以不用了,因为已经手动安装过了
2.Python需要另外安装2.7
wget http://www.python.org/ftp/python/2.7/Python-2.7.tgz tar xzf Python-2.7.tgz cd Python-2.7 ./configure --prefix=/usr/local make -j >make.log sudo make install
3.卸载Git安装2.0以上
以最新的2.19.2为例
yum remove git cd /usr/src #随便一个路径 wget https://github.com/git/git/archive/v2.19.2.tar.gz tar -zxvf v2.19.2.tar.gz
编译安装
cd git-2.19.2 make prefix=/usr/local/git all make prefix=/usr/local/git install echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc source /etc/bashrc git --version #最后检查版本
4.GCC安装4.8以上
参考了这篇文章
添加一个新的源:
wget http://people.centos.org/tru/devtools-2/devtools-2.repo mv devtools-2.repo /etc/yum.repos.d yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++
备份目前的版本把新版连接过来
mv /usr/bin/gcc /usr/bin/gcc-4.4.7 mv /usr/bin/g++ /usr/bin/g++-4.4.7 mv /usr/bin/c++ /usr/bin/c++-4.4.7 ln -s /opt/rh/devtoolset-2/root/usr/bin/gcc /usr/bin/gcc ln -s /opt/rh/devtoolset-2/root/usr/bin/c++ /usr/bin/c++ ln -s /opt/rh/devtoolset-2/root/usr/bin/g++ /usr/bin/g++ gcc --version #最后检查版本
5.安装Google Chromium Depot Tools
即使解决掉上面这些兼容问题,我还是发现了其实并没有想象中那么容易。最大的问题是Google的很多git资源我的服务器都无法访问。
不过,我发现了一个国外的镜像,非常好用,叫Codeaurora
mkdir -p ~/bin cd ~/bin git clone https://source.codeaurora.org/quic/lc/chromium/tools/depot_tools/
6.从官方的Git仓库下载mod_pagespeed
git clone -b latest-stable https://github.com/apache/incubator-pagespeed-mod.git #这里一定不要--recursive,否则third party依赖全部会拉不下来 cd incubator-pagespeed-mod
接下来需要修改.gitsubmodule这个文件
# 把 //boringssl.googlesource.com/boringssl/ 替换为 //source.codeaurora.org/quic/chrome4sdp/boringssl/ # 或者 //github.com/google/boringssl.git # 把所有 //chromium.googlesource.com 替换为 //source.codeaurora.org/quic/lc
保存退出运行
git submodule sync --recursive git submodule update
这是一个漫长的过程,之后按官方的步骤运行
python build/gyp_chromium --depth=. make BUILDTYPE=Release mod_pagespeed_test pagespeed_automatic_test
又是一个漫长的过程
7.运行test
也可以略过这一步
./out/Release/mod_pagespeed_test ./out/Release/pagespeed_automatic_test # 如果需要通过https的测试,则需要先运行如下两行 export SSL_CERT_DIR=/etc/pki/tls/certs export SSL_CERT_FILE=/etc/pki/tls/cert.pem
7.编译
make BUILDTYPE=Release
如果运行过test则会很快
8.安装
cd install APXS_BIN=/usr/local/apache/bin/apxs ./install_apxs.sh # 前者路径需对应apxs文件所在路径
重启以下apache就可以看到效果了。
9.配置
两个配置文件pagespeed.conf,pagespeed_libraries.conf会被inclue进apache的配置里
修改pagespeed.conf就好,除非需要配置vhost,否则我觉得默认的配置足够用
ModPagespeed on #这里有个新功能是standby,但是我改完之后服务就不启用了,可能需要特定条件下才能使用 #其他的一个小功能如下可以参考,有些可能已经废弃 ModPagespeedRewriteLevel CoreFilters ModPagespeedEnableFilters rewrite_images ModPagespeedEnableFilters combine_heads ModPagespeedEnableFilters combine_javascript ModPagespeedEnableFilters convert_jpeg_to_webp ModPagespeedEnableFilters convert_png_to_jpeg ModPagespeedEnableFilters inline_preview_images ModPagespeedEnableFilters make_google_analytics_async ModPagespeedEnableFilters move_css_above_scripts ModPagespeedEnableFilters move_css_to_head ModPagespeedEnableFilters prioritize_visible_content ModPagespeedEnableFilters resize_mobile_images ModPagespeedEnableFilters sprite_images # These filter has a tendency to modify the CSS/JS # ModPagespeedEnableFilters defer_javascript # ModPagespeedEnableFilters detect_reflow_with_defer_js # ModPagespeedEnableFilters lazyload_images
请不要忘记重启apache,以上配置参考来源这个地址