Теперь приступим к установке apache. В CentOS 7 это делается очень просто:

# yum install -y httpd

Добавляем apache в автозагрузку:

# systemctl enable httpd

Запускаем apache в CentOS 7:

# systemctl start httpd

Проверяем, запустился ли сервер:

# netstat -tulnp | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      21586/httpd

Все в порядке, повис на 80-м порту, как и положено.

Теперь нужно открыть 80-й порт в iptable.

Уже сейчас можно зайти по адресу http://ip-address и увидеть картинку:

Теперь займемся настройкой apache. Я предпочитаю следующую структуру веб хостинга:

/web раздел для размещения сайтов
/web/site1.ru/www директория для содержимого сайта
/web/site1.ru/logs директория для логов сайта

Создаем подобную структуру:

# mkdir /web && mkdir /web/site1.ru && mkdir /web/site1.ru/www && mkdir /web/site1.ru/logs

или

# mkdir -p /web/site1.ru/{www,logs}/
# chown -R apache. /web

Дальше редактируем файл конфигурации apache — httpd.conf по адресу /etc/httpd/conf. Первым делом проверим, раскомментированна ли строчка в самом конце:

IncludeOptional conf.d/*.conf

Если нет, раскомментируем и идем в каталог /etc/httpd/conf.d. Создаем там файл site1.ru.conf:

# mcedit /etc/httpd/conf.d/site1.ru.conf
<VirtualHost *:80>
 ServerName site1.ru
 ServerAlias www.site1.ru
 DocumentRoot /web/site1.ru/www
 <Directory /web/site1.ru/www>
 Options FollowSymLinks
 AllowOverride All
 Require all granted
 </Directory>
 ErrorLog /web/site1.ru/logs/error.log
 CustomLog /web/site1.ru/logs/access.log common
</VirtualHost>

Перезапуск apache в centos

Теперь делаем restart apache:

# systemctl restart httpd

Если возникли какие-то ошибки — смотрим лог apache /var/log/httpd/error_log. Если все в порядке, то проверим, нормально ли настроен наш виртуальный хост. Для этого создадим в папке /web/site1.ru/www файл index.html следующего содержания:

# mcedit /web/site1.ru/www/index.html
<h1>Апач настроен!</h1>
# chown apache. /web/site1.ru/www/index.html

Дальше в винде правим файл hosts, чтобы обратиться к нашему виртуальному хосту. Добавляем туда строчку:

192.168.1.5 site1.ru

где 192.168.1.5 ip адрес нашего веб сервера.

Теперь в браузере набираем адрес http://site1.ru. Если видим картинку:

значит все правильно настроили. Если какие-то ошибки, то идем смотреть логи. Причем в данном случае не общий лог httpd, а лог ошибок конкретного виртуального хоста по адресу /web/site1.ru/logs/error.log.

Сразу же обращу ваше внимание на настройку ротации логов виртуальных хостов. Частенько бывает, что если сразу не настроишь, потом забываешь. Но если сайт с хорошей посещаемостью, то логи будут расти стремительно и могут занять очень много места. Лучше настроить ротацию логов веб сервера сразу же после создания. Сделать это не сложно.

Чтобы настроить ротацию логов виртуальных хостов, необходимо отредактировать файл /etc/logrotate.d/httpd. Он создается во время установки apache и включает в себя настройку ротации стандартного расположения логов. А так как мы перенесли логи каждого виртуального хоста в индивидуальную папку, необходимо добавить эти папки в этот файл:

# mcedit /etc/logrotate.d/httpd
/web/*/logs/*.log
/var/log/httpd/*log {
 missingok
 notifempty
 sharedscripts
 delaycompress
 postrotate
 /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
 endscript
}

Мы добавили одну строку в самое начала файла. Теперь логи всех виртуальных хостов в папке /web будут ротироваться по общему правилу.

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