Теперь приступим к установке 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.