Ubuntu настройка виртуальных хостов apache – История создания домашнего облака. Часть 2. Создание сервера — настройка LAMP в Debian

Содержание

Настройка виртуальных хостов Apache на Ubuntu 16.04

Вступление

Веб-сервер Apache является наиболее популярным способом размещения веб-контента в Интернете. Более половины всех активных сайтов во всем мире используют именно его, так как Apache это крайне мощный и гибкий инструмент размещения веб-контента.

Apache разбит на отдельные блоки, каждый из которых отвечает за свою конкретную задачу и может быть настроен независимо от остальных блоков.  Базовый блок, отвечающий за организацию использования доменов на вашем сервере, называется virtual host.

Virtual host позволяет администратору размещать несколько доменов или сайтов на одном сервере и одном ip-адресе. Это актуально для тех, кто желает размещать несколько сайтов на одном VPS.

Каждому домену, который вы настроите, будет присвоена своя отдельная директория на вашем сервере и посетители, попавшие на ваш сайт через разные домены, никогда не пересекутся и даже не будут знать, что на этом ip-адресе размещаются какие-либо другие сайты. Данная схема может включать неограниченное количество доменов, поддоменов и сайтов на них, возможности ограничены лишь мощностью железа , на котором установлен Apache.

В этой статье вы научитесь настраивать Virtual hosts в системе Ubuntu 16.04 и предоставлять разным пользователям различное содержимое, в зависимости от домена, который они указали в адресной строке.

 

Подготовка

Прежде чем начать выполнять действия, описанные в этой статье, крайне рекомендуется создать  пользователя с Root-привилегиями, если вы этого еще не сделали. Как это сделать вы можете прочитать в этой статье, выполнив шаги №1-4.

Кроме того, у вас должен быть установлен веб-сервер Apache2. Если вы этого еще не сделали, установите его выполнением следующих команд:

sudo apt-get update
sudo apt-get install apache2

После выполнения вышеперечисленных шагов, мы можем начинать.

Для наглядности, в данном руководстве будут созданы виртуальные хосты для доменов

example.com и test.com.  В процессе всей статьи эти домены будут использованы во всех командах и конфигурационных файлах, когда же вы будете настраивать свой сервер, вы должны будете заменить эти два домена на те, что хотите использовать вы.

Если у вас еще нет доменов или вы какой-либо причине не хотите привязывать их к вашему VPS, в шестом шаге данного руководства есть инструкции, как можно эмулировать использование доменов при помощи файла hosts.

 

Шаг первый – Создаём дерево директорий

Первое, что вы должны сделать – это подготовить директории для ваших доменов. Корневая директория Apache находится по адресу /var/www  и именно тут мы будем создавать каталоги для каждого из доменов, которые хотим использовать.  В каждом из этих каталогов мы создадим папку public_html, где будем размещать файлы наших сайтов.

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

sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html

Красным цветом выделены домены, которые вы собираетесь обслуживать при помощи вашего VPS.

 

Шаг второй – назначение прав доступа

Мы создали структуру каталогов для наших доменов, но на данном этапе доступ к этим каталогам есть только у root пользователя. Если мы хотим, чтобы обычный пользователь имел возможность изменять файлы, мы должны настроить права доступа, выполнив следующие команды:

sudo chown -R $USER:$USER /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/test.com/public_html

Переменная $USER принимает значение имени пользователя, под которым вы сидите в данный момент, сразу после нажатия кнопки Enter. Таким образом, после выполнения данных команд владельцем директорий public_html, в которых вы будете хранить контент ваших сайтов, назначается наш текущий пользователь.

Помимо полного права доступа для текущего пользователя, вы должны быть убеждены что все ваши веб-папки открыты для чтения «для всех», это необходимо для корректной обработки запросов и отображения сайтов:

sudo chmod -R 755 /var/www

Теперь наш сервер имеет необходимые права доступа для показа контента посетителям, а наш пользователь может создавать и изменять этот контент в директориях.

 

Шаг третий – создание тестовых страниц для каждого виртуального хоста

Мы создали структуру директорий и настроили права на них. Пришло время размещать контент.
На данном этапе нам нужно будет лишь убедиться, что все правильно настроено и работает, поэтому ограничимся простенькими файлами index.html для каждого хоста.
Давайте начнем с example.com. Вы можете создать index.html и открыть его в текстовом редакторе, выполнив команду:

nano /var/www/example.com/public_html/index.html

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

<html> <head> <title>Добро пожаловать на Example.com!</title> </head> <body> <h2>Работает! Виртуальный хост example.com настроен правильно!</h2> </body> </html>

Сохраните и закройте файл.
Сделаем копию только что созданного файла, чтобы использовать её в качестве базы для аналогичного файла домена test.com:

cp /var/www/example.com/public_html/index.html /var/www/test.com/public_html/index.html

Откроем копию файла и изменим в ней несколько значений:

nano /var/www/test.com/public_html/index.html
<html>
  <head>
    <title>Добро пожаловать на Test.com!</title>
  </head>
  <body> <h2>Работает!  Виртуальный хост test.com настроен правильно!</h2>
  </body>
</html>

Сохраните и закройте файл. Теперь у нас есть страницы для проверки работы Виртуальных хостов.

 

Шаг четвёртый – создание конфигурационных файлов виртуальных хостов

Конфигурационные файлы виртуальных хостов – это такие файлы, в которых прописано, как должен вести себя Apache при запросах на различные домены.
По умолчанию в Apache уже существует один такой файл – 000-default.conf, мы можем воспользоваться им в качестве образца и отправной точки.
Нам предстоит скопировать 000-default.conf для первого домена, настроить его под наши нужды, после чего скопировать уже измененный файл и настроить его под второй домен, внеся небольшие поправки. Стоит отметить, что все названия конфигурационных файлов виртуальных хостов в Ubuntu должны заканчиваться на .conf

 

