如何在树莓派4的Ubuntu Server系统上为ARM64(aarch64)架构从源码编译Pagespeed PSOL二进制文件?
如何在树莓派4的Ubuntu Server系统上为ARM64(aarch64)架构从源码编译Pagespeed PSOL二进制文件?
我自己在树莓派4上跑的是Ubuntu Server 22.04(aarch64)作为Web服务器,最近一直在折腾给Nginx编译适配的Pagespeed模块,搭配现代PSOL二进制文件,这里把我的经验分享给大家。
为什么要做适配分支?
官方的Pagespeed模块并没有提供针对树莓派ARM64架构的预编译PSOL包,直接用通用源码编译会遇到架构不兼容的问题。我发现We-Amp维护的mod_pagespeed分支做得很不错——它会持续跟进上游项目的依赖更新,能稳定构建可用的mod_pagespeed——于是我基于这个分支fork了一个专门适配树莓派aarch64的版本,用来生成适合我们设备的PSOL库文件。
核心编译步骤
下面是我实操下来的关键流程,你可以跟着一步步走:
- 先装编译依赖:首先得把必备的编译工具和依赖包安装好,执行以下命令:
这些是基础编译工具和Pagespeed编译必需的依赖。sudo apt install build-essential git libssl-dev zlib1g-dev gperf python3 - 拉取适配源码:克隆我做的树莓派aarch64版mod_pagespeed仓库,切换到对应的工作分支。
- 同步子模块:PSOL是作为子模块存在的,一定要执行以下命令拉取完整的PSOL源码和相关依赖:
git submodule update --init --recursive - 配置编译参数:根据你的Nginx版本和系统环境,调整编译配置,重点指定目标架构为aarch64,同时开启适合树莓派的编译优化选项。
- 开始编译:运行
make命令启动编译,这个过程会比较耗时,树莓派性能有限,建议保持设备稳定供电,避免中途断电。 - 集成到Nginx:编译完成后,就能得到适配aarch64架构的PSOL二进制文件,接下来你可以选择把它和Pagespeed模块一起编译进Nginx,或者作为动态模块加载到已有的Nginx中。
一些踩坑提醒
- 编译过程中如果遇到依赖缺失的报错,直接根据提示用
apt安装对应的包即可。 - 如果你用的是Ubuntu Server 20.04这类其他版本,大部分步骤是通用的,但可能需要调整个别依赖的版本。
- 树莓派内存有限,编译时容易因内存不足失败,建议提前开启SWAP分区,或者临时关闭其他占用内存的服务。
备注:内容来源于stack exchange,提问作者DanRan
相关产品推荐
相关产品推荐

