Настройка виртуальных хостов Apache в CentOS 7
27 апреля, 2015 12:35 пп 23 174 views | 2 комментарияCentos, VPS | Amber | 2 комментария
Гибкий и производительный Apache на сегодняшний день является самым популярным веб-сервером, он обслуживает более половины активных сайтов.
Функции Apache распределены между его отдельными компонентами, которые можно настраивать индивидуально. Основным таким компонентом, который содержит настройки для отдельного сайта, является виртуальный хост. Виртуальные хосты (англ. virtual host) позволяет размещать несколько доменов или интерфейсов на одном виртуальном выделенном сервере.
Каждый домен будет направлять пользователя к отдельному каталогу, содержащему информацию о сайте, при этом никак не сообщая пользователю о том, что этот сервер обслуживает ещё несколько сайтов. Количество виртуальных хостов на одном сервере ограничено только ресурсами самого сервера.
В данном руководстве рассказывается, как настроить виртуальные хосты на выделенном сервере CentOS 7, что позволит обслуживать разный контент в зависимости от запрашиваемого домена.
Требования
Прежде чем приступить к выполнению руководства, нужно создать учётную запись пользователя с правами sudo. Чтобы узнать, как создать такого пользователя, читайте данное руководство.
Также нужно предварительно установить Apache. Для этого используйте менеджер пакетов yum, который установит сервер из стандартных репозиториев CentOS.
sudo yum -y install httpd
Затем запустите Apache как сервис, чтобы он автоматически запускался после перезагрузки.
sudo systemctl enable httpd.service
После этого подключитесь к серверу по SSH как не-рутовый пользователь с привилегиями sudo.
Примечание: В руководстве используются условные домены example.com и example2.com; не забудьте заменить их своим доменным именем.
Если у вас нет доменного имени, в конце руководства показано, как протестировать настройку с фиктивными значениями.
1: Создание структуры каталогов
Для начала нужно создать структуру каталогов, в которой будут храниться данные сайта.
Каталог document root (каталог, в котором Apache ищет контент) по умолчанию находится в /var/www; в нём нужно создать отдельный каталог для каждого виртуального хоста. В каждом таком каталоге будет размещен каталог public_html, в котором и будут находиться нужные файлы. Такой подход делает хостинг более гибким.
Необходимые каталоги можно создать при помощи команды mkdir (флаг -p позволяет создавать каталог с вложенным в него каталогом):
sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/example2.com/public_html
Примечание: Не забудьте заменить условные домены своими данными.
2: Права
Итак, структура каталогов готова, но все они принадлежат пользователю root. Чтобы не-рутовый пользователь мог вносить изменения в файлы веб-каталога, нужно изменить права на эти файлы при помощи chown:
sudo chown -R $USER:$USER /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/example2.com/public_html
Переменная $USER примет имя текущего пользователя. После этого каталоги public_html, содержащие контент сайтов, будут принадлежать текущему пользователю.
Также нужно немного изменить привилегии, чтобы открыть веб-каталог и всё его содержимое для чтения, в противном случае страницы не будут отображаться корректно.
sudo chmod -R 755 /var/www
Теперь все права установлены верно; можно приступать к созданию контента в специально отведённых каталогах.
3: Создание демо-страниц для виртуальных хостов
Создайте тестовый контент; поскольку это пробная настройка хостов, страницы будут очень простыми. Просто создайте страницы index.html для каждого сайта.
Начнём с example. com; откройте файл index.html в текстовом редакторе:
nano /var/www/example.com/public_html/index.html
В этом файле создайте простой HTML-документ, который указывает, к какому сайту подключена страница. В данном случае этот файл выглядит так:
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h2>Success! The example.com virtual host is working!</h2>
</body>
</html>
Сохраните и закройте файл.
Затем можно скопировать этот файл и использовать его как шаблон для второго домена:
cp /var/www/example.com/public_html/index.html /var/www/example2.com/public_html/index.html
Откройте скопированный файл и отредактируйте соответствующие данные:
nano /var/www/example2.com/public_html/index.html
<html>
<head>
<title>Welcome to Example2.com!</title>
</head>
<body>
<h2>Success! The example2. com virtual host is working!</h2>
</body>
</html>
Сохраните и закройте файл. Теперь тестовые страницы готовы.
4: Создание файлов виртуальных хостов
Файлы виртуальных хостов задают настройки отдельных сайтов и помогают Apache корректно отвечать на запросы.
Сначала нужно создать отдельные каталоги для хранения виртуальных хостов и включения сайтов. Каталог sites-available должен содержать файлы виртуальных хостов, а каталог sites-enabled – символические ссылки на виртуальные хосты, которые нужно включить. Для создания этих каталогов введите:
sudo mkdir /etc/httpd/sites-available
sudo mkdir /etc/httpd/sites-enabled
Примечание: Эта схема размещения каталогов командой Debian, но она используется и в других системах, поскольку это очень гибкий и простой способ включать и отключать виртуальные хосты.
Веб-сервер Apache должен искать виртуальные хосты в каталоге sites-enabled. Для этого нужно отредактировать главный конфигурационный файл Apache и объявить дополнительный каталог конфигурационных файлов.
sudo nano /etc/httpd/conf/httpd.conf
В конец каталога добавьте строку:
IncludeOptional sites-enabled/*.conf
Сохраните и закройте файл.
Теперь можно приступать к созданию файлов виртуальных хостов.
sudo nano /etc/httpd/sites-available/example.com.conf
Примечание: Согласно заданным конфигурациям, все конфигурационные файлы должны оканчиваться на .conf.
Сначала создайте пару тегов, объявляющих данный контент виртуальным хостом, который слушает порт 80 (стандартный HTTP-порт).
<VirtualHost *:80>
</VirtualHost>
Затем задайте имя сервера (в данном случае это www.example.com). Директива ServerAlias позволяет указывать дополнительные имена сервера; используйте её, чтобы запросы www.example.com и example.com возвращали одинаковый контент.
<VirtualHost *:80>
ServerName www. example.com
ServerAlias example.com
</VirtualHost>
Примечание: Чтобы версия доменного имени с www работала должным образом, настройки DNS должны содержать запись А или CNAME, перенаправляющую запросы к www на IP-адрес сервера. Символ звёздочки (*) также подойдёт.
В завершение нужно задать root-каталог для общедоступных веб-документов, а также местонахождение логов ошибок и запросов для этого конкретного сайта:
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog /var/www/example.com/error.log
CustomLog /var/www/example.com/requests.log combined
</VirtualHost>
Сохраните файл и закройте его.
Скопируйте только что созданный файл и используйте его как шаблон для виртуального хоста второго сайта, отредактировав соответствующие данные.
sudo cp /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-available/example2.
com.conf
Откройте новый файл с привилегиями sudo в текстовом редакторе:
sudo nano /etc/httpd/sites-available/example2.com.conf
Теперь осталось отредактировать данные, чтобы файл мог обслуживать второй домен. В результате второй файл виртуального хоста имеет такой вид:
<VirtualHost *:80>
ServerName www.example2.com
DocumentRoot /var/www/example2.com/public_html
ServerAlias example2.com
ErrorLog /var/www/example2.com/error.log
CustomLog /var/www/example2.com/requests.log combined
</VirtualHost>
Сохраните и закройте файл.
5: Включение виртуальных хостов
Создав файлы виртуальных хостов, нужно включить их. Для этого создайте символическую ссылку для каждого хоста в каталоге sites-enabled:
sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf
sudo ln -s /etc/httpd/sites-available/example2.com.conf /etc/httpd/sites-enabled/example2.
com.conf
После этого перезапустите Apache, чтобы эти изменения вступили в силу.
sudo apachectl restart
6: Настройка локальных хостов (опционально)
Если у вас нет доменного имени, и вместо настоящего вы использовали условный домен, вы можете протестировать настройки, временно отредактировав файл hosts на локальном компьютере. он будет перехватывать запросы на настроенные ранее домены и направлять их на VPS (то есть, выполнять работу DNS). Но этот метод работает только на локальной машине и подходит только для тестирования.
Примечание: Убедитесь, что вы перешли на локальную машину. Для выполнения данного раздела нужны учётные данные администратора.
В системах Mac или Linux отредактируйте файл hosts с привилегиями администратора.
sudo nano /etc/hosts
Примечание: Пользователи Windows могут найти необходимые инструкции по этой ссылке.
В этом файле нужно указать IP-адрес сервера, а затем доменное имя, которое будет использоваться для доступа к серверу.
127.0.0.1 localhost
127.0.1.1 guest-desktop
server_ip_address example.com
server_ip_address example2.com
Теперь все запросы к example.com и example2.com будут направлены на локальный компьютер, а оттуда – на IP-адрес сервера.
7: Тестирование виртуальных хостов
Чтобы протестировать настройку, просто откройте домены в веб-браузере:
http://example.com
В данном случае на экране появится сообщение:
Success! The example.com virtual host is working!
Примечание: Конечно, то, что появится на экране, зависит от содержания файла, созданного в разделе 3.
Проверьте работу всех виртуальных хостов.
Если файл hosts на локальном компьютере был изменён, после тестирования удалите внесённые в него строки, чтобы не засорять файл ненужными записями.
Заключение
Теперь сервер CentOS 7 может поддерживать несколько сайтов на отдельных доменах. В целом, количество хостов, которое можно разместить на одном сервере, зависит только от ресурсов сервера; в случае необходимости просто повторите весь вышеописанный процесс, чтобы добавить на сервер новый виртуальный хост.
Настройка виртуальных хостов Apache в Ubuntu 18.04
29 февраля, 2020 11:39 дп 2 058 views | Комментариев нетUbuntu | Amber | Комментировать запись
Apache является одним из самых популярных веб-серверов в мире, он обеспечивает надежность и гибкость. По состоянию на 2019 год он обслуживает 29% всех активных веб-сайтов. С помощью Apache администратор может разместить несколько доменов или сайтов в рамках одного сервера.
Каждый домен или отдельный сайт в контексте веб-сервера Apache называется «виртуальный хост». Каждый виртуальный хост будет направлять посетителя в определенный каталог, содержащий информацию о запрашиваемом сайте. При этом пользователи не узнают, что тот же сервер обслуживает другие сайты. Эта схема расширяемая: пока ваш сервер может справиться с нагрузкой, в ыможете добавлять новые виртуальные хосты (то есть ресурсы сервера – единственное ограничение). Базовый блок конфигураций, который описывает отдельный сайт или домен, называется виртуальным хостом.
В этом мануале вы узнаете, как настроить виртуальные хосты Apache на сервере Ubuntu 18.04.
Требования
- Настроенный сервер Ubuntu 18.04.
- Пользователь с доступом к sudo (инструкции по настройке – здесь).
- Предварительно установленный веб-сервер Apache (инструкции по установке вы найдёте здесь).
Если вы хотите быстро установить веб-сервер, запустите эти команды:
sudo apt update
sudo apt install apache2
В мануале мы используем условные домены example.com и test.com; не забудьте заменить их своим доменным именем. Если у вас нет домена, в конце мануала мы покажем, как протестировать настройку с фиктивными значениями на локальном компьютере.
1: Создание структуры каталогов
Для начала нужно подготовить структуру каталогов, в которой будут храниться данные сайта.
Каталог document root (корневой каталог, содержащий контент для Apache) по умолчанию находится в /var/www; в нём нужно создать отдельный каталог для каждого виртуального хоста.
В каждом таком каталоге будет размещен каталог public_html, он будет содержать необходимые файлы. Благодаря этому обслуживание сайтов становится более гибким.
Нужные каталоги можно создать при помощи команд:
sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html
Примечание: Замените условные домены в командах.
2: Настройка привилегий
Поскольку каталоги созданы с помощью sudo, права на них принадлежат пользователю root. Чтобы ваш обычный пользователь мог изменять файлы в этих каталогах, передайте ему права на эти каталоги:
sudo chown -R $USER:$USER /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/test.com/public_html
Переменная $USER примет имя текущего пользователя. После этого он получит права на подкаталоги public_html, в которых будет храниться ваш контент.
Также нужно изменить права на чтение каталога сайта и всех его подкаталогов (чтобы страницы отображались правильно). Для этого запустите:
sudo chmod -R 755 /var/www
Читайте также: Привилегии в Linux
Теперь каталоги готовы. Можно приступать к созданию контента.
3: Создание демо-страниц для виртуальных хостов
Давайте создадим тестовый контент – страницы index.html для каждого сайта; для пробной настройки будет достаточно простых страниц.
Начнём с домена example.com; откройте файл index.html в текстовом редакторе:
nano /var/www/example.com/public_html/index.html
В этом файле создайте простой HTML-документ, который указывает, к какому сайту подключена страница. В данном случае этот файл выглядит так:
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h2>Success! The example.com virtual host is working!</h2>
</body>
</html>
Сохраните и закройте файл.
Затем можно скопировать этот файл и использовать его как шаблон для второго сайта:
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>Welcome to Test.com!</title>
</head>
<body> <h2>Success! The test.com virtual host is working!</h2>
</body>
</html>
Сохраните и закройте файл. Ваши тестовые страницы готовы.
4: Создание файлов виртуальных хостов
Файлы виртуальных хостов содержат настройки отдельных сайтов и помогают Apache правильно обрабатывать запросы.
Apache предоставляет стандартный файл хоста по имени 000-default.conf, который можно использовать в качестве шаблона. Скопируйте его, чтобы создать виртуальный хост для каждого вашего домена.
Примечание: По умолчанию настройки Ubuntu требуют, чтобы файлы виртуальных хостов заканчивались на .conf.
Виртуальный хост для первого сайта
Скопируйте стандартный файл виртуального хоста:
sudo cp /etc/apache2/sites-available/000-default.
conf /etc/apache2/sites-available/example.com.conf
Откройте его в редакторе:
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>
Как видите, этот файл не такой уж объёмный. Такой виртуальный хост будет обслуживать запросы, отправляемые на стандартный HTTP-порт 80. Давайте внесем в него данные о первом домене и добавить несколько директив.
Сначала нужно отредактировать директиву ServerAdmin, указав электронный адрес администратора сайта.
ServerAdmin admin@example.com
После этого нужно добавить две директивы. Первая – ServerName, она определяет базовый домен, для которого предназначен этот виртуальный хост. Вторая – ServerAlias, которая определяет псевдонимы домена (например, домен с префиксом www).
ServerName example.com
ServerAlias www.example.com
Единственное, что осталось изменить для нашего виртуального хоста, – это расположение корневого каталога этого домена. Мы уже создали этот каталог, поэтому нам просто нужно изменить директиву DocumentRoot:
DocumentRoot /var/www/example.com/public_html
В результате виртуальный хост будет выглядеть так:
<VirtualHost *:80>
ServerAdmin admin@example.com
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
Откройте полученный файл в редакторе:
sudo nano /etc/apache2/sites-available/test.com.conf
Теперь осталось откорректировать файл, чтобы он обслуживал второй домен. В результате виртуальный хост второго сайта должен выглядеть так:
<VirtualHost *:80>
ServerAdmin admin@test.com
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>
Сохраните и закройте файл.
5: Включение виртуальных хостов
Вы создали файлы виртуальных хостов для своих сайтов, а теперь нужно включить их. Apache предоставляет для этого специальные инструменты.
К примеру, вы можете использовать a2ensite (больше об этом инструменте можно узнать в его документации):
sudo a2ensite example.com.conf
sudo a2ensite test.com.conf
Затем отключите стандартный виртуальный хост, 000-default. conf
sudo a2dissite 000-default.conf
Перезапустите Apache, чтобы активировать изменения, и запросите состояние веб-сервера:
sudo systemctl restart apache2
sudo systemctl status apache2
Теперь ваш сервер обслуживает два сайта одновременно.
6: Настройка локальных хостов (опционально)
Если у вас нет домена и вы использовали условный домен вместо настоящего, вы можете протестировать свои настройки, временно отредактировав файл hosts на локальном компьютере.
Он будет перехватывать запросы на настроенные ранее домены и направлять их на VPS (то есть, работать как DNS). Но этот метод работает только на локальной машине и подходит только для тестирования.
Примечание: Убедитесь, что вы перешли на локальную машину. Для выполнения данного раздела нужны учётные данные администратора.
В системах Mac или Linux отредактируйте файл hosts с привилегиями администратора.
sudo nano /etc/hosts
Инструкции для Windows вы найдете здесь.
В этом файле нужно указать IP-адрес сервера, а затем домен, по которому осуществляется доступ к серверу.
Используя условный IP-адрес сервера your_server_IP, мы внесем в конец файла хоста следующие строки:
127.0.0.1 localhost
127.0.1.1 guest-desktop
your_server_IP example.com
your_server_IP test.com
Теперь все запросы к example.com и test.com будут отправлены на локальный компьютер, а оттуда – на IP-адрес сервера.
Сохраните и закройте файл.
7: Тестирование настройки
Чтобы протестировать настройку виртуальных хостов, просто откройте домен в веб-браузере:
http://example.com
сообщение:
Success! The example.com virtual host is working!
Примечание: Результат, появившийся на экране, зависит от содержания файлов ваших тестовых страниц.
Точно так же проверьте и второй сайт:
http://test.com
На экране появится:
Success! The test.
com virtual host is working!
Если оба сайта работают, значит, виртуальные хосты успешно настроены.
Если вы редактировали файл hosts на локальном компьютере, после тестирования удалите внесённые в него изменения, чтобы не засорять файл ненужными записями.
Заключение
Теперь ваш сервер поддерживает два сайта одновременно.
Количество хостов, которое может поддерживать Apache, зависит только от ресурсов вашего виртуального сервера. Чтобы добавить на сервер новый виртуальный хост, просто повторите весь вышеописанный процесс.
Читайте также:
- Создание сертификата Let’s Encrypt для Apache в Ubuntu 18.04
- Настройка парольной аутентификации с помощью Apache в Ubuntu 18.04
- Установка и настройка Apache с помощью Ansible в Ubuntu 18.04
Настройка virtualhost в apache2 как сделать виртуальный хост
Для настройки виртуальных хостов на web сервере apache2 под ubuntu 7. 10, 8.04, 8.10, 9.04, 9.10, Debian 5 необходимо в самое начало или конец (вне инструкций ) файла /etc/apache2/sites-available/default добавить директиву:
NameVirtualHost 192.168.0.1
Там необходимо указать IP адрес либо DNS имя компютера на котором размещён вебсервер, можно указать localhost или 127.0.0.1
Затем, учитывая организацию конфигов apache2 в Debian, необходимо создать файл виртуального хоста в директории: /etc/apache2/sites-available/
например ваш сайт называется supebreys.ru, значит логичнее создать чтото вроде /etc/apache2/sites-available/supebreys_ru.conf. В любом случае это название должно вам говорить для чего этот файл и будет лучше если вы будете придерживаться какого то одного правила создания таких файлов. Затем в этот файл добавляем такой текст:
<VirtualHost *:80>
DocumentRoot "/home/httpd/breys.ru/www"
ServerName breys.xxx
<Directory />
allow from all
Options +Indexes
</Directory>
ScriptAlias /cgi-bin/ "/home/httpd/breys.ru/cgi-bin/"
CustomLog /home/httpd/breys.ru/access.log common
ErrorLog /home/httpd/breys.ru/error.log
</VirtualHost>
Здесь мы создали виртуальный хост которых будет обрабатывать запросы на 80 порту с любого доступного адреса
Также тут указана корневая директория сайта, директория с cgi скриптами и пути к файлам журналов работы вебсервера
Для корневой директори указаны дополнительные(необязательные) опции: разрешение доступа с любого адреса и включение модуля обработки индексного файла, в принципе эти опции не обязательны и нужны только если прихоится переопределять глобальные политики доступа и загрузки модулей вебсервером
После создания этого файла веб сервер ещё не видит его. Если внимательно посмотреть на файлы в директориях /etc/apache2/sites-enabled/ и /etc/apache2/sites-available/ то должно стать ясно, то что в директории /etc/apache2/sites-available лежат файлы описывающие виртуальные хосты, а в папке/etc/apache2/sites-enabled/ лежат симлинки на файлы в sites-available. Исходя из названий становится ясно, что:
sites-available — все доступные виртуальных хосты
sites-enabled — включаемые вебсервером
то есть, чтобы добавить виртульный хост в apache2, необходимо либо создать файл нового виртуального хоста в sites-available либо дописать(не желательно) его в уже имеющийся там файл, а чтобы включить виртуальный хост, необходимо чтобы директории sites-enabled была ссылка на файл описывающий виртуальных хост
Это сделанно для того, чтобы разделить виртуальные домены на уровне хостинга. Например, хостер чтобы временно удалить какой то домен удаляет ссылку из папки sites-enabled и перезапускает вебсервер и так же быстро включает домен снова, без правки единого конфига, как это было реализованно ранее.
Итак, включаем наш, только что созданный, новых виртуальный хост:
ln -s /etc/apache2/sites-available/breys_ru.conf /etc/apache2/sites-enabled/breys_ru.conf
Этой командой мы создаём симлинк(символическую ссылку на один файл в другой директории) на рабочий файл виртуального хоста, который будет обработан при следующем перезапуске вебсервера
Возможно вам потребуется расширить поведение вашего виртуального хоста — может потребоваться чтобы он был доступен по нескольким адреса
Например, у меня имеются зеркала моих сайтов и я работаю с ними дома используя имена сайтов + моя домашняя зона . xxx, тоесть для сайта breys.ru у меня есть домашнее зеркало breys.xxx, но вполне вероятна ситуация когда нужно показать зеракло ещё кому то, тогда я могу использовать DNS зону зарегистрированную за мной на DYNDNS.COM, тоесть это зеркало имеет дополнительный адрес в виде:breys.ffsdmad.homelinux.org, ещё более частая ситуация когда нужно иметь имя www.breys.ru и соответственноwww.breys.ffsdmad.homelinux.org
Чтобы включить этого необходимо в файл виртального хоста, внутри инструкций .. добавить список необходимых алиасов:
<VirtualHost *:80>
....другие инструкции
ServerName breys.xxx
....
ServerAlias www.breys.xxx
ServerAlias breys.ffsdmad.homelinux.org
ServerAlias www.breys.ffsdmad.homelinux.org
....
</VirtualHost>
Вполне возможно придётся заниматься отладкой модуля mod_rewrite, для этого необходимо в файл виртуального хоста добавить строки:
<VirtualHost *:80>
....другие инструкции
RewriteLog /home/httpd/breys.ru/rewrite.log
RewriteLogLevel 9
</VirtualHost>
Начните с небольшого примера и постепенно расширяйте возможности своего виртуального хостинга различными возможностями вебсервера apache2 (а их у него предостаточно) и постепенно вы поймёте насколько проста и логична такая структура в условиях такого сложного сервиса как вебхостинг
Также следует заметить, что если вы поставили на локальную машину сервер apache2 и виртуальные хосты прописаны в /etc/hosts (соответствия имени ip адресу), то начинаются тормоза при обращении к вебсерверу. Дело в том, что браузер сначала пытается распознать ip адрсе у dns сервера, который у вас прописан в /etc/resov.conf, а не проверять файл /etc/hosts. Это можно исправить заменив в файле /etc/host.conf последовательность перебора сервисов разрешения имён, но лучше всего настроить bind и забыть про тормоза и проблемы с обратным разрешением имени по IP
Вот тут можно прочитать как настроить bind для домашней сети, а здесь можно взять скрипт автоматического создания виртуальных хостов в условиях домашнего хостинга
Эта заметка висит здесь уже второй год и на неё не прекращается поток запроса, а это наталкивает меня на мысль, что люди не могут разобраться с этой системой, а значит нужно объяснять ещё более доходчиво, в этоге эта заметка переписывалась уж три раза
Если у вас остались или возникли какие то вопросы или неясности, не стесьняйтесь, спрашивайте, система коментариев мгновенно оповещает меня через Jabber, таким образом я реагирую практически моментально
#1:
Наверно самая дикая статья из которых я видел
У автора раздвоение личности
ответить 2008-10-10 03:50:43
#2:
задолбали плохие переводчики которые плодят недопонятый хлам в сети
ответить 2010-01-29 15:30:42
#3:
спасибо
а любой, кто умеет перевести лучше — переведи и дай сюда ссылку на свой вариант, я почитаю
ответить 2010-02-07 17:45:23
#4: Басманов:
А чего переводить то?
официальная документация переведена: http://httpd. apache.org/docs/2.2/vhosts/
нужно только разжовывать
может быть видео урок нужен?
ответить 2010-02-07 17:56:35
#5:
Спасибо помогло =)
ответить 2010-03-03 00:40:20
#6:
Спасибо автору.
Простая вещь а нигде не найдешь.В большенстве статей дальше установки сервера подробностей нет,а чайнику врубится в люникс сходу тяжко.
ответить 2010-03-18 20:16:25
#7:
а что мне делать если у меня по умолчанию нет таких папок как sites-available и sites-enabled в директории /etc/apache2/ ???
ответить 2010-04-10 17:10:47
#8: Басманов:
#9: а что мне делать
ну какие то ведь папки есть, это зависит от дистрибутива
ответить 2010-04-10 17:45:22
#9:
ну вот такие есть папки modules. d и vhosts.d и такие файлы httpd.conf и magic
ну и все … больше ничего нет …
подскажите пожалуйста как мне сделать виртуальный хост ?
может тупо создать их и все сделать как тут написано ?
ответить 2010-04-10 22:07:54
#10: Басманов:
#10: ну вот такие есть папки
а что за дистрибутив?
ответить 2010-04-10 22:19:19
#11: Басманов:
#10: ну вот такие есть папки
по сути всё просто, нужно вписать секцию VirtualHost в файл где описываются хост
ответить 2010-04-10 22:20:21
#12:
вот моя аська 591716048 свяжитесь со мной или напишите свои координаты я с вами свяжусь . .. я вам дам данные чтоб подключится через putty … я полный профан в линуксе .. за помощь отблагодарю
ответить 2010-04-11 03:42:12
#13:
во все разобрался .. спасибо вам большое
у меня это оказался фаил /etc/apache2/vhosts.d/default_vhost.include там где я вставил такой код
VirtualHost *:80
ServerName films.sait.net
DocumentRoot «/var/www/localhost/htdocs/films»
Directory «/var/www/localhost/htdocs/films»
Options -Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
/Directory
/VirtualHost
ответить 2010-04-11 19:30:41
#14:
Большое спасибо.
Легко и очень понятно написано.
ответить 2010-04-14 18:16:12
#15:
спасибо
ответить 2010-05-17 22:02:41
#16:
спасибо.
ответить 2010-05-31 09:02:12
#17:
Приветствую! Очень толковый пост. Хотя я достаточно хорошо знаком с Апачем но некоторые дополнительные приемы я отсюда почерпнул.
А вопрос у меня такой, у нас с друзьями есть свой сервачок, на нем linux и вся хостерская мастерская :), так вот, допустим надо добавить домен 3 уровня аля vasya.domen.exp, а у Пети есть petya.domen.exp, я как системный администратор делаю для товарища поддомен vasya и перезапускаю Апач. В этот момент Петя тащил по http длинный файл на низкой скорости и он у него оборвался… за что я схватил жестяной банкой по голове когда он пришел.. не убило конечно, но меня подружески обматерили.
Есть-ли какой нибудь способ ввести поддомен petya.domen.ru без перезапуска всего Апача?
Спасибо.
ответить 2010-06-03 16:52:26
#18:
немного ошибся там не petya. domen.ru а vasya.domen.exp надо второе включить чтобы не вылетело первое…
ответить 2010-06-03 16:54:37
#19:
#18 Есть-ли какой нибудь способ ввести поддомен petya.domen.ru без перезапуска всего Апача?
если честно — сам не знаю и тоже интересно
ну а другу скажи пусть докачивает файл с опцией wget -c
ответить 2010-06-03 16:54:37
#20:
Ух ты.. не ожидал такого быстрого ответа… есть возможность по jabe говорить сейчас?
ответить 2010-06-03 16:55:48
#21:
IE Зло и я им тоже иногда пользуюсь 🙂 вот и Петя через него тащил. . 🙂
ответить 2010-06-03 16:56:47
#22: Басманов:
ffsdmad@jabber.ru
ответить 2010-06-03 17:05:56
#23:
я там отписался Олег
savaog@jabber.ru
ответить 2010-06-03 17:26:27
#24:
Дополню, в Debian можно включать виртуальный хост не симлинком, а командой a2ensite, которая делает тож самое несколько лаконичней. Т.о.:
# a2ensite supebreys_ru.conf — включаем хост
# a2dessite supebreys_ru.conf — отключаем хост
ну и перечитать конфиг апача
# /etc/init.d/apache2 reload
ответить 2010-06-29 14:46:10
#25:
Спасибо, это конечно удобно, но лишает понимания
кстати, есть ещё утилиты a2dismod и a2enmod, которые соответственно отключают и включат модули апача
ответить 2010-06-29 14:48:07
#26:
А ещё, чтобы не останавливать apache во время перезапуска можно послать ему сигнал который заставляет его перечитывать настройки
kill –SIGUSR1 PID-процесса_апаче
либо вот так, что эквивалентно
apache2ctl graceful
таким образом apache2 перечитает и обработает новые настройки без перезапуска сервера
ответить 2010-06-29 14:53:01
#27:
кстати, есть ещё утилиты a2dismod и a2enmod, которые соответственно отключают и включат модули апача
Ну коль пошла такая пьянка, предлагаю дополнить статью до поддержки SSL на виртуальных хостах. Думаю, многим будет полезно и интересно.
ответить 2010-06-29 14:56:29
#28:
хм, делал как то и даже пользовался, но не думал, что это актуально
но видимо да, необходимо переработать материал, исходя из имеющегося опыта и рассчитывая его на начинающих вебмастеров
ответить 2010-06-29 15:42:58
#29:
Спасибо, вроде доходчиво, но у меня чтото не получается..
ответить 2010-07-27 09:04:12
#30:
Для тех у кого что-то не получается или влом вручную набирать команды, я вот тут написал скриптик, автоматизирующий процесс создания.
Скрипт здесь: http://wmparser.ru/content/viewArticle/54
ответить 2010-08-11 14:07:09
#31:
при рестаре апача, он ругается на:
Syntax error on line 236 of /etc/apache2/apache2.conf:
Syntax error on line 11 of /etc/apache2/sites-enabled/fabrika_ru.conf: Expected /Directory but saw /VirtualHost
Я создал текст как у Вас в статье. А там точно 2 пустых тега Directory / и между ними инструкции allow from all и Options +Indexes?? или может как-то не так?
Вот я про что говорю:
Directory /
allow from all
Options +Indexes
Directory /
ответить 2010-08-27 15:18:00
#32:
Очепятка, должно быть
Directory /
allow from all
Options +Indexes
/Directory
ответить 2010-09-22 18:59:55
#33:
Спасибо за статью!
Разобрался за 7 минут.
Очепятку поправьте, пожалуйста, а то пришлось все комменты прочитать :).
Ну и в статье не сказано, что надо перезапускать апач.
Спасибо,
Петр
ответить 2010-11-08 19:10:37
#34:
Что-то все равно не работает, вроде все по инструкции делаю 🙁
Правда «NameVirtualHost localhost» не вставляю, ибо «[warn] NameVirtualHost localhost:0 has no VirtualHosts»
ответить 2010-11-12 13:51:59
#35:
покажите файл с этим хостом
ответить 2010-11-12 13:59:16
#36:
Последний вариант:
NameVirtualHost 127. 0.0.2:8888
VirtualHost 127.0.0.2:8888
DocumentRoot «/var/www/mysite»
ServerName mysite
Directory /
allow from all
Options +Indexes
/Directory
CustomLog /var/www/mysite/access.log common
ErrorLog /var/www/mysite/error.log
/VirtualHost
ответить 2010-11-12 14:00:42
#37:
сделайте так, в /etc/apache2/sites-available/default
пускай будет
NameVirtualHost localhost:8888
а в файле хоста
VirtualHost localhost:8888
ответить 2010-11-12 14:02:57
#38:
Кстати, оказывается работает, но не так.
Вообще localhost теперь показывает содержимое этой папки, а не той, что в default’е =\
ответить 2010-11-12 14:03:04
#39:
То же самое — http://localhost:8888 не работает, а localhost просто показывает не дефаултную папку, а папку хоста
ответить 2010-11-12 14:11:54
#40:
перечитайте всё внимательно и сделайте как тут написано, только после этого поймёте как это всё работает
ответить 2010-11-12 14:12:54
#41:
В общем с портом :80 только работает, другие порты не хочет обрабатывать.
Следовательно больше одного сайта все равно не получится во внутреннюю сеть вывести
ответить 2010-11-12 14:47:16
#42:
Ваша статья все так же актуальна)
В моем случае в директории …/sites-availible есть файлик default c предложенным конфигом и соответсвенно в директории …/sites-enabled лежит симлинк на етот default. После того как я создал файлы и симлинки к своим виртуальным хостам, можно ети default удалить? Я бы попробывал без вопросов, только вот сервер все время в деле и нельзя его уронить.
ответить 2011-03-14 15:52:06
#43: Басманов:
в default есть инструкция
NameVirtualHost *:80
в других её нету, не вижу смысла удалять default
ответить 2011-03-14 17:46:24
#44:
Restarting web server: apache2[Tue Apr 12 19:46:31 2011] [warn] NameVirtualHost 10. 93.12.14:80 has no VirtualHosts
[Tue Apr 12 19:46:31 2011] [warn] NameVirtualHost 10.93.12.14:0 has no VirtualHosts
… waiting [Tue Apr 12 19:46:32 2011] [warn] NameVirtualHost 10.93.12.14:80 has no VirtualHosts
[Tue Apr 12 19:46:32 2011] [warn] NameVirtualHost 10.93.12.14:0 has no VirtualHosts
чето пишет непонятное. пишет что имя виртуального хоста не является виртуальным хостом, барада какая то.
ответить 2011-04-12 19:59:35
#45: Басманов:
покажите вывод команды
grep NameVirtualHost -iR /etc/apache2/
ответить 2011-04-12 20:01:14
#46:
cc-wiki:/etc/apache2/sites-available# grep NameVirtualHost -iR /etc/apache2/
/etc/apache2/sites-enabled/000-default:NameVirtualHost 10. 93.12.14
/etc/apache2/ports.conf:NameVirtualHost *:80
/etc/apache2/ports.conf: # If you add NameVirtualHost *:443 here, you will also have to change
/etc/apache2/sites-available/default:NameVirtualHost 10.93.12.14
ответить 2011-04-12 20:19:51
#47:
в общем настроил все так что на самом сервере по имени открывается норм,
но у меня локальная сеть и надо чтобы в локалке тоже открывалось все это. Если есть мысли подскажите, буду признателен.
свои мысли что то про днсы, но как то они очень призрачные 🙂
ответить 2011-04-17 15:41:13
#48: Басманов:
re #48
ну чтобы это работало в локалке необходимо либо каждому прописать в файле hosts все адреса ваших сайтов
либо запустить свой dns сервер, который будет помимо обслуживания ваших доменов обрабатывать все другие запросы и прописать его у все в вашей локалке
либо тоже запустить собственный dns сервер, который будет обслуживать вашу зону, а затем делегировать эту зону на вашем локальном dns сервере
либо настроить алиасы с использовать dyndns, так как описано вот тут: http://breys. ru/blog/999.html
ответить 2011-04-17 15:45:29
#49:
dyndns отпадает, ибо сервер только локальный, во внешку доступа нету, скорее подходит второй вариант, собственный днс который обслуживать будет только нас.
спасибо за советы
ответить 2011-04-17 16:36:05
#50:
полезная статья.
подскажите пожалуйста где мне искать настройку, которая отвечает за ip моего локального сервера? дело в том, что доступ к файлам /var/www/ из веба я получаю когда ввожу в адресную строку 127.0.1.1
а я хотел бы получать доступ посе ввода 127.0.0.1
как я понимаю это настраивается потому что виндовый сервер у меня был настроен именно так. а значит в линуксе тоже скорее всего это возможно.
ответить 2011-04-25 19:54:45
#51: Басманов:
чтобы узнать в каком файле есть упоминание 127.0.1.1
нужно выполнить на сервере команду
grep -R 127.0.1.1 /etc/
рекурсивный поиск строки 127.0.1.1 в файлах директории /etc
ну а там раскручивайте дальше
ответить 2011-04-25 20:31:23
#52:
При прописывании имен в /etc/hosts
…
127.0.0.1 domen1
127.0.0.1 domen2
…
приоритетный домен будет доступен по следующим адресам:
http://localhost/
http://domen1/
Как добиться того, чтобы он был виден лишь по адресу http://domen1/
ответить 2011-08-12 10:50:32
#53:
Не могу создавать , изменять файлы в папке sites-availabel и других. Помогите пожалуйста
ответить 2011-10-09 12:56:39
#54: Басманов:
для этого нужно иметь права root администратор
используйте либо su чтобы войти в сеанс администратора
либо sudo чтобы запускать редактор с правами администратора
ответить 2011-10-09 12:58:14
#55:
По какому адресу искать сайт?
ответить 2011-10-09 14:22:04
#56: Басманов:
какой сайт?
ответить 2011-10-09 14:23:35
#57:
Свой сайт 🙂 который создал в Apache. что в браузере вводить и почему именно это?
ответить 2011-10-09 14:26:56
#58: Басманов:
вводить нужно то, что создавал и прописывал в DNS или в hosts или IP
или просто на localhost
ответить 2011-10-09 14:28:23
#59:
незнал что делать и тупо приписал в hosts под 127.0.0.1 localhost запись 127.0.0.2 и название своего сайта. Подскажите пожалуйста как надо
ответить 2011-10-09 14:32:04
#60: Басманов:
просто внимательно прочитайте страничку и ссылки с неё
ответить 2011-10-09 14:33:45
#61:
Помогите! Указываю DocumentRoot «/home/buttalbakl/sites/site. loc/www» в итоге Apache ошибку дает Warning: DocumentRoot [/etc/apache2/buttalbakl/sites/timur/www] does not exist. Как сделать чтоб путь был относительно начала системы а не относительно папок /etc/apache2/
ответить 2011-10-09 17:46:24
#62: Басманов:
может быть дадите мне доступ и я помогу настроить?
мой жаббер ffsdmad@jabber.ru
ответить 2011-10-09 17:49:27
#63:
АВТОР! РЕСПЕКТ ТЕБЕ! ПРОЧИТАЛ ДЕСЯТОК СТАТЕЙ НА ЭТУ ТЕМУ! МУТЬ ПОЛНАЯ. ПРОЧИТАЛ ТВОЮ СТАТЬЮ -ВСЁ СТАЛО КРИСТАЛЬНО ЯСНО! +100500 ТЕБЕ, АВТОР! Сорри за капс, эмоции.))
ответить 2011-10-29 02:06:46
#64:
Благодарю за статью.
Сделал всё по инструкции,а именно:
в файле /etc/apache2/sites-available/default добавил строку NameVirtualHost 192.168.13.15 (это мой айпи в локалке, т.к. мне нужен сайт именно в моей локальной сети)
далее в папке /etc/apache2/sites-available создал файл kristall-trance в который прописал:
VirtualHost *:80
DocumentRoot /var/www/kristall-trance.ks/www
ServerName 192.168.13.15
ErrorLog /var/www/kristall-trance.ks/logs/error.log
CustomLog /var/www/kristall-trance.ks/logs/access.log combined
ScriptAlias /cgi-bin/ /var/www/kristall-trance.ks/cgi-bin
ServerSignature Off
Directory /var/www/kristall-trance.ks/www
Options +Indexes
Allow from all
/Directory
/VirtualHost
далее выполнил команду: sudo ln -s /etc/apache2/sites-available/kristall-trance.conf /etc/apache2/sites-enabled/kristall-trance.conf
В результате при перезапуске apache2 выдает: [warn] NameVirtualHost 192.168.13.15:0 has no VirtualHosts
Прошу Вас указать в чём же я ошибся, хотя ошибок вроде бы и нет.
ответить 2011-12-17 11:13:52
#65:
В файле kristall-trance нет ошибки, всё прописано с угловыми скобками, просто фильтрация на этом не позволяет отобразить их.
ответить 2011-12-17 11:17:06
#66:
в /etc/apache2/sites-available/default
впиши
NameVirtualHost 192.168.13.15:80
ответить 2011-12-17 11:18:15
#67:
Прописал в файл /etc/apache2/sites-available/default следующее:
NameVirtualHost 192.168.13.15:80
В результате:
NameVirtualHost 192.168.13.15:80 has no VirtualHosts
ответить 2011-12-17 11:21:42
#68:
Дело было в том, что в файл /etc/apache2/sites-enabled/000-default прописалась (или я прописал, уже не уверен) строка: NameVirtualHost 192. 168.13.15:80
Удалил ее и ошибка пропала, но думаю, что это не верно.
ответить 2011-12-17 11:53:08
#69: Фор:
Благодарен, помогло.
ответить 2013-07-03 04:30:13
#70: Вова:
Я делаю вот так http://web-benefit.net/item/5_shagov_po_nastroyke_virtualnyiy_hostov_na_linux_mint
ответить 2013-07-16 19:38:37
#71: Юрий:
Добрый день!Как быть в данном случае если уже настроены несколько сайтов соответственно на 80-й порт, но нужно настроить еще один сайт что бы к нему был конект через https то есть через 443 порт?
ответить 2013-10-14 12:52:00
#72: Егор:
Автор спасибо тебе огромное! 2 недели бился с проблемой того, что при включении
Include /mydirectory/sites-enabled/*. conf
Апач начинал смотреть в первый по списку файл конфига, благодаря твоей статье осенило добавить ещё один Include на конфиг в котором прописал NameVirtualHost *
Может кому пригодится мой опыт:
В httpd.conf добавляем строки:
Include /mydirectory/sites-available/default.conf
Include /mydirectory/sites-enabled/*.conf
ответить 2014-04-13 19:01:50
#73: Серёга:
Благодарю за статью, на фоне остальных «гайдов» в сети а-ля делай как я, копируй все это, но что для чего по прежнему не ясно, у вас же разжевано на сколько это возможно в принципе.
Прошу помочь разобраться, как отключить поиск через SSL.
Чтобы отключить в своей сети поиск через SSL, нужно настроить запись DNS для сайта www.google.com (или локального домена Google, которым пользуются в вашем учреждении, например www.google.ru) в качестве записи CNAME для имени nosslsearch. google.com.
Для запросов, полученных на этот виртуальный IP-адрес (VIP), результаты не будут передаваться через SSL. При получении запроса через порт 443 сертификат будет подтвержден, но затем система перенаправит пользователя на страницу поиска без SSL. После первого перенаправления появится сообщение о том, что протокол SSL был отключен администратором сети.
Настройка виртуального IP-адреса NoSSLSearch распространяется только на Google Поиск и не затрагивает другие сервисы. Вход в Google Apps и авторизация в различных службах будут по-прежнему осуществляться по протоколу SSL.
/etc/apache2/sites-available/google.conf
<VirtualHost *:443>
ServerName google.ru
SSLEngine off
Redirect / https://www.google.ru/
</VirtualHost>
ответить 2014-09-08 22:02:16
#74: Эдуард:
Приветствую, создал ламп по инструкции и прикрутил phpfox платформу. В результате сайт еле еле открывается главная страница, если открываеш любую другую — пишет внутренний Ip сервера/имя страницы и зависает…. Сайт su-50.com, при работе на реальном хостинге все работало норм, дистриб проверенный — что может быть?
ответить 2015-04-21 23:33:34
Как настроить виртуальные хосты Apache в Debian 10
23.10.20202020-10-23T13:12:44+03:002021-01-14T14:38:49+03:00 Debian, Linux Комментариев нет
Виртуальные хосты Apache позволяют запускать более одного веб-сайта на одной машине. С помощью виртуальных хостов вы можете указать корень документа сайта (каталог, содержащий файлы веб-сайта), создать отдельную политику безопасности для каждого сайта, использовать разные сертификаты SSL и многое другое.
В этой статье описывается, как настроить виртуальные хосты Apache на сервере Debian 10.
Содержание
Подготовка
Прежде чем продолжить изучение этого руководства, убедитесь, что вы выполнили следующие требования:
- Доменное имя, указывающее на IP вашего публичного сервера.
- Apache установлен в вашей системе CentOS .
- Вы вошли в систему как root или пользователь с привилегиями sudo .
Создайте структуру каталогов
Корневой каталог документа — это каталог, в котором файлы веб-сайта для доменного имени хранятся и обслуживаются в ответ на запросы. Корень документа может быть установлен в любое место по вашему желанию.
Мы будем использовать следующую структуру каталогов:
/var/www/ ├── domain1.com │ └── public_html ├── domain2.com │ └── public_html ├── domain3.com │ └── public_html
Каждый домен, размещенный на сервере, будет иметь корневой каталог документа /var/www/<domain_name>/public_html
.
Начнем с создания корневого каталога документов для первого домена example.
: com
sudo mkdir -p /var/www/example.com/public_html
Мы также создадим файл index.html
внутри корневого каталога документов домена, который будет отображаться при посещении домена в браузере.
Откройте ваш любимый текстовый редактор, создайте новый файл и вставьте в него следующее:
/var/www/example.com/public_html/index.html
<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>Welcome to example.com</title> </head> <body> <h2>Success! example.com home page!</h2> </body> </html>
Поскольку приведенные выше команды выполняются от имени пользователя sudo, вновь созданные файлы и каталоги принадлежат пользователю root. Чтобы избежать проблем с разрешениями, измените владельца корневого каталога документов домена и всех файлов в каталоге пользователю apache ( www-data
):
sudo chown -R www-data: /var/www/example.com
Создать виртуальные хосты
В системах Debian файлы конфигурации виртуальных хостов Apache расположены в каталоге /etc/apache2/sites-available
и могут быть включены путем создания символических ссылок на каталог /etc/apache2/sites-enabled
, который Apache читает во время запуска.
Откройте нужный текстовый редактор и создайте следующий базовый файл конфигурации виртуального хоста:
/etc/apache2/sites-available/example.com.conf
<VirtualHost *:80> ServerName example.com ServerAlias www.example.com ServerAdmin [email protected] DocumentRoot /var/www/example.com/public_html <Directory /var/www/example.com/public_html> Options -Indexes +FollowSymLinks AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined </VirtualHost>
ServerName
: домен, который должен соответствовать данной конфигурации виртуального хоста.Это должно быть ваше доменное имя.
ServerAlias
: все другие домены или субдомены, которые также должны соответствовать этому виртуальному хосту, обычно субдоменwww
.DocumentRoot
: каталог, из которого Apache будет обслуживать файлы домена.Options
: эта директива определяет, какие функции сервера доступны в определенном каталоге.-Indexes
: предотвращает-Indexes
каталогов.FollowSymLinks
: если этот параметр включен, Apache будет следовать символическим ссылкам.
AllowOverride
: указывает, какие директивы, объявленные в файле.htaccess
могут переопределять директивы конфигурации.ErrorLog
,CustomLog
: указывает расположение файлов журнала.
Отредактируйте файл в соответствии с вашими потребностями и сохраните его.
Вы можете назвать файл конфигурации как хотите. Лучше всего использовать доменное имя в качестве имени файла конфигурации виртуального хоста.
Чтобы включить новый файл виртуального хоста, используйте вспомогательный сценарий a2ensite
который создает символическую ссылку из файла виртуального хоста в каталог с поддержкой sites-enabled
:
sudo a2ensite example.com
Другой вариант — вручную создать символическую ссылку, как показано ниже:
sudo ln -s /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-enabled/
После включения конфигурации проверьте правильность синтаксиса:
sudo apachectl configtest
Если ошибок нет, вы увидите следующий вывод:
Syntax OK
Перезапустите службу apache2
чтобы изменения вступили в силу:
sudo systemctl restart apache2
Чтобы убедиться, что все работает должным образом, откройте http://example.com
в своем любимом браузере, и вы увидите что-то вроде этого:
Выводы
В этом руководстве мы показали вам, как создать конфигурацию виртуального хоста Apache в Debian 10, Buster. Вы можете повторить описанные выше шаги и создать дополнительные виртуальные хосты для всех ваших доменов.
Если вы хотите защитить свой веб-сайт с помощью сертификата SSL, вы можете создать и установить бесплатный сертификат Letsencrypt SSL .
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Этот пост является частью серии «Как установить LAMP Stack на Debian 10». Другие сообщения из этой серии:
- Как установить MariaDB на Debian 10
- Как установить веб-сервер Apache в Debian 10 Linux
- Как установить PHP в Debian 10 Linux
- Защитите Apache с помощью Let’s Encrypt в Debian 10
Установка и настройка в Apache на Ubuntu виртуальных хостов | Установка Ubuntu Apache
Каждый владелец VPS сталкивается с вопросом, как разместить несколько сайтов на одном сервере с одним IP-адресом. Если вы используете в качестве веб-сервера Apache, виртуальные хосты (virtual hosts) — верное решение для разделения ресурсов и отдельной конфигурации для каждого сайта.
Предварительная настройка
Все действия осуществляются на сервере через подключение по SSH. Перед тем как приступить к настройке виртуальных хостов, необходимо произвести настройку сервера.
Создание пользователя
По умолчанию после создания сервера для доступа к нему создаётся root пользователь. В целях безопасности не рекомендуем работать под суперюзером.
Чтобы создать пользователя, введите команду:
adduser userName
Где UserName — имя нового пользователя.
Система попросит ввести пароль для нового пользователя и дополнительную информацию:
Теперь установите права доступа, чтобы новый пользователь мог использовать команду sudo. Для этого выполните команду:
usermod -aG sudo UserName
Где UserName — имя созданного ранее пользователя.
Готово, новый пользователь создан. Завершите SSH-сеанс под root и подключитесь к серверу под новым пользователем.
Установка Ubuntu Apache
Чтобы выполнить действия ниже, у вас должен быть установлен Apache. Для полноценной работы сайта рекомендуем установить LAMP (Linux Apache MySQL PHP). Это минимальный набор ПО, который чаще всего используется для размещения и запуска сайта. Как установить LAMP, вы можете узнать в инструкции.
Подготовка доменов
Ваши домены должны быть привязаны к облачному серверу. Сделать это вы можете по инструкции.
Обратите внимание
В данной инструкции будут приведены примеры с доменами faq-reg.ru и support-faq.ru. В тех местах, где они будут встречаться, измените домены на свои.
Подготовка каталогов
Подготовим структуру каталогов. Рабочая директория Apache — /var/www. В данной директории мы будем создавать отдельные каталоги для каждого домена (виртуального хоста).
Чтобы создать каталоги, выполните команды:
sudo mkdir -p /var/www/faq-reg.ru/
sudo mkdir -p /var/www/support-faq.ru/
В этих каталогах будут храниться файлы вашего сайта. Далее необходимо установить права доступа к ним:
sudo chmod -R 755 /var/www
sudo chown -R $USER:$USER /var/www/faq-reg.ru/
sudo chown -R $USER:$USER /var/www/support-faq.ru/
Готово, структура каталогов и права доступа настроены. Далее подготовим демостраницы.
Создание демостраниц
Перед тем как настроить конфигурационный файл, для удобной проверки финального результата мы создадим демостраницу для каждого виртуальная хоста. В каждую папку мы поместим файл index.html, в котором будет строка с именем домена.
Для faq-reg.ru:
echo "<h2>faq-reg.ru</h2>" > /var/www/faq-reg.ru/index.html
Для support-faq.ru:
echo "<h2>support-faq.ru</h2>" > /var/www/support-faq.ru/index.html
Не забудьте заменить доменные имена на ваши.
Готово, теперь после настройки виртуальных хостов мы сможем проверить корректность их работы.
Создание конфигурационных файлов и настройка
Файл конфигурации Ubuntu Apache virtual hosts отвечает за обработку запросов к разным доменам. У Apache существует дефолтный файл конфигурации, который можно использовать в качестве шаблона. Его название может отличаться в зависимости от настроек сервера. В качестве примера мы обозначим название конфига как 000-default.conf. Для каждого виртуального хоста необходимо будет скопировать его, задать произвольное имя (рекомендуем использовать имя домена) и произвести определённые настройки. Обязательное условие — соблюдение расширения файла: .conf
Создание конфига для faq-reg.ru
- 1.
Скопируйте шаблон конфига для первого домена с помощью команды:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/faq-reg.ru.conf
Где 000-default.conf — название конфигурационного файла по умолчанию.
- 2.
Откройте созданный файл командой:
sudo nano /etc/apache2/sites-available/faq-reg.ru.conf
- 3.
В файле присутствует секция VirtualHost для обработки запросов на 80 порт (порт для HTTP-запросов).
Заполните оставшиеся поля:
- ServerAdmin — укажите электронный адрес администратора;
- ServerName — укажите домен, для которого вы создаёте конфигурационный файл;
- ServerAlias — раскомментируйте эту строку: удалите решётку в начале строки. В ней укажите псевдоним домена. Часто используется вид www.domain.ru;
- DocumentRoot — укажите каталог домена, который вы создали на этапе подготовки;
- ErrorLog и CustomLog — упомяните домен в названии файла. Так вы сможете быстрее идентифицировать файлы логов;
- Directory — ещё раз укажите каталог домена, который вы создали на этапе подготовки.
Затем сохраните изменения в файле и закройте его:
- 4.
Настройка виртуального хоста для первого домена завершена. Скопируйте этот файл для второго домена с помощью команды:
sudo cp /etc/apache2/sites-available/faq-reg.
ru.conf /etc/apache2/sites-available/support-faq.ru.conf
Не забудьте изменить faq-reg.ru.conf и support-faq.ru.conf на имена ваших доменов.
- 5.
Откройте файл для редактирования:
sudo nano /etc/apache2/sites-available/support-faq.ru.conf
- 6.
Заполните поля:
- ServerAdmin — укажите электронный адрес администратора;
- ServerName — укажите домен, для которого вы создаёте конфигурационный файл;
- ServerAlias — раскомментируйте эту строку: удалите решётку в начале строки. В ней укажите псевдоним домена. Часто используется вид www.domain.ru;
- DocumentRoot — укажите каталог домена, который вы создали на этапе подготовки;
- ErrorLog и CustomLog — упомяните домен в названии файла. Так вы сможете быстрее идентифицировать файлы логов;
- Directory — ещё раз укажите каталог домена, который вы создали на этапе подготовки.
Затем сохраните изменения и закройте файл:
- 7.
Деактивируйте конфиг по умолчанию командой:
sudo a2dissite 000-default.conf
И активируйте созданные конфиги:
sudo a2ensite faq-reg.ru.conf
sudo a2ensite support-faq.ru.conf
- 8.
Перезапустите Apache командой:
sudo service apache2 restart
Готово, создание и настройка виртуальных хостов завершена. Далее можем проверить результат.
Проверка работы виртуальных хостов
Если вы заранее привязали ваши домены к серверу и делегирование уже произошло, при переходе по домену должна открыться страница, которую мы создали на этапе «Создание демостраниц».
Если с момента изменения DNS прошло менее 24 часов и домен ещё не делегирован, увидеть результат вы можете, настроив локальные хосты в файле hosts. Подробнее в инструкции.
При переходе по домену faq-reg.ru:
При переходе по домену support-faq.ru:
Готово, файл index. html можно удалить. Далее вы можете загрузить файлы сайта в созданные директории.
Помогла ли вам статья?
Да
1 раз уже помогла
Apache HTTP Server | Русскоязычная документация по Ubuntu
Содержание
Apache HTTP Server
Версии Apache в Ubuntu
Хостинг сайтов
Установка
Настройка
Кодировка по умолчанию
Виртуальные хосты
Модули
Настройка HTTPS в Apache
Создание ключа и ssl-сертификата
Настройка Apache
Перенаправление HTTP запросов на HTTPS
Ссылки
Возможные проблемы
Смотрите также
Ссылки
Apache HTTP Server — проект, развиваемый The Apache Software Foundation, в рамках которого разрабатывается кроссплатформенный HTTP сервер с открытым исходным кодом. Входит в состав LAMP и XAMPP.
Версии Apache в Ubuntu
Ubuntu | Apache |
---|---|
12.04 LTS (Precise) | 2.2 |
14.04 LTS (Trusty) | 2.4 |
15.10 (Wily) | 2.4 |
16.04 LTS (Xenial) | 2.4 |
Хостинг сайтов
Можно реализовать четырьмя способами:
по умолчанию в папке /var/www/html. Доступом является http://localhost/
настройки основного хостинга. Например, http://localhost/phpmyadmin
в любой папке с помощью модуля виртуальных хостов. Например, http://mysite/
в папке пользователя public_html (модуль userdir). Например, http://localhost/~username
Установка
Для установки Apache выполните в терминале:
sudo apt-get install apache2
Настройка
Для применения изменений в настройках необходимо перезапустить демон Apache:
sudo service apache2 restart
В Ubuntu конечный файл настройки (apache2. conf) расделён на несколько файлов, расположенных в разных поддиректориях. Подробней написано в комментариях файла apache2.conf.
/etc/apache2/ |-- apache2.conf | `-- ports.conf |-- mods-enabled | |-- *.load | `-- *.conf |-- conf-enabled | `-- *.conf `-- sites-enabled `-- *.conf
Настройки модулей расположены в директории /etc/apache2/mods-available. Для подключения или отключения модулей (настроек модулей) следует использовать соответствующие команды a2enmod
или a2dismod
. Пример подключения модуля:
sudo a2enmod <mod-name>
Свои настройки следует сохранять в файлы, расположенные в директории /etc/apache2/conf-available. Для подключения или отключения своих настроек следует использовать соответствующие команды a2enconf
или a2disconf
. Пример подключения файла со своими настройками:
sudo a2enconf <config-name>
Настройки виртуальных хостов следует сохранять в файлы, расположенные в директории /etc/apache2/sites-available. Для подключения виртуальных хостов следует использовать соответствующие команды
a2ensite
или a2dissite
. Пример подключения виртуального хоста:
sudo a2ensite <site-name>
Кодировка по умолчанию
Для указания кодировки по умолчанию следует использовать директиву AddDefaultCharset
в файле /etc/apache2/conf-available/charset.conf (или раскомментировать соответствующую строку):
AddDefaultCharset UTF-8
Виртуальные хосты
Файлы настроек виртуальных хостов хранятся в /etc/apache2/sites-available/*.conf. По умолчанию в Apache уже настроен один виртуальный хост. Его настройки лежат в файле 000-default.conf. Вы можете использовать этот виртуальный хост в качестве примера.
Пример настройки виртуального хоста:
<VirtualHost *:80> #Имя хоста ServerName host1.server1 #Корневая папка хоста DocumentRoot /var/www/host1.server1 <Directory /var/www/host1.server1> #Разрешение на перезапись всех директив при помощи .htaccess AllowOverride All </Directory> </VirtualHost>
Назовите файл настройки именем вашего хоста host1.server1.conf и сохраните.
После создания файла настроек допишите в /etc/hosts имя вашего хоста:
127.0.0.1 host1.server1
Для включения созданного виртуального хоста используется утилита a2ensite
:
sudo a2ensite host1.server1
Отключается хост аналогично утилитой a2dissite
:
sudo a2dissite host1.server1
Модули
mod_userdir
Модуль mod_userdir
позволяет использовать директории, находящиеся в домашних директориях пользователей для хранения веб страниц. По умолчанию Apache ищет запрашиваемые страницы в директории ~/public_html
mkdir ~/public_html
Чтобы включить mod_userdir
, выполните:
sudo a2enmod userdir
и добавьте необходимого пользователя в группу www-data:
sudo adduser $USER www-data
после чего перезагрузите Apache:
sudo service apache2 restart
Страницы будут доступны по адресу http://localhost/~username, где username — имя пользователя.
Настройка public_html подробно.
CGI
Если Вы хотите запускать на сервере cgi-скрипты, подключите модуль cgi
командой
sudo a2enmod cgi
По умолчанию cgi-скрипты размещаются в директории /usr/lib/cgi-bin, но вы можете разместить их где угодно, указав это в настройках своего виртуального хоста, либо глобально для всех хостов в файле /etc/apache2/conf-enabled/serve-cgi-bin.conf.
Eсли ваш сервер работает во внешней сети, то в целях безопасности настоятельно рекомендуется размещать cgi-скрипты вне корневой директории виртуального хоста
Настройка HTTPS в Apache
Веб-сервер Apache полностью поддерживает работу по HTTPS. Чтобы активировать поддержку HTTPS на уже установленном Apache, необходимо выполнить следующее.
Создание ключа и ssl-сертификата
Использование самоподписанных сертификатов хоть и защищает от пассивного прослушивания, тем не менее не гарантирует клиентам, что сервер является именно тем сервером, который им нужен. Преимуществом самоподписанных сертификатов является их бесплатность. Сертификат, подписанный компанией-сертификатором (Certificate authority), стоит денег.
Для создания ключа и сертификата вводим команду:
openssl req -new -x509 -days 30 -keyout server.key -out server.pem
На вопрос «Enter PEM pass phrase:» отвечаем паролем, подтверждаем и запоминаем.
На все последующие вопросы отвечаем произвольно, можно просто щелкать по Enter, соглашаясь с предложенными вариантами, только на вопрос «Common Name (eg, YOUR name) []:» отвечаем именем сайта, для которого создаем сертификат, например www.example.com.
После ответа на все вопросы в директории должны появиться два новых файла — server.pem
(ключ) и server.crt
(сертификат).
Чтобы использовать сгенерированный ключ, нужно знать пароль, введённый нами, и Apache будет спрашивать его у нас при загрузке, а к чему нам лишние вопросы от демонов? 🙂 Поэтому снимаем пароль с ключа:
cp server.key{,.orig} openssl rsa -in server.key.orig -out server.key rm server.key.orig
Скопируем их в /etc/ssl и назначим файлу ключа права чтения только администратору:
sudo cp server.pem /etc/ssl/certs/ sudo cp server.key /etc/ssl/private/ sudo chmod 0600 /etc/ssl/private/server.key
Настройка Apache
Для начала необходимо активировать mod_ssl
:
sudo a2enmod ssl
А затем включить настройки HTTPS сайта по умолчанию:
sudo a2ensite default-ssl
Теперь необходимо отредактировать файл с настройками HTTPS сайта по умолчанию, указав в нём пути к вашим сертификатам. Сам файл называется /etc/apache2/sites-enabled/default-ssl
(или /etc/apache2/sites-enabled/default-ssl.conf
).
В этом файле рекомендуется после директивы
SSLEngine on
добавить строчку
SSLProtocol all -SSLv2
чтобы запретить использование устаревшего протокола SSLv2.
Дальше вам необходимо отредактировать параметры, ответственные за сертификаты.
# Публичный сертификат сервера SSLCertificateFile /etc/ssl/certs/server.pem # Приватный ключ сервера SSLCertificateKeyFile /etc/ssl/private/server.key
Теперь просто перезагрузите Apache:
sudo service apache2 restart
И если все параметры указаны верно, ваши сайты станут доступны по HTTPS.
Протокол HTTPS работает по 443 порту, поэтому если сервер находится за шлюзом, то необходимо на нём пробросить данный порт.
Перенаправление HTTP запросов на HTTPS
Если вы хотите запретить использование HTTP, то самым разумным будет перенаправлять все HTTP запросы к страницам на их HTTPS адрес. Сделаем это с помощью mod_alias
. Если он не включён — включаем:
sudo a2enmod alias sudo service apache2 restart
Затем изменяем файл /etc/apache2/sites-enabled/000-default
, отвечающий за виртуальный хост по умолчанию для HTTP запросов. В этот файл добавляем директиву
Redirect / https://example.com/
При этом все настройки директорий можно удалить, поскольку по HTTP на ваши сайты всё равно будет не попасть.
Всё, теперь ещё раз перезапустите Apache и убедитесь, что при заходе по HTTP вы автоматически перенаправляетесь на HTTPS-страницу.
Ссылки
Источник
When not to use mod_rewrite
Возможные проблемы
Если при запуске появляется ошибка
apache2: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
добавьте в свой файл конфигурации строку
ServerName localhost
Смотрите также
nginx
lighttpd
Настройка public_html
Ссылки
Официальный сайт Apache HTTP Server (англ.)
Статья в «Википедии»
Apache worker with php5 (англ.
)
apache, httpd, http, https, lamp, SSL, администрирование, веб-сервер
Как настроить виртуальные хосты Apache в Ubuntu 22.04
Термин «виртуальный хостинг » относится к размещению множества доменов на одном сервере. В системах на базе Linux, таких как Ubuntu 22.04 , виртуальный хост — это директива конфигурации в Apache, которая позволяет вам управлять несколькими веб-сайтами на одном сервере.
В этой статье будет обсуждаться метод Set U p Apache Virtual Hosts на Ubuntu 22.04 . Итак, начнем!
Настройка виртуальных хостов Apache в Ubuntu 22.04Чтобы настроить виртуальные хосты Apache в Ubuntu 22.04, ознакомьтесь с приведенной ниже процедурой.
Шаг 1: Проверьте статус службы apache2 Перед настройкой виртуальных хостов важно проверить, работает ли Apache. Для этого мы проверим статус службы « apache2 »:
$ systemctl status apache2
Приведенное ниже показывает, что « apache2 ”В нашей системе активна служба:
Вы также можете использовать свой любимый веб-браузер для указанной проверки. Для этого откройте веб-браузер и проверьте, что видит веб-страница « localhost »:
Переход на веб-страницу « localhost » указывает на то, что веб-сервер Apache работает правильно. Теперь мы перейдем к процедуре настройки виртуального хоста Apache.
Шаг 2. Настройте виртуальный хост Apache в Ubuntu 22.04Для установите виртуальный хост в Apache , создайте каталог, который будет использоваться для хранения данных на веб-сайте. Для этого мы перейдем в каталог « /var/www », используя следующую команду « cd »:
$ cd /var/www/
Затем мы создадим каталог для нашего домен « example. com ». Здесь вы можете указать свое доменное имя в приведенной ниже команде:
$ sudo mkdir -p /var/www/example.com/
Используйте команду « chown » для изменения владельца каталога « example.com »:
$ sudo chown -R www-data:www-data /var/www/example.com
Шаг 3: Создание веб-страницыЧтобы создать образец веб-страницы « index.html » для нашего веб-сайта, мы будем использовать редактор « nano »:
$ sudo nano /var/www /example.com/index.html
В открывшемся файле запишите следующий код:
Успех! В этом руководстве рассказывается о настройке apache2!
После добавления кода нажмите « Ctrl+O », чтобы сохранить файл:
Шаг 4: Создание файла виртуального хоста Apache На этом этапе мы создали каталог для нашего домена и обновили его владельца. Теперь будем создать файл виртуального хоста в каталоге файлов хоста Apache по умолчанию:
$ sudo nano /etc/apache2/sites-available/example.com.conf
В открытый файл виртуального хоста добавьте следующие строки кода. Кроме того, вы должны заменить информацию, относящуюся к « ServerName », « ServerAlias » и « DocumentRoot » в соответствии с вашими настройками:
ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_0DIR}/access.log вместе взятых
Нажмите « Ctrl+O », чтобы сохранить добавленный код файла конфигурации виртуального хоста:
Шаг 5: Включить файл виртуального хостаВыполните следующую команду « a2ensite» 90 для включения созданного файла виртуального хоста:
$ sudo a2ensite example. com.conf
Затем отключите файл конфигурации по умолчанию:
$ sudo a2dissite 000-default.conf
После выполнения указанной операции. Перезапустите службу « apache » в вашей системе Ubuntu 22.04:
$ sudo systemctl restart apache2
Шаг 6: Тестирование ошибокНа последнем этапе настройки Apache2 проверьте ошибки конфигурации:
$ sudo apache2ctl configtest
В случае наличия безошибочного файла конфигурации выполнение приведенной выше команды сообщит вам, что синтаксис « OK »:
Затем перезапустите « apache2 ” в вашей системе Ubuntu 22.04 :
$ sudo systemctl перезапустить apache2
Шаг 7: Тестирование виртуального хоста Apacheна указанном виртуальном домене. В нашем случае домен « example.com ”:
Отображаемая информация подтверждает, что наш виртуальный хост Apache запущен и отлично работает в системе Ubuntu 22. 04.
Чтобы настроить виртуальные хосты Apache в Ubuntu 22.04, создайте каталог в файлах конфигурации веб-сервера Apache по умолчанию, измените его владельца и установите
3 хост-сервер
. После выполнения указанных операций перезапустите службу « apache2 » , и все готово. В этой статье обсуждался метод для настройки виртуальных хостов Apache в Ubuntu 22.04.Как настроить виртуальные хосты Apache на Rocky Linux
Джеймс Киари Категории Apache, Rocky Linux Оставить комментарий
Это необязательный шаг, предназначенный только для тех, кто хочет разместить несколько сайтов на одном сервере. Пока наша установка LAMP может содержать только один сайт. Если вы хотите разместить несколько сайтов, вам необходимо установить или настроить файлы виртуального хоста. Файлы виртуального хоста Apache инкапсулируют конфигурации нескольких веб-сайтов.
В этом разделе мы создадим файл виртуального хоста Apache, чтобы продемонстрировать, как настроить виртуальные хосты в Rocky Linux .
Требования
- Чтобы это было успешно, вам необходимо иметь полное доменное имя , указывающее на общедоступный IP-адрес вашего сервера в панели управления хостингом DNS.
- Экземпляр Rocky Linux 8 с установленным стеком LAMP.
Примечание : В нашей настройке мы используем доменное имя tecmint.info
, который указывает на общедоступный IP-адрес нашего виртуального сервера. Обязательно используйте свое собственное доменное имя во всех случаях, когда появляется наше доменное имя.
Создание структуры виртуальных каталогов Apache
Первым шагом является создание каталога, в котором будут размещаться файлы веб-сайта или домена. Это будет DocumentRoot , который будет находиться по пути /var/www/. Поэтому выполните следующую команду.
$ sudo mkdir -p /var/www/tecmint.info/html
Далее мы создадим простой файл index.html , который мы будем использовать для тестирования нашего файла виртуального хоста.
$ sudo vim /var/www/tecmint.info/html/index.html
Вставьте следующие строки HTML.
<голова>Добро пожаловать на tecmint.info! <тело>Успех! Виртуальный хост tecmint.info активен и работает!
Сохраните файл HTML и выйдите.
Затем назначьте разрешения текущему вошедшему в систему пользователю, чтобы они могли редактировать веб-каталоги без проблем с разрешениями.
$ sudo chown -R $USER:$USER /var/www/tecmint.info/html
Создание файла виртуального хоста Apache
На этом этапе мы создадим отдельный файл виртуального хоста для нашего домена. По умолчанию Rocky Linux 8 , так же как и CentOS 8 , загружает все свои конфигурации из /etc/httpd/conf.d каталог.
Итак, продолжайте и создайте отдельный файл виртуального хоста.
$ sudo vim /etc/httpd/conf.d/tecmint.info.conf
Вставьте содержимое ниже, чтобы определить виртуальный хост.
<Виртуальный хост *:80> Имя сервера www.tecmint.info Псевдоним сервера tecmint.info DocumentRoot /var/www/ tecmint.info /html <Каталог /var/www/ tecmint.info /html> Опции -Индексы +FollowSymLinks Разрешить переопределить все Журнал ошибок /var/log/httpd/ tecmint.info -error.log CustomLog /var/log/httpd/ tecmint.info -access.log вместе
Сохраните изменения и закройте файл виртуального хоста.
Чтобы проверить правильность всех конфигураций, выполните команду:
$ sudo apachectl configtestПроверьте конфигурацию Apache в Rocky Linux
Затем перезапустите Apache, чтобы изменения вступили в силу.
$ sudo systemctl перезапустить httpd
Затем запустите веб-браузер и просмотрите свой домен следующим образом:
http://tecmint.info
Это должно отобразить образец HTML-страницы, которую мы настроили на шаге 1 этого раздела. Это железное доказательство того, что наша установка виртуального хоста работает!
Проверьте домен виртуального хоста ApacheЕсли у вас несколько доменных имен, повторите те же шаги, чтобы настроить файлы виртуального хоста для каждого домена или веб-сайта.
Заключение
Вот и все. Мы успешно настроили файлы виртуального хоста для размещения нескольких веб-сайтов или доменов в Rocky Linux 8 со стеком LAMP . Вы можете приступить к размещению своих веб-приложений или защитить свой Apache с помощью SSL-сертификата, используя бесплатный Let’s Encrypt.
Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.
Если вы цените то, что мы делаем здесь, на TecMint, вам следует подумать:
TecMint — это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! искать или просматривать тысячи опубликованных статей, доступных всем БЕСПЛАТНО.
Если вам нравится то, что вы читаете, пожалуйста, купите нам кофе (или 2) в знак признательности.
Мы благодарны за вашу бесконечную поддержку.
Как установить и настроить виртуальные хосты Apache в Ubuntu?
Каждый веб-сайт, публикуемый в Интернете, размещается на веб-сервере (хосте), который может обрабатывать запросы на веб-страницы, сделанные клиентами с помощью таких браузеров, как Chrome, Firefox или Internet Explorer, и подключен к сети с помощью общедоступный IP-адрес. Установите веб-сервер перед размещением веб-сайта на своем компьютере. Одним из наиболее известных вариантов является Apache, бесплатное приложение, работающее как на платформах Windows, так и на платформах Unix. Когда несколько доменов размещаются на одном сервере, это называется «виртуальным хостингом». Виртуальный хост — это директива конфигурации Apache, которая позволяет запускать несколько веб-сайтов на одном сервере в системах на базе Linux, таких как Ubuntu 22.04 LTS. Типы виртуального хостинга описаны ниже:
- Виртуальный хостинг на основе IP: Каждый веб-сайт на сервере Apache имеет свой собственный IP-адрес.
- Виртуальные хосты на основе имен: Это позволяет добавить несколько доменов с одним IP-адресом.
Установка Apache2 на Ubuntu
Шаг 1 : Обновите репозитории с помощью приведенной ниже команды.
sudo apt update
Шаг 2 . Установите пакет apache2 с помощью диспетчера пакетов apt. Выполните приведенную ниже команду в терминале.
sudo apt-get install apache2
Настройка виртуальных хостов Apache на Ubuntu
Шаг 1: Проверьте статус службы apache2. Проверьте состояние службы apache2, выполнив приведенную ниже команду.
systemctl status apache2
Эта команда покажет, активна ли служба apache2 в нашей системе:
Для указанной проверки мы можем перейти в соответствующий браузер и проверить, что видит веб-страница «localhost»:
Шаг 2: Настройка виртуального хоста Apache на Ubuntu 22.04
Перед настройкой виртуального хоста в Apache создайте каталог, который будет использоваться для хранения данных веб-сайта. По этой причине мы будем использовать команду «cd» для перехода в каталог «/var/www».
$sudo mkdir -p /var/www/demo.com/public_html
Чтобы изменить владельца каталога «demo.com», используйте команду « chown »:
$ sudo chown -R www-данные:www-данные /var/www/demo.com
Шаг 3: Создание веб-страницы
Мы воспользуемся редактором «nano», чтобы создать пример веб-страницы «index.html» для нашего веб-сайта:
$ sudo nano /var/www/ demo.com/index.html
в файле, который был открыт, введите следующий код:
Индекс. HTML
HTML
9002 | 9002 < html >
|
Чтобы сохранить файл после вставки кода, нажмите « Ctrl+O »:
Шаг 4: Создание файла виртуального хоста Apache0004
Теперь мы обновили владельца нашего домена и создали для него каталог. Теперь мы создадим файл виртуального хоста в каталоге файлов хостов Apache по умолчанию:
sudo nano /etc/apache2/sites-available/demo.com.conf
Добавьте следующие строки кода в виртуальный хост. файл, который был открыт. Кроме того, вы должны изменить данные для «ServerName», «ServerAlias» и «DocumentRoot» в соответствии с вашими настройками:
ServerName demo.com
ServerAlias www.demo.com
ServerAdmin webmaster@demo.com
DocumentRoot /var/www/demo.com/public_html
Options -Indexes +FollowSymLinks
AllowOverride All
ErrorLog ${APACHE_LOG_DIR}/demo.
com-error.log
Custom_Log $_{APACHE_LOG_DIR} -access.log объединено
Чтобы сохранить измененный код в файле конфигурации виртуального хоста, нажмите « Ctrl+O »:
создан файл виртуального хоста, используйте команду «a2ensite» следующим образом:
$ sudo a2ensite demo.com.conf
Затем отключите файл конфигурации по умолчанию:
$ sudo a2dissite 000-default.conf
После выполнения заданного действия. Службу «apache2» необходимо перезапустить в вашей системе Ubuntu 22.04 LTS.
$ sudo SystemCtl restart Apache2
Шаг 6: Тестирование ошибок
Проверка ошибки конфигурации на последней фазе конфигурации Apache2:
$ sudo Apache2ctl Configtest
ваш файл конфигурации не содержит ошибок, и если синтаксис « OK ":
В нашей системе Ubuntu 22. 04 LTS перезапустите службу "apache2" после этого:
$ sudo systemctl restart apache2
чтобы проверить ваш виртуальный хост. Домен в этом экземпляре — « demo.com »:
Приведенная информация демонстрирует, что наш виртуальный хост Apache работает и безупречно работает на машине с Ubuntu 22.04 LTS.
Развертывание виртуального хоста веб-сервера apache httpd в RedHat-подобных системах — модули Ansible yum, file, copy, template, service и firewalld
Как автоматизировать развертывание виртуального хоста веб-сервера apache httpd «example.com» на Системы, подобные RedHat, с настраиваемой веб-страницей, обеспечивающей мгновенную загрузку, установку и включение службы при загрузке, а также открытие соответствующих портов брандмауэра с модулями Ansible yum, file, copy, template, service и firewalld. CentOS, Fedora, RockyLinux, AlmaLinux, Amazon Linux — все подобные дистрибутивы.
1 марта 2022 г.
#сервер #линукс #веб сервер #апач #www #Красная Шапка #федора #centos
Как развернуть виртуальный хост веб-сервера apache httpd в системах, подобных RedHat, с помощью Ansible?
Я покажу вам живую демонстрацию с простым кодом Ansible. Эта демонстрация быстрая и грязная, но она показывает вам основы технологии автоматизации Ansible, которую вы могли бы использовать в своем системном администраторе каждый день. Меня зовут Лука Бертон, и добро пожаловать на сегодняшний выпуск Ansible Pilot.
Развернуть виртуальный хост apache httpd веб-сервера на RedHat-подобных системах
- install packages =>
ansible.builtin.yum
- document root =>
ansible.builtin.file
- custom index2.
html =>
- custom index2.html ansible.builtin.copy
- Apache virtualhost =>
ansible.builtin.template
- start service =>
ansible.builtin.service
- open firewall =>
ansible.posix.firewalld
Сегодня мы поговорим о том, как развернуть веб-сервер apache httpd в RedHat-подобных системах Linux.
Полный процесс требует шести шагов, которые можно автоматизировать с помощью различных модулей Ansible.
Во-первых, вам нужно установить пакет httpd
и зависимость, используя модуль ansible.builtin.yum
Ansible.
Во-вторых, вам нужно создать корень документа с нужным разрешением с модулем ansible.builtin.file
.
Жаждущие, вам нужно создать пользовательский index.html с ansible.builtin.copy
Модуль Ansible. Вы можете обновить этот шаг, используя модуль шаблона
.
В-четвертых, вам необходимо настроить конфигурацию Apache для конкретного виртуального хоста с помощью модуля ansible.
.
В-пятых, нужно запустить службу builtin.template
httpd
и включить ее при загрузке и все зависимые с помощью модуля ansible.builtin.service
Ansible.
В-шестых, вам необходимо открыть соответствующие порты, связанные со службой брандмауэра, с помощью ansible.posix.firewalld
Модуль Ansible.
Лучшие ресурсы для Ansible
Видеокурс
- Изучите Ansible Automation на более чем 200 примерах и практических уроках: Изучите Ansible на реальных примерах использования наиболее распространенных модулей и Ansible Playbook
Книги
- Ansible для VMware на примерах: пошаговое руководство по автоматизации инфраструктуры VMware
- Ansible на примерах: более 200 примеров автоматизации для Linux и Windows System Administrator и DevOps
- Ansible для Windows на примерах: более 50 примеров автоматизации для системного администратора Windows и DevOps
- Ansible для Linux на примерах: более 100 примеров автоматизации для системного администратора Linux и DevOps
- Файловая система Ansible Linux на примерах: более 40 примеров автоматизации в Linux Работа с файлами и каталогами для современной ИТ-инфраструктуры
- Ansible для контейнеров и Kubernetes на примерах: 20+ примеров автоматизации для автоматизации контейнеров, Kubernetes и OpenShift
- Ansible For Security на примерах: более 100 примеров автоматизации для автоматизации безопасности и проверки соответствия требованиям современной ИТ-инфраструктуры
- Советы и рекомендации по Ansible: более 10 примеров Ansible для экономии времени и автоматизации дополнительных задач Более 20 примеров автоматизации работы пользователей и групп Linux для современной ИТ-инфраструктуры
- Примеры Ansible для PostgreSQL: более 10 примеров автоматизации базы данных PostgreSQL
- Примеры Ansible для Amazon Web Services AWS: более 10 примеров автоматизации современной инфраструктуры AWS
demo
Разверните виртуальный хост веб-сервера apache httpd в системах, подобных RedHat, с помощью Ansible Playbook.
код
- httpd_redhat_vhost.yml
--- - имя: настроить веб-сервер с vhost хозяева: все становятся истинными вары: app_user: "апач" http_host: "example.com" http_conf: "example.com.conf" http_порт: "80" задачи: - имя: httpd установлен ansible.builtin.yum: имя: httpd состояние: последний - имя: корень документа существует доступный.встроенный.файл: путь: "/var/www/{{ http_host }}" состояние: каталог владелец: "{{ app_user }}" режим: '0755' сеттип: "httpd_sys_content_t" - имя: пользовательский index.html доступная.встроенная.копия: место назначения: "/var/www/{{ http_host }}/index.html" содержание: | Пользовательская веб-страница - имя: настроить виртуальный хост Apache доступный.встроенный.шаблон: источник: "шаблоны/httpd.conf.j2" место назначения: "/etc/httpd/conf.d/{{ http_conf }}" - имя: служба httpd включена доступный.встроенный.сервис: имя: httpd включено: правда состояние: перезапущен - имя: открыть брандмауэр ansible.posix.firewalld: сервис: http состояние: включено немедленно: правда постоянный: правда
- templates/httpd.conf.j2
ServerAdmin [email защищен] ИмяСервера {{ http_host }} Псевдоним сервера www.{{ http_host }} Журнал ошибок /var/log/httpd/error.log CustomLog /var/log/httpd/access.log вместе DocumentRoot "/var/www/{{ http_host }}"
выполнение
ansible-pilot $ ansible-playbook -i virtualmachines/demo/inventory services/httpd_redhat_vhost.yml PLAY [настройка веб-сервера с vhost] ************************************************* ********************** ЗАДАНИЕ [Сбор фактов] *************************************************** ********************************** хорошо: [demo.example.com] ЗАДАЧА [httpd установлен] ************************************************ ********************************** изменено: [demo.example.com] ЗАДАЧА [корневой документ существует] **************************************************** ******************************* изменено: [demo.example.com] ЗАДАЧА [пользовательский index.html] ************************************************* ********************************** изменено: [demo.example.com] ЗАДАЧА [настройка виртуального хоста Apache] ************************************************* ************************* изменено: [demo.example.com] ЗАДАЧА [служба httpd включена] **************************************************** **************************** изменено: [demo.example.com] ЗАДАЧА [открыть брандмауэр] *************************************************** ************************************ изменено: [demo.example.com] ОБЗОР ИГРЫ ******************************************************* ******************************************* demo.
example.com : ok=7 изменено=6 недостижимо=0 не удалось=0 пропущено=0 спасено=0 проигнорировано=0 ansible-пилот $
идемпотентность
ansible-pilot $ ansible-playbook -i virtualmachines/demo/inventory services/httpd_redhat_vhost.yml PLAY [настройка веб-сервера с vhost] ************************************************* ********************** ЗАДАНИЕ [Сбор фактов] *************************************************** ********************************** хорошо: [demo.example.com] ЗАДАЧА [httpd установлен] ************************************************ ********************************** хорошо: [demo.example.com] ЗАДАЧА [корневой документ существует] **************************************************** ******************************* хорошо: [demo.example.com] ЗАДАЧА [пользовательский index.html] ************************************************* ********************************** хорошо: [demo.example.com] ЗАДАЧА [настройка виртуального хоста Apache] ************************************************* ************************* хорошо: [demo.example.com] ЗАДАЧА [служба httpd включена] **************************************************** **************************** хорошо: [demo.example.com] ЗАДАЧА [открыть брандмауэр] *************************************************** ************************************ хорошо: [demo.example.com] ОБЗОР ИГРЫ ******************************************************* ******************************************* demo.example.com : ok=7 изменено=0 недостижимо=0 не удалось=0 пропущено=0 спасено=0 проигнорировано=0 ansible-пилот $
перед выполнением
ansible-pilot $ ssh [электронная почта защищена] Последний вход: вторник, 1 марта, 16:49:38 2022 с 192.168.0.59 [[электронная почта защищена] ~]$ sudo su [[электронная почта защищена] devops]# cat /etc/os-release ИМЯ="Red Hat Enterprise Linux" ВЕРСИЯ = "8.5 (Отпа)" ID="рхел" ID_LIKE="федора" VERSION_ID="8.5" PLATFORM_ID="платформа:el8" PRETTY_NAME="Red Hat Enterprise Linux 8.5 (Необработанный)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:redhat:enterprise_linux:8::baseos" HOME_URL="https://www.redhat.com/" DOCUMENTATION_URL="https://access.redhat.com/documentation/red_hat_enterprise_linux/8/" BUG_REPORT_URL="https://bugzilla.redhat.com/" REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8" REDHAT_BUGZILLA_PRODUCT_VERSION=8.5 REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux" REDHAT_SUPPORT_PRODUCT_VERSION="8.5" [[email protected] devops]# список dnf httpd Обновление репозиториев управления подпиской. Red Hat Enterprise Linux 8 для x86_64 — AppStream (об/мин) 4,7 МБ/с | 39МБ 00:08 Red Hat Enterprise Linux 8 для x86_64 — BaseOS (об/мин) 5,2 МБ/с | 43 МБ 00:08 Последняя проверка срока действия метаданных: 0:00:01 назад, вторник, 01 марта 2022 г., 16:51:54 UTC. Доступные пакеты httpd.x86_64 2.4.37-43.module+el8.5.0+13806+b30d9eec.1 rhel-8-for-x86_64-appstream-rpm [[электронная почта защищена] devops]# rpm -qa | grep httpd [[электронная почта защищена] devops]# cat /etc/httpd/conf.d/example.com.conf cat: /etc/httpd/conf.d/example.com.conf: Нет такого файла или каталога [[электронная почта защищена] devops]# cat /var/www/example.
com/index.html cat: /var/www/example.com/index.html: Нет такого файла или каталога [[электронная почта защищена] devops]# ls -al /var/www/example.com/ ls: невозможно получить доступ к '/var/www/example.com/': нет такого файла или каталога [[электронная почта защищена] devops]# статус systemctl httpd Не удалось найти модуль httpd.service. [[электронная почта защищена] devops]# firewall-cmd --list-all публичный (активный) цель: по умолчанию icmp-инверсия блока: нет интерфейсы: eth0 eth2 источники: сервисы: кабина dhcpv6-клиент ssh порты: протоколы: вперед: нет маскарад: нет форвард-порты: исходные порты: icmp-блоки: богатые правила: [[электронная почта защищена] devops]#
после выполнения
ansible-pilot $ ssh [электронная почта защищена] Последний вход: вторник, 1 марта, 15:44:18 2022 с 192.168.0.59 [[электронная почта защищена] ~]$ sudo su [[email protected] devops]# список dnf httpd Обновление репозиториев управления подпиской.Последняя проверка срока действия метаданных: 0:01:21 назад, вторник, 01 марта 2022 г., 15:43:25 UTC. Установленные пакеты httpd.x86_64 2.4.37-43.module+el8.5.0+13806+b30d9eec.1 @rhel-8-for-x86_64-appstream-rpms [[электронная почта защищена] devops]# rpm -qa | grep httpd httpd-tools-2.4.37-43.module+el8.5.0+13806+b30d9eec.1.x86_64 redhat-logos-httpd-84.5-1.el8.noarch httpd-файловая система-2.4.37-43.модуль+el8.5.0+13806+b30d9eec.1.noarch httpd-2.4.37-43.модуль+el8.5.0+13806+b30d9eec.1.x86_64 [[электронная почта защищена] devops]# cat /etc/httpd/conf.d/example.com.conf <Виртуальный хост *:80> ServerAdmin [email защищен] Имя сервера example.com Псевдоним сервера www.example.com Журнал ошибок /var/log/httpd/error.log CustomLog /var/log/httpd/access.log вместе DocumentRoot "/var/www/example.com" [[электронная почта защищена] devops]# cat /var/www/example.com/index.html Пользовательская веб-страница [[электронная почта защищена] devops]# ls -al /var/www/example.
com/ всего 4 drwxr-xr-x. 2 корень апача 24 мар 1 15:43 . drwxr-xr-x. 5 корень корень 52 1 мар 15:43 .. -rw-r--r--. 1 корень корень 16 1 марта 15:43 index.html [[электронная почта защищена] devops]# ls -alZ /var/www/example.com/ всего 4 drwxr-xr-x. 2 корень apache unconfined_u:object_r:httpd_sys_content_t:s0 24 мар 1 15:43 . drwxr-xr-x. 5 root root system_u:object_r:httpd_sys_content_t:s0 52 1 марта 15:43 .. -rw-r--r--. 1 корень root system_u:object_r:httpd_sys_content_t:s0 16 1 марта 15:43 index.html [[электронная почта защищена] devops]# статус systemctl httpd ● httpd.service — HTTP-сервер Apache. Загружено: загружено (/usr/lib/systemd/system/httpd.service; включено; предустановка поставщика: отключена) Активно: активно (работает) со вторника 01.03.2022, 15:43:39УНИВЕРСАЛЬНОЕ ГЛОБАЛЬНОЕ ВРЕМЯ; 2 мин 20 с назад Документы: man:httpd.service(8) Основной PID: 7516 (httpd) Статус: "Выполняется, прослушивание: порт 80" Заданий: 213 (лимит: 4952) Память: 25.0M Группа CG: /system.
slice/httpd.service ├─7516 /usr/sbin/httpd -DFOREGROUND ├─7517 /usr/sbin/httpd -DFOREGROUND ├─7518 /usr/sbin/httpd -DFOREGROUND ├─7519 /usr/sbin/httpd -DFOREGROUND └─7520 /usr/sbin/httpd -DFOREGROUND 01 марта 15:43:38 demo.example.com systemd[1]: запуск HTTP-сервера Apache... 01 мар 15:43:39demo.example.com systemd[1]: запущен HTTP-сервер Apache. 01 марта 15:43:39 demo.example.com httpd[7516]: Сервер настроен, прослушивание: порт 80 [[электронная почта защищена] devops]# firewall-cmd --list-all публичный (активный) цель: по умолчанию icmp-инверсия блока: нет интерфейсы: eth0 eth2 источники: сервисы: кабина dhcpv6-клиент http ssh порты: протоколы: вперед: нет маскарад: нет форвард-порты: исходные порты: icmp-блоки: богатые правила: [[электронная почта защищена] devops]# cat /var/log/httpd/access.log 192.168.0.59 - - [01/Мар/2022:16:03:58 +0000] "GET / HTTP/1.1" 200 17 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.
1.15 (KHTML, например Gecko) Версия/15.1 Safari/605.1.15" 192.168.0.59 - - [01/Mar/2022:16:03:58 +0000] "GET /favicon.ico HTTP/1.1" 404 196 "http://demo.example.com/" "Mozilla/5.0 (Macintosh ; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, как Gecko) Версия/15.1 Safari/605.1.15" 192.168.0.59 - - [01/Мар/2022:16:04:02 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, например Gecko) Версия/15.1 Safari/605.1.15" 192.168.0.59 - - [01/Mar/2022:16:04:10 +0000] "GET /favicon.ico HTTP/1.1" 404 196 "http://demo.example.com/" "Mozilla/5.0 (Macintosh ; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, как Gecko) Версия/15.1 Safari/605.1.15" 192.168.0.59 - - [01/Мар/2022:16:04:55 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, например Gecko) Версия/15.1 Safari/605.1.15" 192.168.0.59 - - [01.03.2022:16:04:57 +0000] "-" 408 - "-" "-"
код с ❤️ в GitHub
Резюме
Теперь вы знаете, как развернуть виртуальный хост веб-сервера apache httpd на RedHat-подобных системах с помощью Ansible. Подпишитесь на канал YouTube, Medium, Website, Twitter и Substack, чтобы не пропустить следующий эпизод Ansible Pilot.
Academy
Изучите технологию автоматизации Ansible на реальных примерах в моем
Моя книга Ansible By Examples : 200+ примеров автоматизации для системного администратора Linux и Windows и DevOps
Пожертвовать
Хотите продолжить этот проект? Пожалуйста, пожертвуйте
Как настроить виртуальные хосты Apache на Ubuntu
Виртуальные хосты позволяют запускать несколько веб-сайтов на одном веб-сервере Apache. Вы также можете использовать его для запуска нескольких поддоменов на одном сервере. После того, как вы настроили виртуальные хосты в Apache, в зависимости от запрошенного URL-адреса Apache автоматически направит посетителей на соответствующий домен или субдомен. В этой статье мы рассмотрим, как настроить виртуальные хосты в Apache для Ubuntu, Debian Linux.
Как настроить виртуальные хосты Apache в Ubuntu
Ниже приведены шаги по настройке виртуальных хостов Apache в Ubuntu, Debian Linux.
1. Установите Apache Server
Откройте терминал и выполните следующие команды, чтобы установить веб-сервер Apache.
$ sudo apt-получить обновление $ sudo apt-get install apache2
Также читайте : Как создать собственные страницы ошибок 404 в Apache
2. Создать структуру каталогов
Допустим, мы хотим разместить два домена example1.com и example2.com на нашем веб-сервере. . Мы создадим отдельные каталоги для каждого из этих доменов в корневом каталоге документа Apache /var/www. Мы также создадим подпапки public_html в каждом из этих каталогов для хранения всех необходимых файлов для каждого из этих веб-сайтов.
Выполните следующие команды для создания двух каталогов
$ sudo mkdir -p /var/www/example1.com/public_html $ sudo mkdir -p /var/www/example2.com/public_html
Читайте также: Как создать самозаверяющий сертификат для Apache
3. Изменить права доступа к файлам
Когда мы создаем эти два каталога, они принадлежат пользователь root по умолчанию. Нам нужно будет изменить их владельца файла, чтобы сделать их пригодными для использования веб-сервером Apache.
Выполните следующие команды, чтобы изменить владельца файла двух каталогов.
$ sudo chown -R $USER:$USER /var/www/example1.com/public_html $ sudo chown -R $USER:$USER /var/www/example2.com/public_html
В приведенном выше коде мы используем $USER, чтобы предоставить обычному пользователю без полномочий root доступ к этим каталогам.
Нам также необходимо изменить права доступа к корневой папке документов, чтобы обеспечить правильное обслуживание всех файлов и страниц.
$ sudo chmod -R 755 /var/www
Читайте также: Как использовать Apache Bench для нагрузочного тестирования
4. Создание индексных страниц
Далее мы создадим страницы index.html для каждого нашего веб-сайта в демонстрационных целях.
$ sudo vi /var/www/example1.com/public_html/index.html
Скопируйте и вставьте в него следующий HTML-код.
<голова>Добро пожаловать на сайт Example1.com! <тело>Успех! Виртуальный хост example1.com работает!
Аналогичным образом создайте файл index.html для example2.com
$ sudo vi /var/www/example2.com/public_html/index.html
Скопируйте и вставьте в него следующий HTML-код.
<голова>Добро пожаловать на сайт Example2.com! <тело>Успех! Виртуальный хост example2.com работает!
Читайте также: Как установить Fail2ban в Apache
5. Создать файл виртуальных хостов
Apache предоставляет файл виртуального хоста по умолчанию, который можно использовать в качестве шаблона для создания файлов виртуального хоста для двух доменов. . Мы просто скопируем и изменим этот файл для наших целей.
Расположение файла конфигурации виртуального хоста Apache:
/etc/apache2/sites-available/000-default.conf
Выполните следующую команду, чтобы создать копию этого файла для example1.com
$ sudo cp /etc/ apache2/sites-available/000-default.conf /etc/apache2/sites-available/example1.conf
Откройте этот файл с помощью текстового редактора.
$ sudo vi /etc/apache2/sites-available/example1.conf
Это будет выглядеть примерно так:
Веб-мастер администратора сервера@localhost Корень документа /var/www/html Журнал ошибок ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log вместе
Измените директиву DocumentRoot и укажите в ней расположение корня документа для домена example1.com. Мы также добавим директиву ServerName в качестве нашего доменного имени. Это будет использоваться Apache для сопоставления имени домена входящих запросов и направления их на соответствующий виртуальный хост. Мы также добавим директиву ServerAlias для соответствия любым вариантам домена. Вы также можете изменить адрес электронной почты ServerAdmin в соответствии с вашими требованиями, если хотите.
<Виртуальный хост *:80> Веб-мастер администратора сервера@localhost Имя_сервера example1.com Псевдоним сервера www.example1.com DocumentRoot /var/www/example1.com/public_html Журнал ошибок ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log вместе
Аналогичным образом повторите описанные выше шаги для домена example2.com.
$ sudo cp /etc/apache2/сайты-доступны/000-default.conf /etc/apache2/сайты-доступны/example2.conf $ sudo vi /etc/apache2/sites-available/example2.conf
Измените значение корневого каталога документа в этом файле на расположение корневого каталога документа для домена example2.com.
<Виртуальный хост *:80> Веб-мастер администратора сервера@localhost Имя_сервера example2.com Псевдоним сервера www.example2.com DocumentRoot /var/www/example2.com/public_html Журнал ошибок ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log вместе
Также читайте : Как установить memcached в Apache
6. Включить виртуальные хосты
Выполните следующие команды, чтобы включить два виртуальных хоста
$ sudo a2ensite example1.conf $ sudo a2ensite example2.conf
Отключить виртуальный хост по умолчанию
$ sudo a2dissite 000-default.conf
Читайте также: Как выбрать службу веб-хостинга
7. Перезапустите веб-сервер Apache
Перезапустите веб-сервер Apache для применения изменения
$ sudo systemctl перезапустить apache2
ИЛИ
$ sudo service apache2 restart
Читайте также: Как исправить слишком много ошибок переадресации на веб-сайте
Вы увидите индексную страницу для example1.com.
Аналогичным образом откройте браузер и посетите www. example2.com . Вы увидите индексную страницу для example2.com.
Надеюсь, эта статья поможет вам настроить виртуальные хосты для Apache в Ubuntu. Ubiq упрощает визуализацию данных и их мониторинг на информационных панелях в режиме реального времени. Попробуйте Ubiq бесплатно.
Похожие сообщения:
- Об авторе
Об Ubiq
Ubiq — это мощная платформа для мониторинга и создания отчетов для малого и среднего бизнеса. Создавайте информационные панели, диаграммы и отчеты для своего бизнеса за считанные минуты. Быстро получайте информацию из данных. Попробуйте бесплатно сегодня!Добавить виртуальный хост Apache
Узнайте, как добавить виртуальный хост на веб-сервер Apache. Виртуальные хосты позволяют размещать несколько отдельных веб-сайтов на одном сервере с отдельным набором каталогов для каждого веб-сайта.
Apache — это популярный и мощный веб-сервер для платформ Linux, который по умолчанию устанавливается и работает на облачных серверах с CentOS 7 и Ubuntu 14. 04. Вы можете добавить столько виртуальных хостов в Apache, сколько может обработать ваш сервер, в зависимости от трафика на все веб-сайты, размещенные на этом сервере.
Содержание
- Требования
- Перезапуск Apache
- Создание структуры каталогов
- Добавление индексного файла
- Создание файла конфигурации Apache
Требования
- Облачный сервер под управлением CentOS 7 или Ubuntu 16.04.
- Веб-сервер Apache установлен и работает.
Бесплатная пробная версия облачного сервера от IONOS
Попробуйте облачный сервер бесплатно прямо сейчас — протестируйте свой облачный сервер IONOS в течение 30 дней!
REST API
Неограниченный трафик
Виртуализация VMware
Чтобы проверить статус Apache на вашем сервере, используйте команду:
- CentOS 7: sudo systemctl status httpd
- Ubuntu 16.
04: sudo systemctl status apache2
Если Apache установлен и запущен, вы увидите вывод, похожий на: апач2
● apache2.service — LSB: веб-сервер Apache2
Загружено: загружено (/etc/init.d/apache2; ошибка; настройка поставщика: включена)
Вставка: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Активно: активно (работает) с понедельника 28 ноября 2016 г., 22:18:46 UTC; 1 неделя 1 день назад
Документы: man:systemd-sysv-generator(8)
Процесс: 2893 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Процесс: 50598 ExecReload=/etc/init.d/apache2 reload (code=exited, status=0/SUCCESS)
Процесс: 2916 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
Группа CG: /system.slice/apache2.service
├─ 2934 /usr/sbin/apache2 -k запуск
├─50628 /usr/sbin/apache2 -k запуск
├─50629 /usr/sbin/apache2 -k запуск
├─50630 /usr/sbin/apache2 -k запуск Предупреждение: журнал ротировался с момента запуска модуля. Вывод журнала неполный или недоступен.
Обратите внимание на строку, которая гласит:
Активно: активно (работает) с понедельника 28 ноября 2016 г., 22:18:46 UTC; 1 недель 1 дней назад
Это означает, что сервер установлен и работает.
Перезапустите Apache
Всякий раз, когда вы вносите изменения в файлы конфигурации Apache, вы должны перезапустить Apache, чтобы изменения вступили в силу:
- CentOS 7: sudo systemctl restart httpd
- Ubuntu 16.04: sudo apdo system204 sudo apdo system2004 sudo systemctl restart
У каждого веб-сервера Apache есть сайт по умолчанию. Если вы не добавили файлы на сайт по умолчанию, это будет стандартная «страница Apache по умолчанию».
Одним из наиболее распространенных симптомов проблемы с Apache является то, что все URL-адреса на сервере указывают на этот сайт по умолчанию. Это может произойти, если есть ошибка в конфигурациях, или если Apache просто нужно перезапустить.
Создание структуры каталогов
Важно сначала создать каталоги. Если Apache ожидает каталоги и не может их найти, это может привести к поломке веб-сервера Apache, как описано в разделе выше.
Хотя каталоги можно создавать где угодно, по общему соглашению каталоги для каждого сайта расположены в каталоге /var/www и начинаются с каталога, названного в честь URL-адреса сайта.
Чтобы создать каталоги для example.com, используйте следующие команды:
sudo mkdir /var/www/example.com. sudo mkdir /var/www/example.com/html
Затем измените владельца этих каталогов на пользователя Apache.
- CentOS 7: sudo chown -R apache:apache /var/www/example.com
- Ubuntu 16.04: sudo chown -R www-data:www-data /var/www/example.com
Чтобы загружать файлы веб-сайта через FTP, каталог html должен принадлежать пользователю FTP. .
Например, если ваш пользователь входит в систему через FTP с именем пользователя jdoe, команда для смены владельца на jdoe:
- CentOS 7: sudo chown jdoe:jdoe /var/www/example.
com/html
- Ubuntu 16.04: sudo chown jdoe:jdoe /var/www/example.com/html
Добавить файл индекса
Создайте тестовый файл с именем index.html в корневом каталоге веб-сайта:
sudo nano /var/www/example.com/html/index.html
Поместите следующее содержимое в этот файл:
<голова>Добро пожаловать на ваш новый сайт! <тело>Здравствуйте, ваш виртуальный хост настроен правильно.
Сохраните и закройте файл.
Создайте файл конфигурации Apache
Файл конфигурации Apache будет содержать все директивы для вашего виртуального хоста. Есть много конфигураций, которые вы можете поместить в этот файл, в зависимости от ваших конкретных потребностей. Для начала создадим простой файл только с основными конфигурациями:
- CentOS 7: sudo nano /etc/httpd/conf.d/example.com.conf
- Ubuntu 16.
04: sudo nano /etc /apache2/сайты-доступны/example.com.conf
Поместите в этот файл следующее содержимое:
Имя сервера example.com Псевдоним сервера www.example.com Корень документа /var/www/example.com/html
Сохраните и закройте файл.
Только для Ubuntu 16.04: Создайте символическую ссылку на этот файл с помощью команды sudo ln -s /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-enabled/example.com.conf
Перезапустите Apache, чтобы изменения вступили в силу:
- CentOS 7: sudo systemctl перезапустить httpd
- Ubuntu 16.04: sudo systemctl перезапустить apache2
Когда Apache завершит перезагрузку, посетите веб-сайт в браузере. Вы увидите образец индексной страницы.
- Веб -разработка
- Учебные пособия
Установка и использование Apache Tomcat на Centos 79009
- 75
- 111992AS0261
- Конфигурация
111111111111111111111111111111119. 92049204
049204920492049204
111111Узнайте, как установить и использовать Apache Tomcat в CentOS 7. Apache Tomcat — это контейнер сервлетов Java, разработанный Apache, который позволяет развертывать сервлеты Java и JSP. Apache Tomcat также функционирует как веб-сервер, способный поддерживать веб-сайты малого и среднего размера. В этом руководстве также рассказывается, как установить и использовать Tomcat Web Admin Manager, который позволяет вам управлять Tomcat и виртуальными...
Установка и использование Apache Tomcat в CentOS 7Как установить и настроить Apache для WordPress
- Конфигурация
Узнайте, как установить и настроить Apache для WordPress. В этом руководстве мы покажем вам, как установить и настроить Apache для установки WordPress.
Как установить и настроить Apache для WordPress Обновление PHP с 5. 4 до 7.0 на облачном сервере CentOS 7
- Веб-разработка
Версия PHP по умолчанию, доступная на новом облачном сервере с CentOS 7, — это версия 5.4. Узнайте, как обновить это до PHP 7.0. Вам нужно будет выполнить обновление вручную, так как PHP 7 недоступен в стандартном репозитории CentOS 7 `yum`, потому что он не считается стабильным.
Обновление PHP с 5.4 до 7.0 на облачном сервере CentOS 7Использование mod_wsgi для запуска Python в качестве веб-приложения на CentOS 7
- Веб-разработка
Узнайте, как установить и использовать модуль Apache `mod_wsgi` для запуска сценариев Python на веб-странице. Этот модуль Apache можно использовать для обслуживания веб-страниц, написанных на Python, или для отображения веб-страниц со встроенными скриптами Python.
Использование mod_wsgi для запуска Python как веб-приложения на CentOS 7 Установка и использование Pip для установки пакетов Python
Pip — это система управления пакетами для Python.