Данную статью можно рассматривать как руководство по настройке debian web server. Мы настроим веб-сервер на VDS, работающем под управлением дистрибутива Debian.
Установка Apache
Apache — это программное обеспечение, реализующее функцию веб-сервера. Установить Apache можно следующей командой:
# apt install apache2

Установка Apache
Кроме Apache нужно установить еще и веб-браузер, поскольку нам нужно проверять работу веб-сервера:
# apt install w3m
После установки браузера введите команду:
# w3m 127.0.0.1
Вы должны увидеть страничку, изображенную ниже.

It works!
Для выхода из браузера нажмите q, а затем введите y для подтверждения выхода.
Настройка debian web server
После установки веб-сервера Debian можно приступить к его настройке. Веб-сервер редко используется для размещения одного сайта. Скорее всего, сайтов будет несколько. Далее будет показано, как создать два виртуальных узла — example1.com и example2.com. Чтобы не заморачиваться с настройкой DNS (это тема для отдельной статьи), добавьте в /etc/hosts строки:
127.0.0.1 www.example1.com
27.0.0.1 www.example2.com
Создайте пользователя hosting, в домашнем каталоге которого будут находиться файлы обоих сайтов:
# adduser hosting

Создание пользователя
Войдите как этот пользователь:
# su hosting
В домашнем каталоге пользователя создайте следующую структуру:
cd ~
mkdir www
mkdir www/example1
cd example1
mkdir htdocs
mkdir cgi-bin
mkdir logs
cd ~
cp -R www/example1 www/example2
exit
Если облака для вас
не просто теория
Широкий спектр услуг
по выделенным северам
и мультиклауд-решениям
Конфигурация VPS и бесплатный тест уже через 2 минуты
Организация вашей IT-инфраструктуры на основе мультиклауд-решения
Мы создаем директорию веб-сервера, в ней два подкаталога — для каждого из сайтов. В каждом из них, в свою очередь, мы создаем каталоги htdocs, cgi-bin и logs. Первый будет содержать файлы конкретного сайта, второй — CGI-приложения, а третий — журналы. Теперь перейдем непосредственно к настройке веб-сервера. Начнем с ports.conf:
# nano /etc/apache2/ports.conf
Он должен выглядеть так, как показано на иллюстрации ниже. Директива NameVirtualHost *:80 нужна, чтобы на стандартном порту 80 можно было использовать виртуальные узлы, которые мы определим далее.

Файл /etc/apache2/ports.conf
Нажмите Ctrl + O, а затем — Ctrl + X — для сохранения и выхода из редактора.
Перейдите в директорию sites-available. В ней нужно создать два конфига конфигурации — для каждого из наших виртуальных узлов:
# cd /etc/apache2/sites-available
# nano example1.conf
# nano example2.conf
Далее будет приведена конфигурация для первого узла. Для второго она будет аналогичной, отличаться будут только пути (вместо X укажите номер узла — 1 или 2):
<VirtualHost *:80>
ServerAdmin hosting@localhost
ServerName www.exampleX.com
ServerAlias exampleX.com
# Путь к индексным файлам
DirectoryIndex index.html
DocumentRoot /home/hosting/www/exampleX/htdocs/
# Путь к CGI
ScriptAlias /cgi-bin/ /home/hosting/www/exampleX/cgi-bin
<Location /cgi-bin>
Options +ExecCGI
</Location>
# Путь к файлам логов
ErrorLog /home/hosting/www/exampleX/logs/error.log
CustomLog /home/hosting/www/exampleX/logs/access.log combined
</VirtualHost>
Далее нужно создать индексные файлы для каждого из сайтов, чтобы проверить их работоспособность:
su hosting
cd /home/hosting/www
echo "example1.com works" > example1/htdocs/index.html
echo "example2.com works" > example2/htdocs/index.html
exit
Осталось активировать созданные виртуальные узлы и перезапустить веб-сервер. Чтобы активировать узлы, нужно создать ссылку на конфиг из каталога sites-available в каталоге sites-enabled:
# cd /etc/apache2/sites-available
# ln -s example1.conf /etc/apache2/sites-enabled/example1.conf
# ln -s example2.conf /etc/apache2/sites-enabled/example2.conf
Осталось перезапустить Apache:
# systemctl restart apache2.service
Подключимся к первому узлу:
# w3m www.example1.com
Если вы все сделали правильно, вы должны увидеть индексный файл для первого сайта. Аналогично все должно работать и для второго.

Первый открылся :)
На этом все. Настройка Apache и виртуальных узлов завершена.