本地主机上带有 apache 的 Docker php:ERR_SSL_PROTOCOL_ERROR

我正在尝试在带有 Docker Desktop 的 Windows 10 上的 docker 容器中使用 apache 和 php 提供 hello_world.php 文件。


这是 Dockerfile:


FROM php:7.3-apache

# install git and zip, both needed for composer

RUN apt-get update && \

    apt-get upgrade -y && \

    apt-get install -y git && \

    apt-get install zip unzip

# install composer

RUN curl -sS https://getcomposer.org/installer | php -- \

--install-dir=/usr/bin --filename=composer && chmod +x /usr/bin/composer 


RUN a2enmod headers

RUN echo 'ServerName localhost' >> /etc/apache2/apache2.conf

COPY . /var/www/html

WORKDIR /var/www/html


#RUN composer install

EXPOSE 80

如您所见,一些用于设置 composer 等的附加代码(因此我可以对现有 PHP 应用程序进行 docker 化)甚至被注释掉了,但它甚至不能用于基本的 hello world php 文件,也不能用于其他文件(没有 . htaccess 为例)。


首先,我使用docker build .. 当我执行时docker run -it -p 8000:80 d7cd1255a20f,我得到了控制台输出


[Tue Jun 02 16:01:29.592455 2020] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.38 (Debian) PHP/7.3.18 configured -- resuming normal operations

[Tue Jun 02 16:01:29.592531 2020] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'

我觉得不错。我http://localhost:8000在浏览器中打开并收到“无法建立安全连接。ERR_SSL_PROTOCOL_ERROR”。服务器日志显示(每次我在浏览器中加载页面时显示两行):


172.17.0.1 - - [02/Jun/2020:16:02:55 +0000] "\x16\x03\x01\x02" 400 0 "-" "-"

172.17.0.1 - - [02/Jun/2020:16:02:55 +0000] "\x16\x03\x01\x02" 400 0 "-" "-"

我已经对此进行了研究,看起来这是 TLS 握手的开始。


我怎样才能让它工作?


繁花如伊
浏览 221回答 2
2回答

绝地无双

/var/www/html中是否有任何 .htaccess 文件?看起来 Apache 正在执行到 HTTPS 的自动重定向。使用 /var/www/html等空目录构建图像并docker run -it -p 8000:80 d7cd1255a20f通过 HTTP 正确运行。

偶然的你

好的试试这个遵循文件夹结构phpExample/&nbsp; &nbsp;php/&nbsp; &nbsp; &nbsp; index.php&nbsp; &nbsp;dockerfile文件FROM php:7.3-apacheCOPY php/ /var/www/htmlEXPOSE 80索引.php<?phpecho "Hello World from Docker container using PHP<br>";echo '<img src="https://www.docker.com/sites/default/files/d8/2019-07/Moby-logo.png">';?>在此运行以下命令之后docker build -t helloWorld-php-docker .构建完成时。docker run -p 80:80 helloWorld-php-docker请确保端口 80 未被使用,否则您可以更改端口号PS:目录结构不是强制性的。我添加只是为了构造示例😉
打开App,查看更多内容
随时随地看视频慕课网APP