gpt4 book ai didi

Apache 无法确定 docker 容器上的服务器名

转载 作者:行者123 更新时间:2023-12-02 18:54:01 26 4
gpt4 key购买 nike

我正在尝试为现有站点设置自定义 docker 容器。为此,我想提供我自己的自定义 vhost 配置和 ServerName

但是,当我尝试添加自定义 vhost 配置 并重新启动 apache 时,我收到 Apache 无法确定全局名称的警告:Could not reliable determine the server's fully qualified domain name ,使用 172.26.0.2。全局设置“ServerName”指令以抑制此消息

重要的是,当我登录到容器的 shell 并手动运行 service apache2 restart 时,我不再收到此警告。

如何在构建时抑制它?我是否应该以其他方式向 Composer 提供 vhost

这是我的 docker-compose.yml 是这样的:

version: '3'
services:
web:
build:
context: ./etc/php
args:
- APP_HOST=${APP_HOST}
ports:
- ${APP_PORT}:80
- ${APP_PORT_SSL}:443
volumes:
- ./var/bin/:/tmp/bin/
- ./app/:/var/www/html/
- ./log/:/var/log/
- ./etc/php/conf/:/usr/local/etc/php/conf.d/
environment:
- VIRTUAL_HOST=${VIRTUAL_HOST}

然后,添加我自己的可用站点的 Dockerfile:

FROM php:7.0-apache
ENV TERM=xterm
LABEL maintainer="Derek P Sifford <dereksifford@gmail.com>" \
version="0.15.2-php7.0"

ARG APP_HOST
ENV APP_HOST=$APP_HOST

ADD ./sites/app.conf /etc/apache2/sites-available/app.conf
RUN sed -i 's/ServerName APP_HOST/ServerName '$APP_HOST'/g' /etc/apache2/sites-available/app.conf

RUN sed -i 's/AllowOverride None/AllowOverride All/g' /etc/apache2/apache2.conf \
&& a2enmod rewrite expires \
&& a2dissite 000-default.conf \
&& a2ensite app.conf \
&& service apache2 restart

WORKDIR /app
EXPOSE 80 443

显然站点配置:

<VirtualHost *:80>
DocumentRoot "/var/www/html"
ServerName APP_HOST

SetEnv APPLICATION_ENV "development"

<Directory "/var/www/html">
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

最佳答案

如图所示here在警告消息中,您可以在 Dockerfile 中的 /etc/apache2/apache2.conf 中将 ServerName 属性设置为 localhost

关于Apache 无法确定 docker 容器上的服务器名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47864581/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com