Настройка Аpache на Debian

12 Ноября 2018

Данную статью можно рассматривать как руководство по настройке debian web server. Мы настроим веб-сервер на VDS, работающем под управлением дистрибутива Debian.

Установка Apache

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

# apt install apache2 

1.png

Установка Apache 

Кроме Apache нужно установить еще и веб-браузер, поскольку нам нужно проверять работу веб-сервера:

 # apt install w3m 

После установки браузера введите команду: 

# w3m 127.0.0.1

Вы должны увидеть страничку, изображенную ниже. 

2.png

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 

3.png

Создание пользователя 

Войдите как этот пользователь: 

# 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 можно было использовать виртуальные узлы, которые мы определим далее. 

4.png

Файл /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 

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

5.png

Первый открылся :)

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

Получить консультацию специалиста