Создадим первый конфигурационный файл

Начнем с копирования файла 000-default.conf для нашего первого домена:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf

Откройте новый файл в текстовом редакторе с привилегиями root пользователя:

sudo nano /etc/apache2/sites-available/example.com.conf

Вы должны увидеть приблизительно следующую картину (комментарии удалены из файла для повышения наглядности):

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Как вы можете видеть, структура конфига довольно проста. Мы изменим несколько параметров, а также добавим несколько своих, чтобы этот файл описывал наш первый домен. Благодаря этому файлику будут обрабатываться любые запросы, поступившие на 80 порт – стандартный порт HTTP-запросов.

Для начала изменим параметр ServerAdmin, поместим туда адрес электронной почты, на которую администратор сайта будет получать сообщения:

ServerAdmin [email protected]

После этого вы должны добавить два параметра. Первый,

ServerName, определяет домен, запросы на который будет обрабатывать данный виртуальный хост. Второй, ServerAlias, определяет дополнительные имена вашего сайта, которые будут обрабатываться точно также как основной домен. Это полезно, например, для сопоставления вашего основного и www.*** домена.

ServerName example.com
ServerAlias www.example.com

Последняя вещь, которую нам нужно изменить в базовом конфигурационном файле, это параметр DocumentRoot, определяющий расположение директории, из которой будет грузиться наш сайт. Вы уже создали нужные директории в первом шаге нашего руководства, так что запишем нужный адрес в файл:

DocumentRoot /var/www/example.com/public_html

После проведенных манипуляций наш файл должен выглядеть примерно так:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Сохраним и закроем его.

Скопируем первый Виртуальный Хост и настроим его для обработки второго домена

Теперь, когда первый конфигурационный файл готов, мы можем скопировать его и настроить под второй домен.

sudo cp /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-available/test.com.conf

Откроем новый файл с привилегиями root:

sudo nano /etc/apache2/sites-available/test.com.conf

Теперь мы должны изменить все параметры, настроив их под второй домен. Должно получится что-то вроде этого:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName test.com
    ServerAlias www.test.com
    DocumentRoot /var/www/test.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Когда закончите, сохраните и закройте файл.

 

Шаг пятый – активация виртуальных хостов

Теперь, когда мы создали конфигурационные файлы хостов, необходимо их активировать. Apache располагает несколькими инструментами, которые позволяют проводить операции по активации и деактивации хостов.

Используйте инструмент a2ensite для активации ваших хостов. Пример использования:

sudo a2ensite example.com.conf
sudo a2ensite test.com.conf

После выполнения данных команд, необходимо отключить стандартный хост:

sudo a2dissite 000-default.conf

Чтобы изменения вступили в силу, необходимо перезапустить Apache:

sudo systemctl restart apache2

Для перезапуска вы также можете использовать другую команду:

sudo service apache2 restart

Эта команда также сработает, но вы можете не получить результат если попробуете использовать её в других дистрибутивах, в отличии от systemctl.

 

Шаг шестой – настройка файла hosts (не обязательно)

Если вы настроили ваши виртуальные хосты для реально существующих доменов и настроили DNS так, чтобы запросы на домены перенаправлялись на ваш сервер, то все хорошо. Если же у вас еще нет доменов или же вы по какой-то причине пока что не хотите прицеплять их к вашему серверу, вы можете использовать файл hosts вашего локального компьютера, чтобы имитировать переход через нужный домен для проверки работы virtual host.
При выполнении описанных ниже действий запросы на определенные домены с вашего локального компьютера будут перехватываться и принудительно перенаправляться на ip-адрес вашего VPS, в обход DNS-серверов. При этом данные перенаправления будут обрабатываться исключительно для вашего локального компьютера, что очень удобно для тестирования различных систем на этапе создания сайтов, в том числе для тестирования virtual host.

Убедитесь что вы настраиваете локальный компьютер, а не VPS. У вас должны быть права администратора или вы должны знать пароль от учетной записи администратора для внесения изменений в файл hosts. Если вы используете операционную систему семейства Linux или Mac, выполните следующую команду:

sudo nano /etc/hosts

Если вы используете операционную систему Windows, вы найдете файл hosts по адресу:

C:\Windows\System32\drivers\etc\hosts

В системе Windows данный файл скрыт и является системным, возможно вам придется включить отображение скрытых и системных файлов в настройках папок.

Вы должны добавить в файл домены, которые использовали в данном руководстве и публичный ip-адрес вашего VPS. Для доменов, которые использовал я, при условии что ip-адрес моего VPS 111.111.111.111 записи, которые необходимо добавить, будут выглядеть так:

 

127.0.0.1   localhost
111.111.111.111 example.com
111.111.111.111 test.com

Сохраните и закройте файл. Теперь все запросы на домены example.com и test.com будут автоматически перенаправляться на наш VPS 111.111.111.111 и обрабатываться виртуальными хостами так, как если бы мы использовали реальные домены.

 

Шаг седьмой – проверка работоспособности

Теперь все настроено и вы можете проверить работу Virtual hosts, введя в адресую строку вашего браузера examle.com. Если всё хорошо, вы увидите следующую страницу:

Аналогично, при запросе к домену test.com вы увидите соответствующую страницу:

Если обе страницы открываются нормально, можно считать что на вашем сервере настроены и исправно работают два виртуальных хоста. Если вы вносили изменения в файл hosts, можете удалить их чтобы не засорять системные настройки ненужной информацией.

 

