Главная
|
Услуги и цены
VDS
Выделенные серверы
Размещение сервера
|
F.A.Q
|
О компании
|

Настройка Apache на VDS с CentOS. Базовое руководство по установке и конфигурации

Apache остаётся одним из самых стабильных и понятных веб-серверов. Он не требует глубоких знаний, а базовой настройки достаточно, чтобы запустить сайт или backend-приложение.

Если вы только купили сервер:
Подключитесь к серверу
Выполните подготовку сервера к работе

  • 1. Установка Apache на CentOS
  • 2. Проверка работы Apache
  • 3. Как устроена конфигурация Apache
  • 4. Создание своего первого виртуального хоста
  • 5. Настройка Firewall (если он включён)
  • 6. SELinux
  • 7. Полезные команды
  • 8. Включение популярных модулей
  • 9. Что делать, если Apache не работает

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

В CentOS для установки программ используется пакетный менеджер dnf.

Обновляем систему

Если вы работаете от пользователя root, то в командах не нужно использовать sudo

sudo dnf upgrade -y

Эта команда обновляет установленные пакеты до актуальных версий.

Устанавливаем Apache

В CentOS пакет Apache называется httpd.

sudo dnf install httpd -y

После установки необходимо запустить Apache и добавить его в автозагрузку:

sudo systemctl enable --now httpd

Чтобы убедиться, что сервер работает:

sudo systemctl status httpd
Проверка состояния Apache на CentOS

Если всё прошло успешно, вы увидите статус active (running).

Подробнее о systemctl можно узнать из статьи: Как перезапустить сервис в Linux

2. Проверка работы Apache

Чтобы убедиться, что сервер отвечает, откройте в браузере:

http://IP_вашего_сервера
Проверка работы Apache через браузер

Если появилась стандартная страница Apache — установка выполнена успешно.

Также можно проверить, что Apache действительно слушает порт 80:

sudo ss -tulpn | grep :80

Если порт занят другим процессом, проверьте, не запущен ли другой веб-сервер или Docker-контейнер.

3. Как устроена конфигурация Apache

Основные директории:

  • /etc/httpd/conf/httpd.conf — главный конфигурационный файл.
  • /etc/httpd/conf.d/ — дополнительные конфигурации виртуальных хостов.
  • /var/www/ — директория, где обычно размещаются сайты.
  • /var/log/httpd/ — журналы работы Apache.

В отличие от Ubuntu, каталогов sites-available и sites-enabled здесь нет. Обычно для каждого сайта создают отдельный .conf файл в каталоге /etc/httpd/conf.d/.

4. Создание своего первого виртуального хоста

Виртуальный хост это конфигурация отдельного сайта.
Даже если у вас только один домен, лучше сразу использовать отдельный конфигурационный файл.

Создаём директорию проекта

Например, ваш домен — myproject.com.

sudo mkdir -p /var/www/myproject
sudo chown -R $USER:$USER /var/www/myproject

Смена владельца нужна, чтобы можно было редактировать файлы без постоянного использования sudo.

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

sudo nano /etc/httpd/conf.d/myproject.conf

Как работать с nano писали в статье: Основы работы с редактором nano: команды, сохранение, выход

Вставьте:

<VirtualHost *:80>
    ServerName 147.45.113.2 # замените на свой домен или ip

    DocumentRoot /var/www/myproject

    <Directory /var/www/myproject>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog /var/log/httpd/myproject_error.log
    CustomLog /var/log/httpd/myproject_access.log combined
</VirtualHost>

Вместо домена можно указать IP-адрес сервера, если настройка выполняется для тестов или разработки.

  • DocumentRoot указывает, где находятся файлы сайта.
  • AllowOverride All разрешает использование .htaccess, что необходимо для большинства CMS.
  • Отдельные журналы помогают быстрее искать ошибки.

Проверяем конфигурацию

sudo apachectl configtest

Если увидите:

Syntax OK
Проверка конфигурации Apache на CentOS

можно применять изменения.

Перезагружаем Apache

sudo systemctl reload httpd

reload перечитывает конфигурацию без остановки сервера, поэтому действующие сайты продолжают работать.

Теперь при открытии домена или IP-адреса будет отображаться ваш сайт.

5. Настройка Firewall (если он включён)

В CentOS вместо UFW обычно используется firewalld.

Проверяем его состояние:

sudo systemctl status firewalld

Если сервис работает, разрешаем HTTP:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

Если планируете использовать HTTPS:

sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

Если используется другой файрвол, откройте порты удобным для него способом.

Про iptables подробнее писали в статье: https://62yun.ru/blog/article/iptables-open-close-port

6. SELinux

В CentOS по умолчанию включён SELinux, который может запретить Apache доступ к файлам сайта даже при правильных правах.

Проверить его состояние:

getenforce

Если вывод:

Enforcing

назначьте правильный контекст безопасности:

sudo chcon -R -t httpd_sys_content_t /var/www/myproject

Чтобы настройки сохранились после перезагрузки:

sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/myproject(/.*)?"
sudo restorecon -Rv /var/www/myproject

Если команда semanage отсутствует, установите пакет:

sudo dnf install policycoreutils-python-utils -y

7. Полезные команды

Проверка конфигурации

sudo apachectl configtest

Если увидите Syntax OK, конфигурация корректна.

Перечитать конфигурацию

sudo systemctl reload httpd

Полный перезапуск

sudo systemctl restart httpd

Просмотр журнала ошибок

sudo tail -f /var/log/httpd/error_log

Подробнее:
Где и как смотреть логи в Linux — команды journalctl, tail и logrotate

8. Включение популярных модулей

В отличие от Ubuntu, большинство модулей Apache в CentOS уже установлены и подключаются через отдельные файлы конфигурации.

Проверить загруженные модули

sudo httpd -M

Включить SSL

Установите пакет:

sudo dnf install mod_ssl -y

После установки перезапустите Apache:

sudo systemctl restart httpd

9. Что делать, если Apache не работает

  1. Проверить конфигурацию:
sudo apachectl configtest
  1. Посмотреть журнал ошибок:
sudo tail -f /var/log/httpd/error_log
  1. Проверить, свободен ли порт 80:
sudo ss -tulpn | grep :80
  1. Проверить настройки SELinux:
getenforce
  1. Убедиться, что firewall не блокирует подключения.

В большинстве случаев одна из этих проверок позволяет быстро найти причину проблемы.

logo
© 2022 62yun
Все права защищены
vk.com/62yuncom
support@62yun.ru
logo
vk.com/62yuncom
support@62yun.ru
Услуги
VDS Выделенные серверы
Полезное
F.A.Q О компании Политика конфиденциальности Оферта
Способы оплаты
wechatpay visa mastercard
MirAccept
Партнеры
25port
© 2022 62yun Все права защищены
ВВЕРХ