Казалось бы, какой сейчас смысл в веб сервере Apache, когда есть полно более современны... — 15 июня 2026 г. в 06:11:02.011
Казалось бы, какой сейчас смысл в веб сервере 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 это не меняет. #apache #php