Заключение

Если вы внимательно выполнили все пункты данного руководства, то ваш сервер успешно настроен на работу двух виртуальных хостов. Вы можете продолжить и, повторив все пункты, добавить столько доменов, сколько считаете необходимым. Можете не стесняться, Apache не имеет программных ограничений на количество virtual hosts, количество доменов и сайтов, которые может обрабатывать сервер, ограничено лишь техническими возможностями железа, на котором установлен Apache.

 

Перевод статьи Digitalocean community. Автор оригинальной статьи Brennen Bearnes.

Понравилось? Сохрани к себе

Настройка VDS на Ubuntu 14.04. Часть 6. Установка и настройка APACHE – База знаний Timeweb Community

Мы продолжаем рассказывать о пошаговой настройке VDS с операционной системой Ubuntu 14.04. 

Предыдущая статья нашего цикла была посвящена веб-серверу Nginx, а сегодня мы поговорим об Apache.

Наряду с Nginx, Apache является одним из самых распространенных веб-серверов в мире и демонстрирует свою надежность уже не один десяток лет. Впрочем, подробнее о нем мы уже рассказывали в одной из предыдущих статей.

Для начинающих администраторов Apache может стать даже более подходящим выбором, чем его альтернативы — являясь гибким и мощным инструментом, Apache при этом достаточно прост в настройке и использовании.

 

 

Установка Apache

Для того, чтобы установить веб-сервер Apache, мы будем использовать менеджер пакетов Ubuntu apt:


$ sudo apt-get update
$ sudo apt-get install apache2

После завершения установки введите в адресной строке браузера IP-адрес Вашего сервера. Если установка прошла успешно, Вы увидите стандартное приветственное окно Apache:

749ae83383dd.pngНа этом же этапе можно установить дополнительные необходимые модули.
Например, если Вам в дальнейшем потребуются инструменты для анализа работы сервера, рекомендуем установить модуль utils — он содержит полезные утилиты для тестирования и администрирования сервера.


$ sudo apt-get install apache2-utils

Если Вам будет необходимо разделять права между пользователями, рекомендуем также установить модуль mpm-itk. При этом нужно будет настроить дополнительные параметры виртуальных хостов — информацию об этом Вы можете найти в открытых источниках сети.

В рамках данной инструкции мы не будем касаться установки и настройки данного модуля.

Для работы сервера с различными языками программирования (а также для расширения функционала сервера) можно установить библиотеки.

Если Ваш сайт использует PHP, необходимая библиотека устанавливается следующим образом:


$ sudo apt-get install libapache2-mod-php5

При использовании python полезно расширение libapache2-mod-wsgi;
при использовании Rails and Rack — libapache2-mod-passenger.

Установка происходит аналогичным образом — просто замените наименование библиотеки в команде.

Теперь перейдем к непосредственной настройке Apache.

Настройка виртуальных хостов

Важной особенностью Apache является возможность создания виртуальных хостов, настраиваемых независимо друг от друга, что позволяет размещать на VDS-сервере сразу несколько сайтов. За конфигурацию каждого сайта будет отвечать конкретный виртуальный хост.

Даже если на начальном этапе Вы планируете размещать только один сайт на сервере, мы рекомендуем в любом случае использовать виртуальные хосты. Это обеспечит Вам удобство администрирования и обслуживания Вашего проекта, а в дальнейшем и легкость расширения при необходимости.

По умолчанию Apache содержит стандартный файл конфигурации 000-default.conf, который хранится в директории /etc/apache2/sites-available.

Файлы наших виртуальных хостов будут храниться здесь же, и мы сформируем их на основе 000-default.conf.

Однако сначала мы отключим стандартный файл конфигурации командой:


$ sudo a2dissite 000-default

Теперь скопируем его содержимое в файл, который будет содержать настройки Вашего сайта.

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


$ sudo cp /etc/apache2/sites-available/000-default.conf 
/etc/apache2/sites-available/site1.conf

Далее нам нужно отредактировать конфигурационный файл. Откроем его командой:


$ sudo nano /etc/apache2/sites-available/site1.conf

Приведем содержимое файла к следующему виду:


<VirtualHost *:80>
 ServerName site1.com 
 DocumentRoot /var/www/site1/public_html

<Directory /var/www/site1/public_html>
 AllowOverride All
 Require all granted
 </Directory>

ErrorLog /var/www/site1/error.log
 CustomLog /var/www/site1/access.log combined
</VirtualHost>

Поясним приведенные выше параметры.

Блок <VirtualHost> включает в себя набор директив, задающих настройки для конкретного виртуального хоста.

Имя этого хоста Вы указали в параметре ServerName — полное доменное имя Вашего сайта.

Далее следует директива DocumentRoot — она задает путь до директории, в которой хранятся файлы сайта site1 (все необходимые директории мы создадим позже).

Следующий параметр — блок <Directory>. Он задает настройки, которые будут применены для конкретной папки.

В данном случае:

  • AllowOverride All — разрешение допускать настройки, заданные в .htaccess;
  • Require all granted — доступ к каталогу разрешен всем.

В параметре ErrorLog мы указали расположение файла с логами ошибок.

В CustomLog — расположение файла с логами доступа.

Этого набора директив достаточно для функционирования виртуального хоста, хотя список не является исчерпывающим. Дополнительно могут указываться, например, ServerAdmin (e-mail администратора сервера), ServerAlias (альтернативное имя сайта), AssignUserID (пользователь; настройка этого параметра необходима при использовании mpm-itk) и др. Со списком всех возможных директив и их описанием можно ознакомиться на сайте Apache (информация на английском языке).

