- Как установить Apache на Ubuntu 20.04 и разместить веб-сайт
- Установка Apache2 в Ubuntu 20.04
- Проверка Состояния Сервера Apache2 в Ubuntu 20.04
- Протестируйте установленный веб-сервер Apache2
- Настройка виртуальных хостов Apache2 в Ubuntu
- Создание виртуального хоста
- Создать корневой каталог документа
- Создание индексного файла сайта
- Welcome to SETIWIK!
- Apache HTTP Server
- Содержание
- Версии Apache в Ubuntu
- Хостинг сайтов
- Установка
- Настройка
- Кодировка по умолчанию
- Виртуальные хосты
- Модули
- mod_userdir
- Настройка HTTPS в Apache
- Создание ключа и ssl-сертификата
- Настройка Apache
- Перенаправление HTTP запросов на HTTPS
- Настройка виртуальных хостов Apache в Ubuntu 18.04
- Введение
- Предварительные требования
- Шаг 1 — Создание структуры директорий
- Шаг 2 — Предоставление разрешений
- Шаг 3 — Создание демонстрационных страниц для каждого виртуального хоста
- Шаг 4 — Создание новых файлов виртуального хоста
- Создание первого файла виртуального хоста
- Копирование первого виртуального хоста и настройка для второго домена
- Шаг 5 — Активация новых файлов виртуального хоста
- Шаг 6 — Настройка локального файла hosts (необязательно)
- Шаг 7 — Тестирование результатов
- Заключение
Как установить Apache на Ubuntu 20.04 и разместить веб-сайт
Apache — это программное обеспечение бесплатного веб-сервера, с открытым исходным кодом, разработан Apache Software Foundation. Официально он называется Apache HTTP Server. Apache является одним из самых старых, кросс-платформенных веб-серверов.
В этой инструкции мы установим Apache версии 2 (Apache2) на Ubuntu 20.04. Кроме того, мы настроим виртуальные хосты таким образом, чтобы на одном сервере могли размещаться несколько веб-сайтов.
Установка Apache2 в Ubuntu 20.04
Первое что требуется сделать это проверить наличие обновлений пакетов с помощью команды ниже.
Во — вторых, выполните следующую команду, чтобы установить Apache версии 2 из репозитория пакетов Ubuntu.
При появлении запроса введите Y, чтобы продолжить установку.
После успешной установки Apache2 выполните следующую команду для просмотра версии.
Проверка Состояния Сервера Apache2 в Ubuntu 20.04
Далее следует проверить состояние сервера Apache2, для этого выполните следующую команду.
По умолчанию служба Apache2 должна быть активна (запущена). Если нет, запустите службу следующей командой.
Протестируйте установленный веб-сервер Apache2
Последний шаг — это тестирование веб-сервера Apache2. Откройте веб-браузер и введите IP — адрес вашего сервера Ubuntu. Или введите localhost, если вы локально подключены к серверу.
Вы должны увидеть страницу Apache2 Ubuntu default page, как показано на рисунке ниже.
Настройка виртуальных хостов Apache2 в Ubuntu
Виртуальные хосты позволяют размещать более одного веб-сайта на одном сервере Apache2. В Nginx это называется серверными блоками.
По умолчанию Apache2 поставляется с одним виртуальным хостом, а его конфигурационная информация хранится в файле /etc/apache2/sites-enabled/000-default.conf. Кроме того, корень веб-сайта по умолчанию — располагается в /var/www/html.
Настроить новый виртуальный хост очень просто. Следуйте инструкции и просто замените setiwik своим собственным зарегистрированным доменным именем.
Примечание: ваше зарегистрированное доменное имя должно указывать на IP-адрес вашего сервера Ubuntu.
Создание виртуального хоста
Создайте новый конфигурационный файл виртуального хоста, скопировав файл по умолчанию следующим образом.
$ cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/setiwik.conf
Далее отключите виртуальный хост по умолчанию с помощью приведенной ниже команды.
Создать корневой каталог документа
Выполните следующую команду, чтобы создать корневой каталог документа для хранения файлов веб — сайта.
Затем сделайте учетную запись Пользователя службы Apache2 (www-data) и группу (www-data) владельцами корневого каталога документа. Это можно сделать следующим образом.
$ sudo chown www-data:www-data /var/www/setiwik
Далее, предоставьте учетной записи Пользователя службы Apache2 (www-data) полный доступ к корневому каталогу документа с помощью следующей команды.
Создание индексного файла сайта
Теперь создайте индексный файл в корневом каталоге документа с помощью команды:
Скопируйте и вставьте пример HTML-кода ниже.
Welcome to SETIWIK!
Если вы видите эту страницу, веб-сайт SETIWIK работает правильно
Источник
Apache HTTP Server
Содержание
Версии Apache в Ubuntu
Хостинг сайтов
Можно реализовать четырьмя способами:
Установка
Для установки Apache выполните в терминале:
Настройка
В Ubuntu конечный файл настройки (apache2.conf) расделён на несколько файлов, расположенных в разных поддиректориях. Подробней написано в комментариях файла apache2.conf.
Настройки модулей расположены в директории /etc/apache2/mods-available. Для подключения или отключения модулей (настроек модулей) следует использовать соответствующие команды a2enmod или a2dismod . Пример подключения модуля:
Свои настройки следует сохранять в файлы, расположенные в директории /etc/apache2/conf-available. Для подключения или отключения своих настроек следует использовать соответствующие команды a2enconf или a2disconf . Пример подключения файла со своими настройками:
Настройки виртуальных хостов следует сохранять в файлы, расположенные в директории /etc/apache2/sites-available. Для подключения виртуальных хостов следует использовать соответствующие команды a2ensite или a2dissite . Пример подключения виртуального хоста:
Кодировка по умолчанию
Для указания кодировки по умолчанию следует использовать директиву AddDefaultCharset в файле /etc/apache2/conf-available/charset.conf (или раскомментировать соответствующую строку):
Виртуальные хосты
Файлы настроек виртуальных хостов хранятся в /etc/apache2/sites-available/*.conf. По умолчанию в Apache уже настроен один виртуальный хост. Его настройки лежат в файле 000-default.conf. Вы можете использовать этот виртуальный хост в качестве примера.
Пример настройки виртуального хоста:
Назовите файл настройки именем вашего хоста host1.server1.conf и сохраните.
После создания файла настроек допишите в /etc/hosts имя вашего хоста:
Для включения созданного виртуального хоста используется утилита a2ensite :
Отключается хост аналогично утилитой a2dissite :
Модули
mod_userdir
Модуль mod_userdir позволяет использовать директории, находящиеся в домашних директориях пользователей для хранения веб страниц. По умолчанию Apache ищет запрашиваемые страницы в директории
Чтобы включить mod_userdir , выполните:
и добавьте необходимого пользователя в группу www-data:
после чего перезагрузите Apache:
Страницы будут доступны по адресу http://localhost/
username, где username — имя пользователя.
Если Вы хотите запускать на сервере cgi-скрипты, подключите модуль cgi командой
По умолчанию cgi-скрипты размещаются в директории /usr/lib/cgi-bin, но вы можете разместить их где угодно, указав это в настройках своего виртуального хоста, либо глобально для всех хостов в файле /etc/apache2/conf-enabled/serve-cgi-bin.conf.
Настройка HTTPS в Apache
Веб-сервер Apache полностью поддерживает работу по HTTPS. Чтобы активировать поддержку HTTPS на уже установленном Apache, необходимо выполнить следующее.
Создание ключа и ssl-сертификата
Использование самоподписанных сертификатов хоть и защищает от пассивного прослушивания, тем не менее не гарантирует клиентам, что сервер является именно тем сервером, который им нужен. Преимуществом самоподписанных сертификатов является их бесплатность. Сертификат, подписанный компанией-сертификатором (Certificate authority), стоит денег.
Для создания ключа и сертификата вводим команду:
На вопрос «Enter PEM pass phrase:» отвечаем паролем, подтверждаем и запоминаем.
На все последующие вопросы отвечаем произвольно, можно просто щелкать по Enter , соглашаясь с предложенными вариантами, только на вопрос «Common Name (eg, YOUR name) []:» отвечаем именем сайта, для которого создаем сертификат, например www.example.com.
После ответа на все вопросы в директории должны появиться два новых файла — server.pem (ключ) и server.crt (сертификат).
Чтобы использовать сгенерированный ключ, нужно знать пароль, введённый нами, и Apache будет спрашивать его у нас при загрузке, а к чему нам лишние вопросы от демонов? 🙂 Поэтому снимаем пароль с ключа:
Скопируем их в /etc/ssl и назначим файлу ключа права чтения только администратору:
Настройка Apache
Для начала необходимо активировать mod_ssl :
А затем включить настройки HTTPS сайта по умолчанию:
Теперь необходимо отредактировать файл с настройками HTTPS сайта по умолчанию, указав в нём пути к вашим сертификатам. Сам файл называется /etc/apache2/sites-enabled/default-ssl (или /etc/apache2/sites-enabled/default-ssl.conf ).
В этом файле рекомендуется после директивы
чтобы запретить использование устаревшего протокола SSLv2.
Дальше вам необходимо отредактировать параметры, ответственные за сертификаты.
Теперь просто перезагрузите Apache:
И если все параметры указаны верно, ваши сайты станут доступны по HTTPS.
Перенаправление HTTP запросов на HTTPS
Затем изменяем файл /etc/apache2/sites-enabled/000-default , отвечающий за виртуальный хост по умолчанию для HTTP запросов. В этот файл добавляем директиву
При этом все настройки директорий можно удалить, поскольку по HTTP на ваши сайты всё равно будет не попасть.
Всё, теперь ещё раз перезапустите Apache и убедитесь, что при заходе по HTTP вы автоматически перенаправляетесь на HTTPS-страницу.
Источник
Настройка виртуальных хостов Apache в Ubuntu 18.04
Published on March 5, 2020
Введение
Веб-сервер Apache — популярный способ размещения сайтов в Интернете. Согласно оценкам, в 2019 году на базе этого веб-сервера работали 29% всех активных сайтов. Он обеспечивает разработчикам преимущества гибкости и надежности. Используя Apache, администратор может настроить один сервер для хостинга нескольких доменов или сайтов через единый интерфейс или IP-адрес, используя систему сопоставления.
Каждый домен или сайт («виртуальный хост»), настроенный с помощью Apache, направляет посетителя в определенную директорию, где хранятся данные этого сайта. При этом не показывается никаких признаков того, что этот же сервер обслуживает другие сайты. Эта схема поддерживает расширение без программных ограничений, пока сервер сможет выдерживать нагрузку. Базовая единица, описывающая отдельный сайт или домен, называется виртуальный хост .
В этом руководстве мы рассмотрим настройку виртуальных хостов Apache на сервере Ubuntu 18.04. Во время этого процесса вы научитесь предоставлять разный контент разным посетителям в зависимости от того, какие домены они запрашивают.
Предварительные требования
Прежде чем начать прохождение этого обучающего руководства, создайте пользователя без привилегий root.
Для выполнения этих шагов у вас должен быть установлен сервер Apache. Если вы еще не установили Apache, вы можете сделать это с помощью диспетчера пакетов apt :
Если вам требуются более подробные инструкции или информация по настройке брандмауэра, воспользуйтесь обучающим руководством Установка веб-сервера Apache в Ubuntu 18.04.
Для целей настоящего руководства наша конфигурация предусматривает создание виртуального хоста для example.com и еще одного для test.com . В руководстве будут размещаться ссылки на них, однако вам следует использовать собственные домены или значения при выполнении указаний.
Если вы используете DigitalOcean, вы можете научиться настраивать домены из указаний в документации Добавление доменов. Для информации о других поставщиках следует ознакомиться с соответствующей документацией по продукции. Если у вас нет доменов, вы можете использовать тестовые значения.
Позднее мы покажем, как нужно отредактировать локальный файл hosts для тестирования конфигурации, если вы используете тестовые значения. Это позволит вам проверять конфигурацию с домашнего компьютера, даже если ваш контент не будет доступен другим посетителям через доменное имя.
Шаг 1 — Создание структуры директорий
Прежде всего, нам потребуется создать структуру директорий, где будут храниться данные сайтов, которые мы будем выводить посетителям.
Наша корневая директория документов (директория верхнего уровня, где Apache ищет выводимый контент) будет задана как отдельные директории в директории /var/www . Здесь мы создадим директории для каждого из виртуальных хостов, которые мы планируем создать.
В каждом из этих директорий мы создадим папку public_html для хранения файлов. Это даст нам определенную гибкость в отношении хостинга.
Например, мы будем создавать директории для наших сайтов следующим образом. Если вы используете реальные домены или альтернативные значения, замените выделенный текст соответствующим образом.
Выделенные красным части представляют доменные имена, которые мы хотим обслуживать через VPS.
Шаг 2 — Предоставление разрешений
Теперь у нас имеется структура директорий для наших файлов, но они принадлежат пользователю root. Если мы хотим, чтобы обычный пользователь имел возможность изменять файлы в веб-директориях, мы можем изменить структуру владения следующим образом:
Переменная $USER будет принимать значение текущего пользователя в системе при нажатии клавиши ENTER . Так наш обычный пользователь теперь является владельцем субдиректорий public_html , где мы будем хранить наш контент.
Также нам необходимо изменять разрешения, чтобы обеспечить доступ для чтения к общей веб-директории и всем содержащимся в ней файлам и папкам, чтобы страницы могли выводиться надлежащим образом:
Теперь ваш веб-сервер должен иметь необходимые разрешения для вывода контента, а ваш пользователь должен иметь права создания контента в соответствующих папках.
Шаг 3 — Создание демонстрационных страниц для каждого виртуального хоста
Теперь у нас имеется структура директорий. Давайте создадим контент для вывода.
Для демонстрационных целей мы создадим страницу index.html для каждого сайта.
Начнем с example.com . Мы можем открыть файл index.html в текстовом редакторе, в данном случае мы используем nano:
В этом файле мы создадим документ HTML, указывающий на связанный с ним сайт. Документ будет выглядеть так:
Сохраните и закройте файл (в nano нажмите CTRL + X , затем Y и ENTER ) после завершения редактирования.
Мы можем скопировать этот файл и использовать его в качестве основы для нашего второго сайта:
Затем мы можем открыть файл и изменить соответствующую информацию:
Сохраните и закройте этот файл. Теперь у нас имеются все необходимые страницы для тестирования конфигурации виртуальных хостов.
Шаг 4 — Создание новых файлов виртуального хоста
Файлы виртуального хоста указывают фактическую конфигурацию виртуальных хостов и задают способ ответа веб-сервера Apache на запросы различных доменов.
В Apache имеется файл виртуального хоста по умолчанию с именем 000-default.conf , который мы можем использовать в качестве исходной точки. Мы скопируем его для создания файла виртуального хоста для каждого из доменов.
Мы начнем с одного домена, настроим его, скопируем для второго домена и внесем несколько дополнительных корректировок. Конфигурация Ubuntu по умолчанию требует, чтобы каждый файл виртуального хоста имел расширение .conf .
Создание первого файла виртуального хоста
Скопируйте файл для первого домена:
Откройте новый файл в редакторе с привилегиями root:
Без комментариев этот файл будет выглядеть примерно так:
В файле мы настроим элементы для нашего первого домена и добавим несколько дополнительных директив. Этот раздел виртуального хоста соответствует любым запросам на порт 80, используемый по умолчанию для протокола HTTP.
Вначале нам нужно изменить директиву ServerAdmin на адрес электронной почты, доступный администратору сайта.
После этого нам нужно будет добавить две директивы. Директива ServerName задает базовый домен, который должен соответствовать этому определению виртуального хоста. Скорее всего, это будет ваш домен. Вторая директива под названием ServerAlias определяет дополнительные имена, которые должны соответствовать, как если бы они были базовыми. Это полезно для подстановки заданных вами хостов, таких как www :
Помимо этого, в нашем файле виртуального хоста нужно изменить только расположение корневой директории документов для этого домена. Мы уже создали необходимую нам директорию, так что нам нужно изменить директиву DocumentRoot и указать созданную нами директорию:
После этого наш файл виртуального хоста должен выглядеть следующим образом:
Сохраните и закройте файл.
Копирование первого виртуального хоста и настройка для второго домена
Теперь у нас есть первый файл виртуального хоста, и мы можем создать второй файл посредством копирования первого и его надлежащей настройки.
Для начала скопируйте файл:
Откройте новый файл в редакторе с привилегиями root:
Теперь вам нужно изменить все элементы информации, чтобы они ссылались на второй домен. После завершения все будет выглядеть следующим образом:
Сохраните файл и закройте его после завершения.
Шаг 5 — Активация новых файлов виртуального хоста
Мы создали файлы виртуального хоста, и теперь их нужно активировать. В Apache имеются инструменты, с помощью которых это можно сделать.
Мы используем инструмент a2ensite для активации каждого из наших сайтов. Дополнительную информацию об этом скрипте можно найти в документации по a2ensite .
Отключите сайт по умолчанию, заданный в файле 000-default.conf :
После завершения нужно перезапустить Apache для вступления изменений в силу и использовать команду systemctl status для подтверждения успешного перезапуска.
Теперь наш сервер должен быть настроен для обслуживания двух сайтов.
Шаг 6 — Настройка локального файла hosts (необязательно)
Если вы использовали для тестирования этой процедуры фиктивные доменные имена, вы можете проверить функциональность этого процесса, временно изменив файл hosts на локальном компьютере.
В результате этого изменения все запросы настроенных доменов будут перехватываться и перенаправляться на сервер VPS, как это делала бы система DNS, если бы мы использовали зарегистрированные домены. Это будет работать только на локальном компьютере и только для целей тестирования.
Для этих шагов необходимо использовать локальный компьютер, а не сервер VPS. Вам нужно знать пароль администратора вашего компьютера или входить в группу администраторов.
Если вы используете компьютер под управлением Mac или Linux, отредактируйте локальный файл с привилегиями администратора, введя следующую команду:
Если вы используете компьютер под управлением Windows, вы найдете указания по редактированию файла hosts здесь.
Вам нужно добавить в файл публичный IP-адрес вашего сервера и доменное имя, которое вы хотите использовать для связи с этим сервером.
Для доменов, указанных в настоящем руководстве, замените IP-адрес сервера на your_server_IP , и ваш файл будет выглядеть примерно так:
Сохраните и закройте файл.
При таких настройках все запросы доменов example.com и test.com на нашем компьютере будут перенаправляться на наш сервер. Так мы можем протестировать виртуальные хосты, хотя и не являемся владельцами этих доменов.
Шаг 7 — Тестирование результатов
Мы настроили виртуальные хосты и теперь можем протестировать настройки, открыв в браузере настроенные домены:
Вы должны увидеть страницу, выглядящую примерно так:
Также вы можете открыть вторую страницу и увидеть файл, созданный для второго сайта.
Если все эти сайты работают ожидаемым образом, вы успешно настроили два виртуальных хоста на одном сервере.
Если вы редактировали файл hosts на своем компьютере, после проверки конфигурации вы можете удалить добавленные строки. Так в вашем файле hosts не будет ненужных записей.
Если вам требуется долгосрочный доступ, добавьте доменное имя для каждого необходимого сайта и настройте его, чтобы оно указывало на ваш сервер.
Заключение
Если вы следовали указаниям, теперь у вас должен быть один сервер, обслуживающий два отдельных доменных имени. Вы можете добавить дополнительные доменные имена, повторив вышеописанные шаги для создания дополнительных виртуальных хостов.
Нет никаких программных ограничений по количеству доменных имен, обслуживаемых Apache, так что вы можете создать столько доменных имен, сколько ваш сервер может обслуживать на аппаратном уровне.
Источник