【问题标题】:Apache 2.4 httpd in Docker doesn't start when loading proxy module加载代理模块时,Docker 中的 Apache 2.4 httpd 不启动
【发布时间】:2019-06-19 16:49:48
【问题描述】:

我正在使用 Docker 构建 Apache2.4 堆栈。在配置过程中,服务器没有启动:

apache-php-fpm-docker_apache_1 exited with code 1

在添加以下行加载模块后发现会发生这种情况:

LoadModule proxy_module modules/mod_proxy.so

我认为我做错了什么,但我怎样才能得到错误消息以查看问题所在?

我已经尝试过的

运行httpd -h我看到了以下选项:

-e level : show startup errors of level (see LogLevel)

所以我尝试了ENTRYPOINT httpd -k start -e debug,现在看到了一些日志,但没有错误。并且网络服务器没有启动,即使错误被修复。

完整的 apache 配置

Listen 80
ServerRoot "/usr/local/apache2"
DocumentRoot "/usr/local/apache2/htdocs"
ServerName localhost
LogLevel warn

LoadModule mpm_event_module modules/mod_mpm_event.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule reqtimeout_module modules/mod_reqtimeout.so
LoadModule filter_module modules/mod_filter.so
LoadModule mime_module modules/mod_mime.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule env_module modules/mod_env.so
LoadModule headers_module modules/mod_headers.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
LoadModule unixd_module modules/mod_unixd.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule dir_module modules/mod_dir.so
LoadModule alias_module modules/mod_alias.so

#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

<IfModule mime_module>
    TypesConfig conf/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
</IfModule>

<Directory />
    AllowOverride none
    Require all denied
</Directory>

<Files ".ht*">
    Require all denied
</Files>

#ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://php:9000/usr/local/apache2/htdocs/$1
<Directory "/usr/local/apache2/htdocs">
    Options Indexes FollowSymlinks
    AllowOverride None
    Require all granted
</Directory>

Docker 编写

version: "2.4"
services: 
  apache:
    image: httpd:2.4
    volumes:
      - ./apache/httpd.conf:/usr/local/apache2/conf/httpd.conf
      - ./src:/usr/local/apache2/htdocs
    ports:
      - 80:80

  php:
    image: php:7.3-fpm
    volumes_from:
      - apache

【问题讨论】:

    标签: php apache docker mod-proxy


    【解决方案1】:

    首先,将ErrorLog /proc/self/fd/2 添加到您的http.conf 以启用错误日志。

    然后,我看到了你的情况的错误日志:

    shubuntu1@shubuntu1:~/aa$ docker run -idt -v ${PWD}/httpd.conf:/usr/local/apache2/conf/httpd.conf -p 9000:80 httpd:2.4
    fd0d0b45bd8e25e5ce8219d6b96e5b446307d7a76bf7e3eecb47e23d93b04368
    shubuntu1@shubuntu1:~/aa$ docker ps -a
    CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS                    PORTS               NAMES
    fd0d0b45bd8e        httpd:2.4           "httpd-foreground"   3 seconds ago       Exited (1) 1 second ago                       agitated_edison
    shubuntu1@shubuntu1:~/aa$ docker logs agitated_edison
    [Wed Jun 19 08:45:20.774433 2019] [core:emerg] [pid 1:tid 139720185319488] (22)Invalid argument: AH00024: Couldn't set permissions on the proxy mutex; check User and Group directives
    [Wed Jun 19 08:45:20.774495 2019] [proxy:crit] [pid 1:tid 139720185319488] (22)Invalid argument: AH02478: failed to create proxy mutex
    AH00016: Configuration Failed
    

    从错误日志中:为proxy_module 创建代理互斥锁时似乎失败。所以,我在httpd.conf 旁边添加,然后一切正常:

    <IfModule unixd_module>
    User daemon
    Group daemon
    </IfModule>
    

    【讨论】:

    • 管道到/proc/self/fd/2 解决了日志记录问题,谢谢!我不承认这一点,因为通过可执行文件名称httpd-foreground我假设它已经将每个日志打印到标准输出/标准错误。
    猜你喜欢
    • 1970-01-01
    • 2013-02-09
    • 2019-04-22
    • 2015-05-27
    • 2011-05-06
    • 2012-04-06
    • 2018-07-20
    • 1970-01-01
    • 2017-05-07
    相关资源
    最近更新 更多