TGViewer
ServerAdmin.ru ServerAdmin.ru @srv_admin · 32.5K subscribers
Post #5643 7.64K
Казалось бы, какой сейчас смысл в веб сервере Apache, когда есть полно более современных аналогов? Я лично с ним взаимодействую только в проектах, где есть Bitrix, либо если на винде где-то надо опубликовать базу 1С. С помощью Apache это проще всего сделать.

В недавнем вебинаре услышал от автора полезную идею по поводу Apache. Он может быть удобен, если надо быстро запустить что-то на php. В то время как для Nginx надо подниматься в отдельном контейнере php-fpm, Apache сразу имеет на борту mod_php, поэтому достаточно одного контейнера только с Apache, где будет сразу и php, и веб сервер. Для этой задачи есть официальный базовый образ.

Покажу сразу на конкретном примере. Я иногда использую скрипт adminer. Это небольшой php файл, который позволяет через браузер подключиться к MySQL / MariaDB / PostgreSQL и быстро посмотреть или сделать что-то простое, не вспоминая консольные команды. На удивление живучий проект. Сколько лет ему, а он продолжает поддерживаться и регулярно получать обновления.

Запускаем adminer в docker:

# mkdir ~/adminer && cd ~/adminer
# curl -sLo adminer.php https://github.com/vrana/adminer/releases/download/v5.4.2/adminer-5.4.2.php
# docker run -d --rm --name adminer -p 8080:80 -v $(pwd):/var/www/html php:8.4-apache
# docker exec adminer docker-php-ext-install mysqli
# docker exec adminer apachectl restart

Идём по IP адресу и открываем adminer - http://192.168.137.37:8080/adminer.php. В данном случае понадобилось дополнительное расширение mysqli установить, необходимое для работы adminer.

Если будете постоянно что-то использовать таким образом, можно свой образ собрать. Создаём Dockerfile:

FROM php:8.4-apache
RUN docker-php-ext-install mysqli
COPY adminer.php /var/www/html/index.php

Собираем образ и запускаем:

# docker build -t adminer .
# docker run -d --rm -p 8080:80 adminer

Для простых задач с php стандартный образ с Apache реально удобнее всех остальных. Не надо ничего придумывать и настраивать. Всё сразу работает в одном минимальном контейнере.

Поясню на всякий случай для тех, кто может не понять сразу. Это решение для простых одиночных задач без нагрузки. Php-fpm появился не просто так, а как решение вопроса медленной асинхронной работы mod_php в Apache. В нагруженных проектах лучше использовать php-fpm. Хотя тот же Битрикс сколько лет успешно работает по умолчанию на Apache с некоторыми настройками. Например, в модуле mpm_prefork можно заранее настроить запуск необходимого количества процессов веб сервера, на которое хватает ресурсов, а так же их параметры перезапуска и обработки запросов. Я настраивал Битрикс как на Apache, так и на php-fpm. Если ресурсов в целом хватает на сервере, то разница не особо незаметна.

p.s. Уже после написания заметки увидел, что у Adminer есть свой готовый образ. Не знаю, когда он появился, я всегда обычный php файл использовал, скачивая его на настроенный хостинг. Сути заметки про использование Apache это не меняет.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#apache #php
  • 👍 90
  • 👎 3
More from @srv_admin
  1. Sep 25, 2026▶️ Очередная подборка авторских IT роликов, которые я лично посмотрел и посчитал интересны…
  2. Sep 25, 2026Девопсы, сисадмины, архитекторы, техлиды (и вообще все, кто принимает технические или бизн…
  3. Sep 25, 2026Подписчик поделился полезным проектом - Webtop. Это Linux дистрибутив с графикой, упакован…
  4. Sep 24, 2026Траблшутинг - мастхэв компетенция для инженера В Rebrain траблшутинги проводят уже несколь…
  5. Sep 23, 2026Очередная подборка статей авторов, которые согласились в ней участвовать. Кто не понимает,…
  6. Sep 23, 2026Контейнеры в одном инструменте, виртуалки — в другом, частное облако — вообще отдельная ис…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →