Подробный гайд: Apache HTTP Server на ALT Linux

Полное руководство по установке, настройке и защите веб-сервера Apache в ALT Linux. Виртуальные хосты, HTTPS, PHP-FPM, безопасность и обслуживание сервера.

2026.05.07                  


Подробный гайд: Apache HTTP Server на ALT LinuxПодробный гайд: Apache HTTP Server на ALT Linux Данный гайд охватывает установку, настройку, безопасность и обслуживание Apache в современных стабильных ветках ALT Linux (p10/p11). Все команды выполняются от имени пользователя с правами sudo.


1. Установка Apache

ALT Linux использует пакетный менеджер apt (на базе apt-rpm).

Apache в репозиториях называется apache2.

sudo apt-get update
sudo apt-get install apache2

Проверка версии:

apache2 -v
# или
httpd -v

В ALT Linux пакет apache2 уже включает базовые модули и утилиты a2enmod/a2ensite.


2. Запуск и управление службой

Apache управляется через systemd.

sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl status apache2

Проверка доступности веб-сервера:

curl -I http://localhost
# или откройте в браузере http://<IP-адрес-сервера>

Настройка брандмауэра (если используется firewalld)

sudo apt-get install firewalld
sudo systemctl enable --now firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

3. Структура конфигурации

Путь Назначение
/etc/apache2/httpd.conf Главный конфигурационный файл
/etc/apache2/conf-enabled/ Дополнительные параметры (Security, Charset, и т.д.)
/etc/apache2/mods-available/ и /mods-enabled/ Доступные и включённые модули
/etc/apache2/sites-available/ и /sites-enabled/ Виртуальные хосты
/var/www/ Корневая директория сайтов
/var/log/apache2/ Логи доступа и ошибок

Проверка синтаксиса конфигурации перед перезагрузкой:

sudo apache2ctl configtest
# или
sudo httpd -t

4. Настройка виртуальных хостов

Создадим сайт example.com:

sudo mkdir -p /var/www/example.com/public_html
sudo chown -R apache:apache /var/www/example.com
sudo chmod -R 755 /var/www/example.com

Создаём конфигурацию:

sudo nano /etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html

    <Directory /var/www/example.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>

Активируем и перезагружаем:

sudo a2ensite example.com.conf
sudo apache2ctl graceful
# или
sudo systemctl reload apache2

a2ensite/a2dissite и a2enmod/a2dismod работают в ALT Linux из коробки. Если команда не найдена, убедитесь, что установлен пакет apache2.


5. Настройка HTTPS (SSL/TLS)

Вариант A: Самоподписанный сертификат (для тестов)

sudo mkdir -p /etc/apache2/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
  -keyout /etc/apache2/ssl/apache.key \
  -out /etc/apache2/ssl/apache.crt \
  -subj "/C=RU/ST=Moscow/L=Moscow/O=Test/CN=example.com"

Добавьте в конфигурацию виртуального хоста:

<VirtualHost *:443>
    ServerName example.com
    DocumentRoot /var/www/example.com/public_html

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key

    <Directory /var/www/example.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Вариант B: Let's Encrypt (рекомендуется)

sudo apt-get install certbot python3-certbot-apache
sudo certbot --apache -d example.com -d www.example.com

Certbot автоматически создаст конфигурацию, настроит редирект HTTP→HTTPS и добавит cron для автообновления.

Включите модуль SSL (если не активен):

sudo a2enmod ssl
sudo systemctl reload apache2

6. Интеграция с PHP

ALT Linux предоставляет PHP через отдельные пакеты.

sudo apt-get install php php-common php-cli php-fpm
sudo a2enmod proxy_fcgi setenvif
sudo systemctl enable --now php-fpm

В конфиге виртуального хоста добавьте:

<FilesMatch \.php$>
    SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost/"
</FilesMatch>

Альтернатива:

  • apache2-mod_php (модуль mod_php). Установите sudo apt-get install apache2-mod_php, затем sudo a2enmod php. FPM предпочтительнее для production.

Проверка:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/example.com/public_html/info.php

Откройте http://example.com/info.php.


7. Безопасность и рекомендации

7.1. Базовая настройка httpd.conf

ServerTokens Prod
ServerSignature Off
TraceEnable Off

7.2. Отключение листинга директорий

Убедитесь, что в <Directory> указано Options -Indexes.

7.3. Заголовки безопасности

<IfModule mod_headers.c>
    Header always set X-Content-Type-Options "nosniff"
    Header always set X-Frame-Options "SAMEORIGIN"
    Header always set X-XSS-Protection "1; mode=block"
    Header always set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>

7.4. Права и владелец

sudo chown -R apache:apache /var/www/
sudo find /var/www/ -type d -exec chmod 755 {} \;
sudo find /var/www/ -type f -exec chmod 644 {} \;

7.5. Дополнительные модули (опционально)

sudo apt-get install apache2-mod_security2 apache2-mod_evasive
sudo a2enmod security2 evasive

8. Логи и диагностика

Лог Путь
Ошибки Apache /var/log/apache2/error.log
Доступы /var/log/apache2/access.log
Системный журнал journalctl -u apache2 -f

Полезные команды:

sudo apache2ctl status        # Требует mod_status
sudo apachectl -S             # Показать конфигурацию виртуальных хостов
sudo ss -tulnp | grep :80     # Проверить занятость порта

При включённой MAC-политике (SELinux/SMACK) в ALT Linux могут потребоваться дополнительные разрешения. По умолчанию в стабильных ветках они отключены.


9. Обновление и обслуживание

sudo apt-get update
sudo apt-get upgrade apache2
sudo systemctl reload apache2

Резервное копирование конфигурации:

sudo tar -czf ~/apache2-backup-$(date +%F).tar.gz /etc/apache2/

Мониторинг нагрузки:

sudo apt-get install apache2-utils
ab -n 1000 -c 50 http://localhost/

Примечания по ALT Linux

Особенность Значение
Пакет apache2
Служба apache2.service
Пользователь/группа apache:apache
Конфигурация /etc/apache2/ (Debian-подобная структура)
Репозитории p10 / p11 (стабильные), Sisyphus (rolling)
Менеджер пакетов apt-get / apt (на базе apt-rpm)
Брандмауэр по умолчанию Отключен (рекомендуется firewalld или iptables)

Чек-лист перед production

  • [ ] Проверен синтаксис: apache2ctl configtest
  • [ ] Включён HTTPS (Let's Encrypt)
  • [ ] Отключён ServerSignature и ServerTokens
  • [ ] Права на /var/www/ корректны
  • [ ] Настроен ротатор логов (logrotate уже включён по умолчанию)
  • [ ] Резервная копия /etc/apache2/ создана
  • [ ] Мониторинг подключён (Prometheus, Zabbix, или apachectl status)