В статье рассмотрим:
- установку Apache на Ubuntu;
- структуру конфигураций и модулей;
- создание виртуальных хостов;
- индексы и корневую директорию сайта;
- права доступа и владельцев файлов;
- включение mod_rewrite;
- ошибки 403, 404, 500, AH00558;
- логи и управление сервисом.
Установка Apache на Ubuntu
Обновляем пакеты и устанавливаем сервер:
sudo apt update
sudo apt install -y apache2
Если Nginx уже занимал порт 80, Apache выдаст ошибку Address already in use. В этом случае остановите Nginx:
sudo systemctl stop nginx
sudo systemctl disable nginx
sudo systemctl start apache2
Проверяем статус сервиса:
sudo systemctl status apache2
Проверяем ответ сервера:
curl http://127.0.0.1
Структура конфигурации Apache
/etc/apache2/
├── apache2.conf # основной конфиг
├── ports.conf # настройки портов
├── sites-available/ # доступные сайты
├── sites-enabled/ # активные сайты
├── mods-available/ # доступные модули
├── mods-enabled/ # включённые модули
└── conf-available/ # дополнительные настройки
Сайты включаются через a2ensite, и оказываются в sites-enabled/.
Создание виртуального хоста Apache
Создадим сайт myproject.com:
sudo nano /etc/apache2/sites-available/myproject.com.conf
Минимальная конфигурация:
<VirtualHost *:80>
ServerName myproject.com
ServerAlias www.myproject.com
DocumentRoot /var/www/myproject.com
<Directory /var/www/myproject.com>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/myproject-error.log
CustomLog ${APACHE_LOG_DIR}/myproject-access.log combined
</VirtualHost>
Создаём корневую папку сайта:
sudo mkdir -p /var/www/myproject.com
Добавляем тестовый файл:
echo 'Сайт работает!
' | sudo tee /var/www/myproject.com/index.html
Включение сайта и проверка конфигурации
Активируем виртуальный хост:
sudo a2ensite myproject.com.conf
Отключаем стандартный сайт:
sudo a2dissite 000-default.conf
Проверяем конфигурацию:
sudo apachectl configtest
Перезагружаем сервер:
sudo systemctl reload apache2
Права доступа и владелец файлов
Apache работает от пользователя www-data:
sudo chown -R www-data:www-data /var/www/myproject.com
sudo chmod -R 755 /var/www
Ошибка 403 Forbidden часто связана именно с правами.
Включение mod_rewrite (для WordPress/Bitrix)
sudo a2enmod rewrite
sudo systemctl restart apache2
В конфигурации сайта обязательно должно быть:
AllowOverride All
Настройки DirectoryIndex
sudo nano /etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.htm
</IfModule>
Типичные ошибки Apache
1. Ошибка 403 Forbidden
- неверный владелец файлов;
- права 700 вместо 755;
- нет
Require all granted;
2. Ошибка 404 Not Found
- неправильный DocumentRoot;
- файл отсутствует;
- ошибка пути.
3. Ошибка 500 Internal Server Error
Чаще всего — ошибка в .htaccess:
sudo tail -f /var/log/apache2/error.log
4. Ошибка AH00558
Решение:
sudo nano /etc/apache2/apache2.conf
ServerName localhost
Логи Apache
/var/log/apache2/access.log
/var/log/apache2/error.log
sudo tail -f /var/log/apache2/error.log
Управление сервисом Apache
sudo systemctl restart apache2
sudo systemctl reload apache2
sudo systemctl enable apache2
sudo systemctl stop apache2
reload — перезагрузка конфигурации без остановки сервиса.
Итоги
- Установили Apache и отключили Nginx, чтобы избежать конфликта портов.
- Разобрали структуру конфигураций сервера.
- Создали виртуальный хост и тестовый сайт.
- Настроили права доступа и mod_rewrite.
- Изучили типичные ошибки и работу с логами.
Вывод: Apache — мощный и надёжный веб-сервер, особенно подходящий для PHP-проектов и классических CMS. При правильной настройке виртуальных хостов и модулей он обеспечивает стабильную работу любых сайтов на VPS.