После указания всех необходимых параметров закройте файл, сохранив изменения.

Далее мы создадим все необходимые папки, которые мы прописали в конфигурационном файле, и установим права на них:


$ sudo mkdir /var/www/site1/
$ sudo chown www-data:www-data /var/www/site1/
$ sudo mkdir /var/www/site1/public_html
$ sudo chown www-data:www-data /var/www/site1/public_html

На этом этапе настройка виртуального хоста завершена, но желательно, конечно, проверить корректность его работы.
Для этого рекомендуем Вам создать index-файл в директории public_html:


$ nano /var/www/site1/public_html/index.html

Внесите в него любой самый простой html-код для проверки и сохраните документ.
Например:


<html>
 <head>
 <title>Удалось!</title>
 </head>
 <body>
 <h2>Виртуальный хост работает!</h2>
 </body>
</html>

Далее включите сайт следующей командой:

И выполните перезагрузку Apache:


$ sudo service apache2 restart

Теперь необходимо ввести в браузере адрес сайта, виртуальный хост для которого Вы настраивали. Если все работает, как нужно, на экране будет отражено содержимое созданного Вами индексного файла.
Надеемся, все получилось 🙂

Модули Apache

Apache имеет множество разнообразных модулей, с помощью которых можно расширять его функциональность.

Список доступных модулей можно просмотреть в директории /etc/apache2/mods-available

Список уже включенных модулей — в директории /etc/apache2/mods-enabled

Перейти в директорию можно командой cd, например:


$ cd /etc/apache2/mods-enabled

 

Чтобы просмотреть содержимое текущего каталога, наберите:


$ ls

Для включения и выключения нужных Вам модулей используйте команды a2enmod и a2dismod.

Например, Вы можете включить CGI-скрипты следующей командой:

С информацией о каждом модуле можно ознакомиться на сайте Apache.

Команды для управления сервером Apache

Для запуска веб-сервера используйте команду:


$ sudo service apache2 start

Для перезагрузки:


$ sudo service apache2 restart

Если Вам требуется сделать «мягкую» перезагрузку, то есть перезапуск без завершения всех процессов, вводите:


$ sudo service apache2 reload

Для остановки веб-сервера существует следующая команда:


$ sudo service apache2 stop

Мы надеемся, что информация в этой статье оказалась для Вас полезной и помогла справиться с установкой и настройкой веб-сервера Apache.

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

Как настроить virtual hosts в Apache на Ubuntu 16.04

Веб сервер Apache наиболее популярный веб сервер для размещения сайтов в интернете. Хорошо, когда на одном сервере или VPS всего один сайт, а когда их несколько? Для этого нужно настроить virtual hosts Apache.

Настройка virtual hosts Apache наиболее востребована в случае если вы решили перейти с shared-hosting на свой, например VPS.

Виртуальные хосты (virtual hosts) позволяют администратору использовать один сервер для размещения нескольких сайтов (в рамках одного интерфейса или IP-адреса). Каждый домен, настроенный таким образом, будет направлять посетителя на соответствующий сайт. Количество виртуальных хостов на одном сервере ограничивается исключительно ресурсами этого сервера.

Данное руководство поможет настроить виртуальные хосты (virtual hosts Apache) на VPS с  Ubuntu 16.04, что позволит размещать любое количество своих сайтов.

 Условия

 

В данном примере будем настраивать virtual hosts для двух вымышленных доменов test.com и virtual.com (Не забудьте поменять их на свои домены).

Шаг № 1 Установка веб сервера Apache

Для установки выполним следующие команды:

sudo apt update sudo apt install apache2

sudo apt update

sudo apt install apache2

Шаг № 2 Настройка директорий для виртульнных хостов (virtual hosts)

По умолчанию веб сервере apache настроен на просмотр основной директории для размещения сайтов /var/www В ней будем создавать новые директории для наших сайтов

sudo mkdir -p /var/www/test.com/html sudo mkdir -p /var/www/virtual.com/html

sudo mkdir -p /var/www/test.com/html

sudo mkdir -p /var/www/virtual.com/html

Контент сайтов будем размещать в папку /html

Настроим права доступа для всех папок и подпапок в директории /var/www командой:

sudo chmod -R 755 /var/www

sudo chmod -R 755 /var/www

Структура для будущих сайтов test.com и virtual.com — готовы.

Шаг № 3 Создаем тестовую страницу для каждого из сайтов (virtual hosts)

Для каждого из сайтов создадим простую страниц вида index.html

Выполним следующую команду:

sudo nano /var/www/test.com/html/index.html

sudo nano /var/www/test.com/html/index.html

В созданный файл добавим следующий текст:

<!DOCTYPE html> <html lang=»ru-RU»> <head> <meta http-equiv=»content-type» content=»text/html; charset=UTF-8″> <title>test.com</title> </head> <body> <h2>Домен: test.com</h2> <h2>Виртуальный хост для сайта test.com — настроен</h2> </body> </html>

<!DOCTYPE html>

<html lang=»ru-RU»>

  <head>

    <meta http-equiv=»content-type» content=»text/html; charset=UTF-8″>

    <title>test.com</title>

  </head>

  <body>

    <h2>Домен: test.com</h2>

    <h2>Виртуальный хост для сайта test.com — настроен</h2>

  </body>

</html>

Сохраняем файл и выходим.

Создаем такой же файл для сайт virtual.com

sudo nano /var/www/virtual.com/html/index.html

sudo nano /var/www/virtual.com/html/index.html

И добавляем такой же текст. Меня только название домена

