我有一个基于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
。
我想我需要从源代码进行自定义构建,有什么简单的方法吗?
答案 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