如何在Docker Apache httpd中安装mod_pagespeed

时间:2019-02-20 08:56:43

标签: apache docker pagespeed mod-pagespeed apache-modules

我有一个基于docker的Apache httpd服务器。我需要在其中安装mod_pagespeed

由于某些原因,我现在使用的风味基于debian而不是alpine。

以下是从官方站点将模块安装到debian / ubuntu dist中所需的命令列表

wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb
sudo dpkg -i mod-pagespeed-*.deb
sudo apt-get -f install

这给出了错误

dpkg: dependency problems prevent configuration of mod-pagespeed-stable:
 mod-pagespeed-stable depends on apache2; however:
  Package apache2 is not installed.

这很明显,因为没有安装apache2服务,只有httpd命令有效。

即使文件夹结构与常规的debian / ubuntu安装也不相同。

我在任何地方都找不到任何.so文件,否则我可以将其放在某个目录中并执行LoadModule

我想我需要从源代码进行自定义构建,有什么简单的方法吗?

2 个答案:

答案 0 :(得分:1)

您可以使用以下Dockerfile作为基础:

FROM debian:stretch

ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_PID_FILE /var/run/apache2/apache2.pid
ENV APACHE_RUN_DIR /var/run/apache2
ENV APACHE_LOCK_DIR /var/lock/apache2
ENV APACHE_LOG_DIR /var/log/apache2
ENV LANG C

RUN apt-get update \
    && DEBIAN_FRONTEND=noninteractive apt-get install -y apache2 wget \
    && wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb -O /tmp/modpagespeed.deb \
    && dpkg -i /tmp/modpagespeed.deb

RUN mkdir -p /var/log/apache2 /var/run/apache2 /var/lock/apache2 \
    && chown www-data:www-data /var/log/apache2 /var/run/apache2 /var/lock/apache2

CMD ["apache2", "-DFOREGROUND"]

EXPOSE 80

构建图像并启动容器,您将获得类似于X-Mod-Pagespeed: 1.13.35.2-0的响应标头。

希望这会有所帮助!

答案 1 :(得分:1)

大多数@Michael的答案都是正确的,但是对于那些使用默认docker的apache模块(如我)的人来说,下面的答案就足够了。

因为debian的apache安装不同于docker apache的安装。 (而且,如果您已经设置/自定义了所有配置,并且无法重新自定义为debian的结构)

我已经从该答案构建了pagespeed模块,然后将该模块复制到了我的安装中。

Dockerfile

next_element