<!DOCTYPE html> <html lang=»ru-RU»> <head> <meta http-equiv=»content-type» content=»text/html; charset=UTF-8″> <title>virtual.com</title> </head> <body> <h2>Домен: virtual.com</h2> <h2>Виртуальный хост для сайта test.com — настроен</h2> </body> </html>

<!DOCTYPE html>

<html lang=»ru-RU»>

  <head>

    <meta http-equiv=»content-type» content=»text/html; charset=UTF-8″>

    <title>virtual.com</title>

  </head>

  <body>

    <h2>Домен: virtual.com</h2>

    <h2>Виртуальный хост для сайта test.com — настроен</h2>

  </body>

</html>

 

Шаг № 4 Создаем virtual hosts файлов

Virtual hosts Apache файл содержит все настройки для каждого из сайтов.

В Apache есть файл по умолчания для virtual hosts он называется 000-default.conf

Возьмем его за основу для настройки наших сайтов. По умолчанию каждый файл для virtual hosts должен заканчиваться на .conf

Создание директив для сайта test.com

Копируем файл по умолчанию и редактируем его для сайт test.com

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/test.com.conf

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/test.com.conf

Открываем новый файл для редактирования

sudo nano /etc/apache2/sites-available/test.com.conf

sudo nano /etc/apache2/sites-available/test.com.conf

Пример файла виртуального хоста с убранными комментариями для удобства восприятия

<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>

<VirtualHost *:80>

    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Первым делом меняем директиву ServerAdmin, указав в нем электронный адрес администратора этого сайта, например:

ServerAdmin [email protected]

ServerAdmin [email protected]

После этого добавим две директивы. Первая будет называться ServerName, где мы указываем реальный домен своего сайта и вторую  ServerAlias, где так же указываем свой домен но добавляем в начале www, в итоге они буду выглядеть:

ServerName test.com ServerAlias www.test.com

ServerName test.com

ServerAlias www.test.com

Теперь настроим путь к нашему новому виртуальному хосту (virtual hosts). Это путь где будет размещен наш новый сайт

DocumentRoot /var/www/test.com/html

DocumentRoot /var/www/test.com/html

В итоге файл настройки virtual hosts для для домена test.com будет выглядеть:

<VirtualHost *:80> ServerAdmin [email protected] ServerName test.com ServerAlias www.test.com DocumentRoot /var/www/test.com/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>

<VirtualHost *:80>

    ServerAdmin [email protected]

    ServerName test.com

    ServerAlias www.test.com

    DocumentRoot /var/www/test.com/html

    ErrorLog ${APACHE_LOG_DIR}/error.log

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Сохраняем и закрываем файл. (В редакторе nano это комбинация клавиш ctrl + x)

Создание директив для сайта virtual.com

Копируем настройки уже готового сайта test.com

sudo cp /etc/apache2/sites-available/test.com.conf /etc/apache2/sites-available/virtual.com.conf

sudo cp /etc/apache2/sites-available/test.com.conf /etc/apache2/sites-available/virtual.com.conf

Открываем файл virtual.com.conf

sudo nano /etc/apache2/sites-available/virtual.com.conf

sudo nano /etc/apache2/sites-available/virtual.com.conf

И приводим его к виду:

<VirtualHost *:80> ServerAdmin [email protected] ServerName virtual.com ServerAlias www.virtual.com DocumentRoot /var/www/virtual.com/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>

<VirtualHost *:80>

    ServerAdmin [email protected]

    ServerName virtual.com

    ServerAlias www.virtual.com

    DocumentRoot /var/www/virtual.com/html

    ErrorLog ${APACHE_LOG_DIR}/error.log

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Сохраняем и закрываем файл.

 

Шаг № 5 Активируем virtual hosts наших сайтов

Для активации воспользуемся утилитой Apache a2ensite

sudo a2ensite test.com.conf sudo a2ensite virtual.com.conf

sudo a2ensite test.com.conf

sudo a2ensite virtual.com.conf

Отключаем стандартный файл конфигурации

sudo a2dissite 000-default.conf

sudo a2dissite 000-default.conf

Когда мы закончили, для применения изменений перезапустим веб сервер Apache

sudo service apache2 restart

sudo service apache2 restart

 

Шаг № 6 Настройка файлов host (опционально)

Данный шаг, нужен если вы экспериментируете с настройками apache на своем компьютере, на котором веб сервер Apache развернут например в VirtualBox. Если вы настраиваете виртуальные хосты на своем VPS сервере, данный шаг можно пропустить.

Если на рабочем компьютере установлен  Mac или Linux (например на моем рабочем компьютере установлена Ubuntu 16.04), то для работы с виртуальными хостами вносим изменения в файл /etc/hosts

Если у тестового сервера ip адрес 192.168.0.110 то на основном компьютере, на котором установлен VirtualBox настройки файла /etc/hosts будут выглядеть следующим образом

127.0.0.1 localhost 127.0.1.1 desktop 192.168.0.110 test.com 192.168.0.110 virtual.com

127.0.0.1   localhost

127.0.1.1   desktop

192.168.0.110 test.com

192.168.0.110 virtual.com

 

Шаг № 7 Проверяем результат

Если вы работаете с VPS не забудьте в панели управления доменов, добавить A-запись для каждого из доменов  с ip адресом VPS сервера.

Вводим в браузере:

Если все сделано правильно, увидим результат:

virtual hosts server blocks nginx

Вывод

Поздравляю! Мы настроили virtual hosts на веб сервере Apache в Ubuntu 16.04 server. Теперь можно размещать любое количество веб сайтов, но с учетом допустимых ресурсов сервера.

Удачи !

Виртуальные хосты Apache2 в Ubuntu 16.04 и Ubuntu 14.04

