安装和配置Google PageSpeed for Apache

折腾了两天搞定了在阿里云的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,以上配置参考来源这个地址

Leave a Reply

Your email address will not be published. Required fields are marked *