apachectl -DFOREGROUND立即退出

时间:2017-05-03 03:11:25

标签: php docker apache2.4

我正在尝试使用Apache 2.4和PHP 5.6设置docker容器。我使用Php的Alphine图像作为我的基本图像。当我执行以下命令时

apachectl -DFOREGROUND -e debug

立即退出。我没有看到任何错误

[Wed May 03 03:05:18.229549 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module unixd_module from /usr/lib/apache2/mod_unixd.so
[Wed May 03 03:05:18.229633 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module authz_core_module from /usr/lib/apache2/mod_authz_core.so
[Wed May 03 03:05:18.229696 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module log_config_module from /usr/lib/apache2/mod_log_config.so
[Wed May 03 03:05:18.230021 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module logio_module from /usr/lib/apache2/mod_logio.so
[Wed May 03 03:05:18.230120 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module mpm_prefork_module from /usr/lib/apache2/mod_mpm_prefork.so
[Wed May 03 03:05:18.230395 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module alias_module from /usr/lib/apache2/mod_alias.so
[Wed May 03 03:05:18.230485 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module authz_host_module from /usr/lib/apache2/mod_authz_host.so
[Wed May 03 03:05:18.230569 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module dir_module from /usr/lib/apache2/mod_dir.so
[Wed May 03 03:05:18.230723 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module mime_module from /usr/lib/apache2/mod_mime.so
[Wed May 03 03:05:18.230873 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module negotiation_module from /usr/lib/apache2/mod_negotiation.so
[Wed May 03 03:05:18.234418 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module php5_module from /usr/lib/apache2/libphp5.so
[Wed May 03 03:05:18.234537 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module remoteip_module from /usr/lib/apache2/mod_remoteip.so
[Wed May 03 03:05:18.234751 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module rewrite_module from /usr/lib/apache2/mod_rewrite.so
[Wed May 03 03:05:18.234830 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module setenvif_module from /usr/lib/apache2/mod_setenvif.so
[Wed May 03 03:05:18.235048 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module status_module from /usr/lib/apache2/mod_status.so

我不知道为什么会这样。似乎使用-D FOREGROUND是基于我的谷歌搜索的正确选项,但由于某种原因它不适合我。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

我发现运行apachectl -DFOREGROUND无法启动httpd进程的问题。我们似乎需要这个mkdir -p /run/apache2。如果有人感兴趣,这是完整的Dockerfile。它适用于PHP 5.6,Alpine上的Apache 2.4。我决定使用httpd而不是apachectl,因为我希望apache在docker容器停止时死亡。使用httpd会将进程附加到当前shell。

FROM php:5.6-alpine
RUN apk update && apk upgrade && \
    apk add --no-cache apache2 && \
    apk add --no-cache apache2-utils && \
    apk add --no-cache php5-apache2 && \
    apk add --no-cache php5-mysql && \
    apk add --no-cache php5-mysqli && \
    apk add --no-cache php5-pear && \
    apk add --no-cache php5-cgi && \
    apk add --no-cache php5-curl && \
    apk add --no-cache php5-dev && \
    apk add --no-cache php5-fpm && \
    apk add --no-cache php5-gd && \
    apk add --no-cache php5-imagick && \
    apk add --no-cache php5-imap && \
    apk add --no-cache php5-intl && \
    apk add --no-cache php5-json && \
    apk add --no-cache php5-mcrypt

RUN mkdir -p /run/apache2
ENTRYPOINT ["httpd", "-D", "FOREGROUND"]