Создание веб-сервера PHP на базе CentOS 8 с Docker - PullRequest
0 голосов
/ 20 июня 2020

Вот мой Dockerfile для создания простого веб-сервера на основе CentOS 8:

FROM  centos:8

RUN yum -y update && \
yum -y install httpd php

COPY . /var/www/html                                                                                                                                  



CMD ["httpd", "-D", "FOREGROUND"]

Я создаю и запускаю контейнер с помощью следующих команд:

docker build -t web .
docker run --rm --name web -p 8000:80 --network net1 --mount type=bind,source=`pwd`,target=/var/www/html web

Ошибка I см. при доступе к http://localhost: 8000 это:

Служба недоступна Сервер временно не может обработать ваш запрос из-за простоя в обслуживании или проблем с производительностью. Повторите попытку позже.

Журналы httpd говорят:

[Sat Jun 20 04:42:02.970003 2020] [suexec:notice] [pid 1:tid 140041021270272] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.19.0.2. Set the 'ServerName' directive globally to suppress this message
[Sat Jun 20 04:42:02.994125 2020] [lbmethod_heartbeat:notice] [pid 1:tid 140041021270272] AH02282: No slotmem from mod_heartmonitor
[Sat Jun 20 04:42:02.995333 2020] [http2:warn] [pid 1:tid 140041021270272] AH02951: mod_ssl does not seem to be enabled
[Sat Jun 20 04:42:03.001899 2020] [mpm_event:notice] [pid 1:tid 140041021270272] AH00489: Apache/2.4.37 (centos) configured -- resuming normal operations
[Sat Jun 20 04:42:03.002120 2020] [core:notice] [pid 1:tid 140041021270272] AH00094: Command line: 'httpd -D FOREGROUND'
[Sat Jun 20 04:42:04.782201 2020] [proxy:error] [pid 8:tid 140040377865984] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /run/php-fpm/www.sock (*) failed
[Sat Jun 20 04:42:04.782280 2020] [proxy_fcgi:error] [pid 8:tid 140040377865984] [client 172.19.0.1:41072] AH01079: failed to make connection to backend: httpd-UDS

Проблема не так очевидна для меня, как кажется. Я думаю, что это проблема php -fpm, но не знаю, как ее исправить. Посмотрел, но все решения кажутся сложными. Есть ли простой способ указать PHP работать с сервером в образе Docker? Недавно я прочитал об использовании диспетчеров процессов, таких как supervisord, когда нужно запускать несколько служб для каждого контейнера. Но можно ли запустить PHP -FPM более простым способом внутри веб-контейнера?

...