Во время разработки, одним хостом не обойдешься. На одном можно разрабатывать, на другом тестировать, а на третьем еще один проект.

Плюс ко всему, в Apache2 по умолчанию файлы сайта хранятся в /var/www, у меня же они будут находиться в моей домашней папке, /home/goodigy/sites.

Apache2 может определять хосты по ip-адресам, по доменным именам и по портам.

Мы будем использовать второй вариант, то есть определение хостов по доменным именам.

В Apache2, установленном в Ubuntu 16.04 и Ubuntu 14.04, для этого уже почти все готово.

В папке /etc/apache2/sites-available будут храниться все конфигурационные файлы виртуального хоста.
Затем мы его просто будем включать и выключать по надобности. 
Один файл там уже есть, на основе его мы и сделаем свой.

Скопируем под именем example (наш хост будет называться example, и в браузере станет доступен по ссылке http://example)

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.conf

В предыдущих версиях apache2 (до версии 2.4), не использовались расширения файлов .conf. В новых версиях (с версии 2.4) это приведет к ошибке.

Теперь надо отредактировать, вновь созданный, файл

sudo nano /etc/apache2/sites-available/example.conf

Файл приводим к следующему виду:

<VirtualHost *:80>
        ServerName example        
        DocumentRoot /home/goodigy/sites/example

        <Directory /home/goodigy/sites/example>
            Options Indexes FollowSymlinks
            AllowOverride All
            Require all granted
        </Directory>

        ErrorLog /home/goodigy/sites/example/error.log
        CustomLog /home/goodigy/sites/example/access.log combined
</VirtualHost>

Разъяснение настроек:

  • ServerName example — указание доменного имени по которому будет определяться хост.
  • DocumentRoot /home/goodigy/sites/example — привязывает папку к хосту.
  • <Directory /home/goodigy/sites/example>
         Options Indexes FollowSymlinks
         AllowOverride All
         Require all granted
    </Directory> — это настройки папки,
  • Options Indexes FollowSymlinks — если нет индексного файла (index.html, index.php), показывать список файлов, удобно на локальном сервере.
  • AllowOverride All — разрешает переопределять настройки в .htaccess.
  • Require all granted — доступ разрешен всем.
  • ErrorLog — указывает расположение файла с логом ошибок, я их храню в папке с сайтом.
  • CustomLog — указывает расположение файла с логом доступа, я их храню в папке с сайтом.

Сохраняем.
Создаем папки, указанные в конфигурационном файле

mkdir /home/goodigy/sites 
mkdir /home/goodigy/sites/example

Включаем сайт

sudo a2ensite example.conf

И отключаем тот, который по умолчанию

sudo a2dissite 000-default.conf

Перезапускаем Apache2

sudo service apache2 restart

Далее, нам нужно добавить доменное имя в файл /etc/hosts. Открываем его на редактирование

sudo nano /etc/hosts

Выглядит он, примерно, так

127.0.0.1       localhost
127.0.1.1       googidy-comp

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Туда надо добавить указание на наш домен example

127.0.0.1       localhost
127.0.1.1       igy-nout
127.0.0.1       example

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Сохраняем.
Все, теперь по адресу http://example доступен наш новый хост. В браузере должна отобразиться папка с файлами, так как там отсутствует индексный файл.

Далее, Шпаргалка по путям к конфигурационным файлам LAMP.

В этом руководстве мы расскажем, как настроить виртуальный хост apache или vhost в ubuntu.

Использование виртуального хоста позволяет администратору использовать один сервер для размещения нескольких доменов или сайтов с одного интерфейса или IP-адреса с помощью соответствующего механизма.

В принципе, вы можете использовать один IP-адрес для сервера нескольких доменных имен.

Метод виртуального хоста широко используется в провайдере виртуального хостинга.

Предпосылки

Прежде чем вы начнете с этим руководством, вы должны, по крайней мере, иметь базовые знания о linux, знать базовую команду оболочки для Linux, учетную запись пользователя root или не-root с привилегиями sudo, установленными на вашем сервере.

Также у вас был установлен apache.

Вы должны указать свое доменное имя на IP-адрес вашего сервера.

Для примера в этом руководстве мы создадим виртуальный хост со следующими настройками:

Domain name : test1.example.com
Document root : /var/www/example.com/

Шаг 1 — Создайте структуру каталогов

Корень документа — это каталог верхнего уровня, на который смотрит Apache, чтобы найти контент для обслуживания.

Обычно используют имя public_html, чтобы его было легко распознать.

Например, для наших сайтов мы собираемся сделать наши каталоги такими:

$ sudo mkdir -p /var/www/test1.example.com/public_html

Шаг 2 — Создать пример страницы для виртуального хоста

Мы создадим простой HTML-файл и поместим в виртуальный хост.

$ nano /var/www/test1.example.com/public_html/index.html

В этом файле создайте простой HTML-документ с указанием сайта, к которому он подключен. Мой файл выглядит так:

<html>
  <head>
    <title>Welcome to test1.example.com!</title>
  </head>
  <body>
    <h2>Success!  The test1.example.com virtual host is working!</h2>
  </body>
</html>

Шаг 3 — Создайте новые файлы конфигурации виртуального хоста

Apache поставляется с файлом виртуального хоста по умолчанию с именем 000-default.conf, который используется по умолчанию или для захвата неопределенного виртуального хоста.

Мы будем использовать в качестве шаблонов для создания нашего виртуального хоста.

Как перечислить все виртуальные хосты на веб-сервере Apache

Создайте наш файл конфигурации виртуального хоста на основе файла 000-default.conf, используя следующую команду:

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/test1.example.com.conf

Откройте новый файл конфигурации виртуального хоста, используя nano

$ sudo nano /etc/apache2/sites-available/test1.example.com.conf

Отредактируйте этот файл так:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName test1.example.com
    ServerAlias test1.example.com
    DocumentRoot /var/www/test1.example.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Примечание: вы можете использовать ServerAlias для создания виртуального хоста с другим именем, но с тем же корнем документа, например, www.example.com и example.com. Конфигурация будет такой

ServerName example.com
ServerAlias www.example.com

Шаг 4 — Включите новую конфигурацию виртуального хоста для Apache

Теперь, когда мы создали наши файлы виртуального хоста, мы должны включить их.

Apache включает в себя некоторые инструменты, которые позволяют нам сделать это.

Мы используем a2ensite для включения конфигурации

$ sudo a2ensite test1.example.com.conf

Вам нужно перезапустить Apache, чтобы изменения вступили в силу:

Please follow and like us:

Настройка Apache2 на Ubuntu, VirtualHosts, ServerName

Ну вот и дошла пора более серьезно заняться настройкой своего Apache сервера на рабочей машине.

Так как на моем компе установлена Ubuntu Linux, а установка приложений с помощью менеджера пакетов Synaptic — сплошное удовольствие, то получилось так, что я установил с его помощью Apache и мне хватало его дефолтных установок. Но захотелось мне навести красоту, разместить несколько веб-сайтов и иметь к ним доступ по разным доменным именам.

Итак, имеем задачу:

Настроить несколько веб-сайтов, на локальном сервере Apache2, установленного на рабочей машине с Ubuntu Linux, и чтобы доступ к ним был по адресам, например таким:

  • 1й сайт — www.test1.my и test1.my
  • 2й сайт — www.test2.my и test2.my

и так далее, в том же духе.

При попытке привести все к красоте, возникло несколько интересных ошибок, которые, надеюсь нелишне описать.

Итак, первое, в Ubuntu состав директории /etc/apache2 немного отличается от привычных директорий настройки Apache в Unix-подобных системах.

conf.d/
sites-available/
sites-enabled/
mods-available/
mods-enabled/
  apache2.conf
  envvars
  httpd.conf
  ports.conf

В Ubuntu основным файлом настройки Apache2 является не httpd.conf, а apache2.conf, но тут он играет роль системного файла, в котором собраны основные и самые важные настройки сервера.

А вот файл httpd.conf — пустой и предназначен для добавления дополнительных настроек, он включен в основной файл настройки apache2.conf

В файле envvars описаны переменные среды, необходимые для функционирования Apache-сервера.

В ports.conf вынесены настройки портов на которые можно будет подключиться к серверу или конкретному сайту на нем.

В папке conf.d находятся дополнительные конфигурационные файлы.

Для описания всех доступных сайтов используется папка sites-available в которой расположены файлы с описанием виртуальных хостов — VirtualHosts, опубликованные же сайты находятся в папке sites-enabled в виде ссылок на файлы доступных сайтов из папки sites-available.

Таким же образом в папках mods-available и mods-enabled настраивается доступность модулей используемых сервером.

Разобравшись со структурой файлов и папок, уже можно приступать к настройке. Первым делом создаем новый файл в папке sites-available, с именем хоста, так будет понятнее при просмотре директории.

#sudo touch test1.my

после этого с помощью любого доступного текстового редактора добавляем в этот файл следующие строки

<VirtualHost *:80>
    ServerName test1
    ServerAlias test1.my www.test1.my
    DocumentRoot /var/www/test1.my/www
</VirtualHost>

таким образом можно создать необходимое колличество виртуальных хостов и направить их в нужные директории на винчестере.

Теперь необходимо как-то научить нашу операционную систему распознавать домен .my. Для этого достаточно прописать необходимые строки в файле /etc/hosts, например так:

127.0.0.1    test1.my        www.test1.my

Так, теперь мы имеем настройку сайта как виртуального хоста (VirtualHost), имеем настроенный доменный адрес, но сайт еще не доступен для просмотра в браузере. А почему? А потому, что для начала необходимо разместить ссылку на VirtualHost в папку sites-enabled, и перечитать конфигурацию сервера Apache. Для создания ссылки можно выполнить такую команду:

#sudo a2ensite /etc/apache2/sites-available/test1.my

и перечитаем параметры:

#sudo /etc/init.d/apache2 reload

приведеная команда, перечитает параметры настройки сервера без его перезагрузки.

И вот тут мы столкнемся со второй неприятностью, не критической, но неприятной. После перечитки параметров будет выведено информационное сообщение:

Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName

Что-то некрасиво получается, зачем нам такое. Но, мы помним, что у нас есть файл httpd.conf в котором желательно прописывать дополнительные настройки. Итак, открываем этот файл в текстовом редакторе, не забываем, что это надо делать с правами суперпользователя, и прописываем туда такую строчку

ServerName имя_вашего_сервера

сохраняем, закрываем файл и перечитываем параметры настройки:

#sudo /etc/init.d/apache2 reload

Сообщение пропало и теперь мы имеем красиво настроенный веб-сервер Apache. Сейчас для добавления новых сайтов достаточно создать файл виртуального хоста, вписать в него параметры настройки для хоста, добавить его в видимые хосты и перечитать параметры. Вот так вот, оказывается, все просто делается в нелегком админском деле.


У Вас есть товары, которые подлежат сертификации пожарной безопасности? Тогда вам просто необходим пожарный сертификат.


Как разместить нескольких сайтов на одном сервере под Ubuntu 18.04

Достоинством использования Ubuntu 18.04 и Apache является возможность размещения нескольких сайтов на одном сервере. Это очень выгодно, потому что можно использовать один сервер для всех своих доменов.

Эта особенность называется виртуальным хостингом. Например, она нужна для того, чтобы разместить домены example.com и test.com на одном публичном IP-адресе.

Виртуальный узел Apache направляет пользователей в разные папки, где хранятся файлы каждого домена. При открытии сайта пользователь не видит, что на этом сервере размещены другие виртуальные узлы.

Количество сайтов, которые можно разместить на сервере под Ubuntu 18.04, ограничивается лишь местом на диске и пропускной способностью канала.

В этом руководстве мы опишем процесс настройки для размещения 2-х различных сайтов на одном сервере под Ubuntu 18.04 VPS.

Что потребуется:

  • Ubuntu 18.04 VPS
  • Стандартный пользователь с возможностью выполнения sudo-команд
  • Веб-сервер Apache

Установка Apache2

Для установки Apache необходимо выполнить следующую команду:

$ sudo apt-get install apache2

Для примера будем использовать вымышленные доменные имена example.com и test.com. Также в руководстве опишем, как изменить файл hosts на компьютере, чтобы проверить виртуальные хосты.

Создание структуры каталогов

Для начала необходимо создать структуру каталогов для новых сайтов. Apache имеет свой корневой каталог /var/www, в котором размещаются все сайты. Создадим две папки для двух новых доменов.

Для этого выполним команды в терминальном окне:

$ sudo mkdir -p /var/www/test.com/public_html
$ sudo mkdir -p /var/www/example.com/public_html

Изменение владельца каталогов

Права на редактирование содержимого в каталогах принадлежат системному пользователю root. Для разрешения доступа в каталог текущего пользователя необходимо воспользоваться командой chown:

$ sudo chown -R $USER:$USER /var/www/example.com/public_html
$ sudo chown -R $USER:$USER /var/www/test.com/public_html

Изменение прав доступа к файлам

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

Для этого необходимо выполнить команду:

$ sudo chmod -R 755 /var/www

Создание контента для каждого виртуального узла

Теперь структура каталогов и доступ к файлам настроены. Создадим index.html для каждого веб-сайта, используя nano редактор:

Для домена test.com:

$ sudo nano /var/www/test.com/public_html/index.html

Скопируйте текст в редактор

<html>
  <body>
    This is our test.com website
  </body>
</html>

Для домена example.com:

$ sudo nano /var/www/example.com/public_html/index.html

Скопируйте в редактор в текст

<html>
  <body>
    This is our example.com website
  </body>
</html>

Не забывайте закрывать и сохранять каждый файл, нажимая CTR+X и Y.

Создание файлов конфигурации для новых сайтов

При установке Apache на Ubuntu 18.04 по умолчанию создается файл конфигурации. Найти его можно здесь:

/etc/apache2/sites-available/000-default.conf

Для создания нового файла конфигурации можно использовать уже имеющийся. Чтобы сделать его копию, выполните команду ниже:

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/test.com.conf
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf

Файлы конфигурации Apache должны иметь расширение «.config».

После этого откроем в редакторе наши файлы. Для этого будем использовать команду:

$ sudo nano /etc/apache2/sites-available/test.com.conf

Отредактируем файл следующим образом:

<VirtualHost *:80>

    ServerAdmin [email protected]

    ServerName test.com

    ServerAlias www.test.com

    DocumentRoot /var/www/test.com/public_html

    ErrorLog ${APACHE_LOG_DIR}/error.log

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Выше мы указали каталог /var/www/test.com/public_html, потому что все файлы сайта test.com будут размещены в нем.

Повторим операцию для второго сайта example.com

$ sudo nano /etc/apache2/sites-available/example.com.conf

В конфигурационном файле укажем следующее:

<VirtualHost *:80>

    ServerAdmin [email protected]

    ServerName example.com

    ServerAlias www.example.com

    DocumentRoot /var/www/example.com/public_html

    ErrorLog ${APACHE_LOG_DIR}/error.log

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Добавление виртуальных хостов

Мы создали конфигурационные файлы для виртуальных хостов. Теперь их нужно включить:

$ sudo a2ensite test.com.conf
$ sudo a2ensite example.com.conf

Перезапуск Apache

После добавления виртуального сервера на Ubuntu 18.04 необходимо перезапустить Apache:

$ sudo service apache2 restart

Изменение локального файла hosts

Наши виртуальные хосты настроены. Для проверки вымышленных адресов нам необходимо отредактировать файл hosts на локальном компьютере (НЕ на сервере!).

Это позволит компьютеру обратиться к правильному публичному IP-адресу сервера. Предположим, что публичный IP-адрес сервера xxx.xxx.xxx.xxx, поэтому на нашем компьютере нужно будет отредактировать файл hosts следующим образом:

xxx.xxx.xxx.xxx example.com
xxx.xxx.xxx.xxx test.com

Если Вы используете ПК под Linux, необходимо отредактировать файл /etc/hosts с помощью команды:

$ sudo nano /etc/hosts

Внесите в него изменения и сохраните.

Если на компьютере установлена ОС Windows, отредактируйте файл c:\windows\system32\drivers\etc\hosts, используя текстовый редактор (блокнот).

Не забудьте заменить xxx.xxx.xxx.xxx на публичный IP-адрес Вашего сервера.

Проверка новых сайтов в браузере

Теперь нужно проверить сайты example.com и test.com в браузере. Если все выполнено по инструкции, то в браузере Вы должны увидеть следующее:

test.com

This is our test.com website

example.com

This is our example.com website

Заключение

Хостинг нескольких сайтов на одном сервере под Ubuntu 18.04 прост и  удобен: можно не переплачивать за отдельные виртуальные сервера.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *