Установка веб-сервера Apache в Ubuntu 20.04
29 мая, 2020 12:17 пп 5 887 views | Комментариев нетUbuntu | Amber | Комментировать запись
HTTP-сервер Apache – наиболее распространенный веб-сервер в интернете. Он предоставляет множество полезных функций, включая динамическую загрузку модулей, надежную поддержку мультимедиа и широкую интеграцию с другим популярным программным обеспечением.
В этом мануале вы узнаете, как установить веб-сервер Apache на ваш сервер Ubuntu 20.04.
Требования
- Сервер Ubuntu 20.04.
- Пользователь с доступом к sudo (все действия руководства нужно выполнять в сессии этого пользователя).
- Базовый брандмауэр.
Все необходимые инструкции можно найти в мануале по начальной настройке сервера.
Настроив свой сервер, войдите в сессию пользователя с доступом к sudo, чтобы начать работу.
1: Установка Apache
Пакет Apache есть в стандартном репозитории Ubuntu, потому его можно установить с помощью стандартного пакетного менеджера.
Обновите локальный индекс пакетов:
sudo apt update
А затем установите пакет apache2:
sudo apt install apache2
С помощью этой команды менеджер пакетов apt установит Apache и все его зависимости.
2: Настройка брандмауэра
Теперь нужно отредактировать настройки брандмауэра и открыть доступ к стандартному порту Apache. Если вы выполнили мануал по начальной настройке, сейчас UFW блокирует доступ к портам, которые не используются (в том числе и к портам веб-сервера).
Во время установки Apache регистрирует в UFW несколько своих профилей, которые упрощают процесс настройки портов веб-сервера.
Чтобы просмотреть профили приложений ufw, введите:
sudo ufw app list
Вы увидите список доступных профилей:
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
Как видите, у вас есть три профиля Apache:
- Apache: поддерживает трафик по порту 80 (стандартный порт).
- Apache Full: открывает порты 80 и 443 (зашифрованный трафик TLS/SSL).
- Apache Secure: поддерживает только шифрованный трафик TLS/SSL по порту 443.
Рекомендуется включить наиболее строгий профиль, который при этом позволит поддерживать текущий трафик. Поскольку мы еще не настроили SSL-сертификат, нам нужно разрешить трафик по порту 80:
sudo ufw allow 'Apache'
Убедитесь, что профиль включился:
sudo ufw status
Вы увидите такой вывод:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
3: Проверка веб-сервера
После установки сервер Ubuntu 20.04 запускает Apache самостоятельно.
Чтобы убедиться, что веб-сервер запустился, запросите его состояние:
sudo systemctl status apache2
apache2. service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-04-23 22:36:30 UTC; 20h ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 29435 (apache2)
Tasks: 55 (limit: 1137)
Memory: 8.0M
CGroup: /system.slice/apache2.service
├─29435 /usr/sbin/apache2 -k start
├─29437 /usr/sbin/apache2 -k start
Согласно этому выводу сервис работает правильно. Но лучше также запросить страницу Apache, чтобы подтвердить работу веб-сервера.
Чтобы открыть стандартную посадочную страницу Apache, укажите свой домен. Если у вас нет домена, укажите внешний IP-адрес своего сервера. Если вы не знаете свой IP-адрес, вы можете узнать его с помощью командной строки. Введите такую команду:
hostname -I
Вы получите список адресов, разделенных пробелами. Проверьте каждый полученный адрес в браузере, чтобы узнать, какой из них работает.
Также вы можете узнать свой IP, запросив его с помощью команды curl. Чтобы извлечь icanhazip.com (IPv4) с помощью curl, введите:
curl -4 icanhazip.com
Узнав свой внешний адрес, введите в браузер:
http://your_server_ip
Вы увидите стандартную страницу Apache для Ubuntu 20.04.
Эта страница позволяет убедиться, что веб-сервер Apache работает правильно; также она содержит базовую информацию о важных файлах и каталогах Apache.
4: Управление процессами Apache
Теперь мы рассмотрим несколько базовых команд для управления веб-сервером с помощью systemctl.
Чтобы остановить сервер, введите:
sudo systemctl stop apache2
Чтобы запустить сервер, введите:
sudo systemctl start apache2
Для перезапуска используйте команду:
sudo systemctl restart apache2
Во время настройки Apache можно часто перезагружать, не сбрасывая соединений. Для этого нужно использовать команду:
sudo systemctl reload apache2
По умолчанию Apache запускается автоматически вместе с сервером. Чтобы удалить этот сервис из автозагрузки, отключите его:
sudo systemctl disable apache2
Чтобы добавить Apache в автозагрузку, используйте эту команду:
sudo systemctl enable apache2
5: Настройка виртуального хоста (рекомендуется)
На веб-сервере Apache вы можете использовать виртуальные хосты (в Nginx это блоки server) для изоляции настроек и размещения нескольких доменов на одном сервере. Здесь используется условный домен your_domain, который вы должны заменить собственным доменом.
Apache Ubuntu 20.04 по умолчанию предоставляет один включенный виртуальный хост, который обслуживает каталог /var/www/html. Этого хватит для обслуживания одного сайта, но если вы хотите разместить несколько сайтов, вам нужно создать новые виртуальные хосты. Создайте структуру каталогов в /var/www для сайта your_domain, а /var/www/html оставьте как каталог по умолчанию, который будет обслуживаться, если запрос клиента не отвечает другим сайтам.
Создайте каталог для your_domain.
sudo mkdir /var/www/your_domain
Затем задайте права на каталог с помощью переменной $USER:
sudo chown -R $USER:$USER /var/www/your_domain
Права должны быть установлены верно, если вы не меняли unmask, но на всякий случай вы можете ввести эту команду (тогда права на чтение, запись и выполнение будут только у владельца каталога, все остальные пользователи и групп смогут только читать его):
sudo chmod -R 755 /var/www/your_domain
Затем создайте образец страницы index.html с помощью nano или другого редактора:
sudo nano /var/www/your_domain/index.html
Вставьте в файл такой код HTML:
<html>
<head>
<title>Welcome to Your_domain!</title>
</head>
<body>
<h2>Success! The your_domain virtual host is working!</h2>
</body>
</html>
Сохраните и закройте файл.
Чтобы Apache мог обслуживать этот контент, необходимо создать файл виртуального хоста с правильными директивами. Вместо того чтобы напрямую изменять конфигурационный файл по умолчанию, /etc/apache2/sites-available/000-default.conf, создайте новый файл /etc/apache2/sites-available/your_domain.conf:
sudo nano /etc/apache2/sites-available/your_domain.conf
Вставьте в файл следующий блок конфигураций. Он похож на конфигурации по умолчанию, но содержит правильный домен и каталог:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName your_domain
ServerAlias www.your_domain
DocumentRoot /var/www/your_domain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Обратите внимание: DocumentRoot содержит путь нового каталога, а ServerAdmin – новый адрес электронной почты администратора сайта your_domain. Мы также добавили в файл две директивы: ServerName определяет базовый домен, который должен соответствовать этому виртуальному хосту, а ServerAlias определяет алиасы.
Сохраните и закройте файл.
Включите файл с помощью a2ensite:
sudo a2ensite your_domain.conf
Отключите стандартный сайт, который определяется файлом 000-default.conf:
sudo a2dissite 000-default.conf
Проверьте ошибки в конфигурациях:
sudo apache2ctl configtest
Если ошибок нет, команда вернет такой вывод:
Syntax OK
Перезапустите Apache:
sudo systemctl restart apache2
Теперь Apache обслуживает домен вашего сайта. Чтобы убедиться в этом, откройте ссылку http://your_domain.
6: Важные файлы и каталоги Apache
Контент
Контент сайта должен храниться в каталоге /var/www/html. По умолчанию из него обслуживается только стандартная страница Apache, которую вы видели ранее. Чтобы изменить корневой каталог сайта, отредактируйте настройки Apache.
Конфигурации
- /etc/apache2: каталог Apache, в котором хранятся все конфигурационные файлы.
- /etc/apache2/apache2.conf: главный конфигурационный файл, в котором находятся глобальные настройки Apache. Он отвечает за загрузку других файлов.
- /etc/apache2/ports.conf: указывает порты, которые прослушивает Apache. По умолчанию веб-сервер прослушивает порт 80; также он может прослушивать порт 443 после включения модуля для поддержки SSL.
- /etc/apache2/sites-available/: каталог, в котором хранятся все файлы виртуальных хостов. Apache не будет использовать их, пока они не связаны с каталогом sites-enabled (см. ниже). Обычно в этом каталоге происходит настройка виртуальных хостов.
- /etc/apache2/sites-enabled/: хранит включенные виртуальные хосты. При запуске или перезапуске Apache читает конфигурационные файлы и ссылки в этом каталоге, чтобы скомпилировать конфигурации.
- /etc/apache2/conf-available/, /etc/apache2/conf-enabled/: каталоги типа sites-available и sites-enabled, работают по тому же принципу. В conf-available хранятся фрагменты конфигураций, которых нет в виртуальном хосте. Файлы в conf-available включаются с помощью команды a2enconf и выключаются с помощью a2disconf.
- /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: также работают по принципу sites-available и sites-enabled. Эти каталоги содержат доступные и активные модули соответственно. Файлы с расширением .load содержат фрагменты для загрузки конкретных модулей. Файлы с расширением .conf хранят настройки этих модулей. Модули включаются и выключаются с помощью команд a2enmod и a2dismod.
Логи сервера
- /var/log/apache2/access.log: по умолчанию каждый запрос к веб-серверу записывается в этом логе доступа (Apache можно настроить иначе).
- /var/log/apache2/error.log: по умолчанию здесь записываются все сообщения об ошибках. Директива LogLevel в настройках Apache определяет, сколько данных будет вноситься в лог.
Заключение
Теперь веб-сервер Apache установлен и готов к работе. Вы можете обслуживать разные типы контента и внедрить множество технологий для положительного пользовательского опыта.
Читайте также: Установка стека LAMP в Ubuntu 20.04
Tags: Apache, Ubuntu, Ubuntu 20.04Установка и настройка сервера Apache
Apache — это популярнейший свободный веб-сервер. Состоянием на 2020 год он используется на 33% всех сайтов интернета, а это приблизительно 304 миллиарда сайтов.
Этот веб-сервер был разработан в далеком 1995, как замена для популярного того сервера NCSA и исправил множество его проблем. Ходят слухи что его имя походит от a patchy, заплатка, так как он исправлял ошибки NCSA. Сейчас же, это кроссплатформенная программа, поддерживающая Windows, Linux и MacOS и обеспечивающая достаточную гибкость, настраиваемость и функциональность. Программа имеет модульную структуру, что позволяет расширять ее функциональность почти до бесконечности с помощью модулей.
Установить Apache в Linux можно с помощью нескольких команд, но программа предоставляет очень большое количество настроек, которые можно изменить, а также модулей, после включения которых она будет работать лучше. В этой статье будет рассмотрена установка и настройка Apache, в качестве основной системы мы будем использовать Ubuntu, но вы можете повторить эти действия в любом другом дистрибутиве. Будет рассмотрена не только установка самой программы, но и способы ее настройки, настройка виртуальных хостов apache, а также самые полезные модули.
Установка Apache
На данный момент, самая новая версия программы 2.4 поэтому и будет рассмотрена настройка apache 2.4. Как я уже говорил, в Linux программа устанавливается буквально в пару команд. Для установки в Ubuntu сначала обновим систему до самой новой версии:
sudo apt update && sudo apt upgrade -y
Затем установка apache2:
sudo apt install apache2
В других дистрибутивах пакет программы называется либо так, либо httpd и его установка у вас не вызовет трудностей.
После завершения установки нужно добавить веб-сервер в автозагрузку, чтобы не запускать его вручную после включения компьютера:
sudo systemctl enable apache2
Настройка Apache
Уже прошло то время, когда конфигурация Apache хранилась в одном файле. Но оно и правильно, когда все распределено по своим директориям, в конфигурационных файлах легче ориентироваться.
Все настройки содержатся в папке /etc/apache2/:
- Файл /etc/apache2/apache2.conf отвечает за основные настройки
- /etc/apache2/conf-available/* — дополнительные настройки веб-сервера
- /etc/apache2/mods-available/* — настройки модулей
- /etc/apache2/sites-available/* — настойки виртуальных хостов
- /etc/apache2/ports.conf — порты, на которых работает apache
- /etc/apache2/envvars
Как вы заметили есть две папки для conf, mods и site. Это available и enabled. При включении модуля или хоста создается символическая ссылка из папки available (доступно) в папку enable (включено). Поэтому настройки лучше выполнять именно в папках available. Вообще говоря, можно было бы обойтись без этих папок, взять все и по старинке свалить в один файл, и все бы работало, но сейчас так никто не делает.
Сначала давайте рассмотрим главный файл конфигурации:
vi /etc/apache2/apache2.conf
Timeout — указывает как долго сервер будет пытаться продолжить прерванную передачу или прием данных. 160 секунд будет вполне достаточно.
KeepAlive On — очень полезный параметр, позволяет передавать несколько файлов, за одно соединение, например, не только саму html страницу, но и картинки и css файлы.
MaxKeepAliveRequests 100 — максимальное количество запросов за одно соединение, чем больше, тем лучше.
KeepAliveTimeout 5 — таймаут соединения, обычно для загрузки страницы достаточно 5-10 секунд, так что больше ставить не нужно, но и рвать соединение раньше чем загрузились все данные тоже не нужно.
User, Group — пользователь и группа, от имени которых будет работать программа.
HostnameLookups — записывать в логи вместо ip адресов доменные имена, лучше отключить, чтобы ускорить работу.
LogLevel — уровень логирования ошибок. По умолчанию используется warn, но чтобы логи заполнялись медленнее достаточно включить error
Include — все директивы include отвечают за подключение рассмотренных выше конфигурационных файлов.
Директивы Directory отвечают за настройку прав доступа к той или иной директории в файловой системе. Синтаксис здесь такой:
Параметр значение
Здесь доступны такие основные опции:
AllowOverride — указывает нужно ли читать .htaccess файлы из этой директории, это такие же файлы настроек и таким же синтаксисом. All — разрешать все, None — не читать эти файлы.
DocumentRoot — устанавливает из какой папки нужно брать документы для отображенияа пользователю
Options — указывает какие особенности веб-сервера нужно разрешить в этой папке. Например, All — разрешить все, FollowSymLinks — переходить по символическим ссылкам, Indexes — отображать содержимое каталога если нет файла индекса.
Require — устанавливает, какие пользователи имеют доступ к этому каталогу. Require all denied — всем запретить, Require all granted — всем разрешить. можно использовать вместо all директиву user или group чтобы явно указать пользователя.
Order — позволяет управлять доступом к директории. Принимает два значения Allow,Deny — разрешить для всех, кроме указанных или Deny,Allow — запретить для всех, кроме указанных. Теперь мы можем запретить доступ к директории для всех: Deny from all, а затем разрешить только для приложения от blanet.ru: Allow from blanet.ru.
Здесь все эти директивы не используются, поскольку нас устраивают значения по умолчанию, но вот в файлах .htaccess они могут быть очень полезны.
У нас остался файл /etc/apache2/ports.conf:
В нем только одна директива, Listen, которая указывает программе на каком порту нужно работать.
Последний файл /etc/apache2/envvars, его вы вряд ли будете использовать, в нем указанны переменные, которые можно использовать в других конфигурационных файлах.
Дальше поговорим немного о htacess. Совсем немного.
Настройка сервера Apache через htaccess
Файлы .htaccess позволяют настраивать веб-сервер на Ubuntu для поведения в определенной директории. Все инструкции, указанные в этом файле выполняются как бы они были обвернуты в тег если бы находились в основном файле.
Важно заметить, что для того, чтобы сервер читал инструкции из .htaccess настройки для этой папки в основном файле или файле виртуального хоста не должны содержать AllowOverride None, чтобы могли работать все настройки нужно AllowOverride All.
А в остальном, здесь может выполняться любая настройка сервера apache, от включения модулей, до обычного изменения доступа к папке. Поскольку все параметры мы уже рассмотрели просто приведем пару примеров:
Order Deny,Allow Deny from all
Запрещает всем доступ к этой папке, важно применить, для папок с конфигурацией. Чаще всего .htaccess используется для работы с модулем mod_rewrite, который позволяет изменять запросы на лету:
RewriteEngine on RewriteRule ^product/([^/\\. ]+)/?$ product.php?id=$1 [L]
Но это очень обширная тема и выходит за рамки этой статьи.
Настройка модулей Apache
Как я уже говорил, Apache — модульная программа, ее функциональность можно расширять с помощью модулей. Все доступные модули загрузчики и конфигурационные файлы модулей находятся в папке /etc/apache/mods-available. А активированные в /etc/apache/mods-enable.
Но вам необязательно анализировать содержимое этих папок. Настройка Apache 2.4 с помощью добавления модулей выполняется с помощью специальных команд. Посмотреть все запущенные модули можно командой:
apache2ctl -M
Включить модуль можно командой:
sudo a2enmod имя_модуля
А отключить:
sudo a2dismod имя_модуля
После включения или отключения модулей нужно перезагрузить apache:
sudo systemctl restart apache2
Во время выполнения одной из этих команд создается или удаляется символическая ссылка на файл модуля с расширением load в директории mods-available. Можете посмотреть содержимое этого файла, там только одна строка. Например:
vi /etc/apache2/mods-available/deflate.load
Это к тому, что активировать модуль можно было просто добавив эту строчку в файл apache2.conf. Но принято делать именно так, чтобы избежать путаницы.
Настройки модулей находятся в той же папке, только в файле с расширением .conf вместо load. Например, посмотрим настройки того же модуля для сжатия deflate:
vi /etc/apache2/mods-available/deflate.conf
Файлы в папке conf-available, это такие же модули, только они установлены отдельно от apache, это может быть конфигурационные файлы для включения модуля php или любого другого языка программирования. Здесь работает все точно так же, только команды для включения и отключения этих модулей немного другие:
a2enconf имя_модуля
a2disconf имя модуля
Как вы убедились, включать модули очень просто. Давайте включим несколько необходимых, но не включенных по умолчанию модулей:
sudo a2enmod expires
sudo a2enmod headers
sudo a2enmod rewrite
sudo a2enmod ssl
Модули expires и headers уменьшают нагрузку на сервер. Они возвращают заголовок Not Modified, если документ не изменился с последнего запроса. Модуль expiries позволяет устанавливать время, на которое браузер должен кэшировать полученный документ. Rewrite позволяет изменять запрашиваемые адреса на лету, очень полезно при создании ЧПУ ссылок и т д. А последний для включения поддержки шифрования по SSL. Не забудьте перезагрузить apache2 после завершения настроек.
Настройка виртуальных хостов Apache
Было бы не совсем удобно, если на одной физической машине можно было размещать только один сайт. Apache может поддерживать сотни сайтов на одном компьютере и выдавать для каждого из них правильное содержимое. Для этого используются виртуальные хосты. Сервер определяет к какому домену приходит запрос и отдает нужное содержимое из папки этого домена.
Настройки хостов Apache расположены в папке /etc/apache2/sites-available/. Для создания нового хоста достаточно создать файл с любым именем (лучше кончено с именем хоста) и заполнить его нужными данными. Обернуть все эти параметры нужно в директиву VirtualHost. Кроме рассмотренных параметров здесь будут использоваться такие:
- ServerName — основное имя домена
- ServerAlias — дополнительное имя, по которому будет доступен сайт
- ServerAdmin — электронная почта администратора
- DocumentRoot — папка с документами для этого домена
Например:
vi /etc/apache2/sites-available/test.site.conf
ServerName test.site ServerAlias www.test.site ServerAdmin webmaster@localhost DocumentRoot /var/www/test.site/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
Виртуальные хосты, как и модули нужно активировать. Для этого есть специальные утилиты. Чтобы активировать наберите:
sudo a2ensite test.site
Здесь test.site — имя файла виртуального хоста. Для отключения тоже есть команда:
sudo a2dissite test.site
Настройка виртуальных хостов Apache завершена и на публичном сервере это все бы уже работало, но если вам нужна настройка Apache на домашней машине, то вы ваш новый сайт не откроется в браузере. Браузер не знает такого сайта. И откуда ему знать? DNS службы не могут ничего сообщить об этом доменном имени. Но в системе Linux мы можем сами указать ip адреса для доменных имен в файле /etc/hosts. Поэтому добавляем в конец файла такие строки:
vi /etc/hosts
127.0.0.1 test.site 127.0.0.1 www.test.site
Вот, ну теперь будет работать, открывайте браузер, проверяйте.
ВЫВОДЫ
Вот и все. Установка и настройка Apache linux завершена, вы можете использовать программу для размещения ваших сайтов. Более того, вы не просто настроили ее, вы разобрались со всеми подробностями и теперь знаете чуточку больше. Если у вас остались еще вопросы, пишите в комментариях!
Автор: GoogleИсточник: blanet.ru
Как установить и настроить веб-сервер Apache в Ubuntu 20.04
#Что такое веб-сервер Apache?
Apache — один из наиболее широко используемых веб-серверов в мире. Он основан на архитектуре, управляемой процессами, и работает, создавая новый поток каждый раз, когда поступает запрос к серверу. Apache имеет богатый набор функций, которые можно включить динамически, установив официальные модули для автоматического индексирования, ftp-соединений, балансировки нагрузки, отслеживания URL-адресов и многих других дополнительных функций.
Целью фонда Apache является создание надежной, полнофункциональной и свободно доступной реализации исходного кода HTTP (веб-сервера) коммерческого уровня. Apache теперь является зрелым, но все еще активно развивающимся веб-сервером, который хорошо совместим с другим популярным программным обеспечением, таким как WordPress, Joomla, Drupal и другими.
#Install Apache Web Server
Перед установкой любого нового программного обеспечения рекомендуется обновить списки пакетов программного обеспечения.
apt update
Теперь, когда ваш список пакетов обновлен, мы можем приступить к установке Apache на ваш хост-компьютер.
apt install apache2
После завершения установки должен быть запущен демон Apache httpd. Вы можете убедиться в этом самостоятельно, обратившись к своему сервис-менеджеру.
статус службы apache2
Вы должны увидеть, что служба Apache активна и работает. Если нет, включите его самостоятельно с помощью команды запуска службы apache2.
#Adjust Firewall Security Configuration
После установки Apache необходимо убедиться, что ваш брандмауэр правильно настроен. Ubuntu поставляется с предустановленным ufw
(Uncomplicated Firewall) для управления iptables
.
Если вы используете порт SSH по умолчанию, вы должны разрешить его перед включением службы ufw
, чтобы случайно не заблокировать себе подключение к вашему серверу, поскольку ufw по умолчанию запрещает весь входящий трафик.
ufw allow 22
Далее вам нужно включить службу Apache через ufw. Вы можете перечислить все профили приложений, о которых знает служба ufw.
Список приложений ufw
Как видите, ufw знает о трех профилях приложений Apache.
- Профиль Apache связан с портом 80, который используется для незашифрованного HTTP-трафика.
- Профиль Apache Secure связан с портом 443, который используется для HTTPS-трафика с шифрованием SSL.
- Профиль Apache Full открывает как незашифрованный HTTP-порт 80, так и зашифрованный HTTPS-порт 443.
Давайте включим HTTP-порт по умолчанию в брандмауэре, создав разрешающее правило для профиля приложения Apache.
ufw разрешить Apache
Теперь вы можете включить демон службы ufw.
запуск службы ufw
И проверьте состояние брандмауэра.
подробный статус ufw
Как видите, весь входящий трафик теперь запрещен, за исключением портов 80 (Apache) и 22 (SSH), что нам и нужно.
Теперь вы можете проверить подключение к веб-серверу Apache, обратившись к своему IP-адресу через порт 80, что можно сделать, введя http://your_ip_address в веб-браузере. Если все прошло хорошо, вы должны увидеть целевую страницу Apache по умолчанию.
#Управление системной службой Apache
При запуске веб-сервера Apache может потребоваться так или иначе манипулировать его системным процессом. Вы можете сделать это с помощью нашей ранее использовавшейся сервисной команды, которая представляет собой утилиту высокого уровня, которая управляет systemd
процессов на вашем компьютере с Ubuntu.
Во-первых, давайте удостоверимся, что Apache запущен и работает, проверив состояние нашей службы apache2.
состояние службы apache2
Мы можем остановить службу apache2 и снова проверить ее состояние.
service apache2 stop && service apache2 status
Теперь давайте включим сервисный демон apache2 и еще раз проверим его статус.
запуск службы apache2 && статус службы apache2
Если служба работает, но испытывает проблемы, вместо того, чтобы запускать и останавливать ее, мы можем перезапустить ее.
перезапуск службы apache2
Как видите, служба apache2 была запущена несколько минут назад.
Если вы вносите какие-либо изменения в файлы конфигурации Apache и хотите применить их, не прерывая работу активной службы, вместо этого вы можете использовать команду перезагрузки.
служба apache2 перезагрузить
Служба веб-сервера Apache запускается автоматически при перезагрузке по умолчанию, потому что обычно это именно то, что мы хотим от веб-сервера. Вы можете проверить, включена ли опция автоматической загрузки напрямую с помощью утилиты systemctl.
systemctl is-enabled apache2
Могут возникнуть ситуации, когда вам нужно отключить веб-сервер для обслуживания на длительное время, и вы не хотите, чтобы Apache запускался после перезагрузки. В таком случае вам следует отключить службу с помощью утилиты systemctl.
systemctl отключить apache2
После выполнения задач обслуживания вы можете снова включить службу, чтобы Apache запускался автоматически после перезагрузки.
systemctl enable apache2
Команда создает символическую ссылку для вашего системного администратора для запуска исполняемого файла при загрузке системы.
#Host Your First Website
Теперь, когда у нас есть работающий веб-сервер Apache, мы можем попробовать разместить на нем некоторый контент. По умолчанию Apache загружает файл index.html, расположенный в каталоге /var/www/html, в качестве домашней страницы, когда кто-то пытается получить доступ к веб-серверу.
Давайте теперь получим доступ к этому каталогу и откроем файл index.html с помощью текстового редактора vim, чтобы убедиться, что внутри есть настоящий HTML-код.
vim /var/www/html/index.html
Это фактический код нашей предыдущей целевой страницы Apache. Мы можем выйти из vim и удалить этот файл.
rm index.html
Теперь создайте новый файл index.html и добавьте в него свой HTML-код.
vim index. html
<голова>голова> <тело>Это будет следующая вещь BGI
тело>
Снова зайдите на свой веб-сервер, чтобы увидеть, что отображается ваша пользовательская страница.
# Размещение нескольких веб-сайтов (виртуальных хостов) на одном сервере
Одной из замечательных функций Apache является виртуализация хоста. Виртуальные хосты дают вам возможность запускать несколько веб-сайтов на одном сервере. Давайте создадим новый виртуальный хост для с доменом acherryontop.tk
.
Во-первых, нам нужно создать новый каталог внутри /var/www/
с именем withacherryontop.tk
mkdir withacherryontop.tk
Затем получить доступ к этому вновь созданному каталогу и создать новый каталог с именем 9 0013 public_html внутри него.
mkdir public_html
Еще раз откройте этот новый каталог и создайте в нем файл index. html, чтобы окончательный абсолютный путь был следующим: /var/www/withacherryontop.tk/public_html/index.html
На этот раз мы отредактируем наш новый файл index.html
и добавим новый код HTML.
<голова>голова> <тело>Добро пожаловать на сайт withacherryontop.tk
тело>
Чтобы Apache подтвердил нашу новую настройку, нам нужно создать файл конфигурации с именем withacherryontop.tk.conf
в каталоге /etc/apache2/sites-available/
Давайте получим доступ к этому каталогу и проверим его файлы.
ls -l
У нас есть два файла конфигурации по умолчанию в этом каталоге конфигурации:
- 000-default.conf — шаблон конфигурации веб-сайта (виртуального хоста) по умолчанию;
- default-ssl.conf — шаблон конфигурации сертификата SSL по умолчанию.
Теперь создадим файл withacherryontop. tk.conf
от имени по умолчанию 000-default.conf
шаблон конфигурации, скопировав его.
cp 000-default.conf withacherryontop.tk.conf
Теперь мы можем изменить этот вновь созданный файл, чтобы установить конфигурацию нашего веб-сайта.
vim withacherryontop.tk.conf
Имя сервера с acherryontop.tk Псевдоним сервера www.withacherryontop.tk Администратор сервера [email protected] Корневой документ /var/www/withacherryontop.tk/public_html ErrorLog $(APACHE_LOG_DIR)/withacherryontop.tk-error.log CustomLog $(APACE_LOG_DIR) с acherryontop.tk-access.log вместе виртуальный хост>
- ServerName — доменное имя, которое должно соответствовать текущей конфигурации виртуального хоста
- ServerAlias — все остальные домены, которые также должны совпадать с этим виртуальным хостом (т. е. субдомен www)
- ServerAdmin — адрес электронной почты веб-мастера
- DocumentRoot — каталог, из которого Apache будет обслуживать файлы домена
- ErrorLog, CustomLog — расположение лог-файлов
Сохраните файл и перейдите к следующему шагу.
Чтобы включить наш недавно созданный файл, мы будем использовать инструмент, поставляемый с Apache, под названием a2ensite
. a2ensite означает «Apache 2 enable site», и в нашем случае мы включаем сайт с помощью acherryontop.tk:
a2ensite с acherryontop.tk.conf
Вывод содержит полезный совет, напоминающий нам о необходимости перезагрузить apache2 для применения новой конфигурации. Давайте сделаем это.
service apache2 reload
Если перезагрузка сервера не работает, мы можем перезапустить Apache.
перезапуск службы apache2
Если все в порядке, вы должны увидеть новое имя хоста, добавленное в файл /etc/hosts
с вашими [ip_address] и [virtual_host_name]:
185.150 .117.222 withachcerryontop.tk
Теперь вы можете локально запросить новое имя хоста и проверить ответ.
завиток с cherryontop.tk
И, запросив свой IP-адрес, вы должны увидеть тот же веб-сайт, что и раньше.
curl 185.150.117.222
Теперь у нас есть виртуальный хост по умолчанию, работающий на «localhost», и новый виртуальный хост, работающий на «withacherryontop.tk». Если вы хотите, чтобы новый виртуальный хост работал только на Apache, не стесняйтесь отключить файл конфигурации по умолчанию и перезапустить apache2.
a2dissiste 000-default.conf
перезапуск службы apache2
После изменений мы видим, что наш IP указывает на единственную оставшуюся конфигурацию виртуального хоста на сервере, которая находится с acherryontop.tk.conf и отображает ее содержимое.
curl 185.150.117.222
#To Wrap up
После выполнения этого руководства у вас должен быть полностью работающий веб-сервер Apache на вашем компьютере, и вы сможете настроить и использовать его в соответствии со своими потребностями. Следуя предыдущим инструкциям, вы можете продолжать добавлять веб-сайты (виртуальные хосты) на сервер, если хотите.
Для получения дополнительных функциональных возможностей вы всегда можете обратиться к официальной документации по адресу: http://httpd.apache.org/docs/
Также удобно просмотреть целевую страницу Apache по умолчанию в качестве краткого и быстрого освежения:
Установка и настройка веб-сервера Apache в Ubuntu 20.04
Веб-сервер Apache — это наиболее широко используемый веб-сервер с открытым исходным кодом, поддерживаемый в большинстве ОС, включая Linux, Windows, MacOS, Solaris и т. д. Он легко настраивается и может быть интегрирован с другими модулями. Установить и настроить Apache для базовой настройки довольно просто. В этой статье объясняется, как установить и настроить веб-сервер Apache в операционной системе Ubuntu.Примечание. Мы объяснили процедуру, описанную в этой статье, для системы Ubuntu 20.04 LTS.
Установка Apache2; Шаг 1: Обновление
Во-первых, нам нужно обновить индекс системного репозитория, чтобы установить самую последнюю версию Apache2. Для этого запустите Терминал с помощью сочетания клавиш Ctrl+Alt+T и выполните следующую команду:
$ sudo apt update
Обратите внимание, что только авторизованный пользователь может устанавливать, обновлять или удалять пакеты из системы Linux.
Шаг 2: Установите Apache2
Далее на этом шаге мы установим веб-сервер Apache2. Для этого выполните следующую команду в Терминале:
$ sudo apt install apache2
Система может запросить подтверждение, предоставив вам опцию Y/n . Нажмите y , а затем Enter, чтобы продолжить. После этого веб-сервер Apache2 и все его зависимости будут установлены в вашей системе.
После установки проверьте версию сервера Apache следующим образом:
$ apache2 -version
Конфигурация брандмауэра
Теперь нам нужно открыть определенные порты в нашей системе, чтобы получить доступ к Apache извне. Во-первых, давайте перечислим профили приложений, к которым нам нужно предоставить доступ Apache. Для этого выполните следующую команду:
$ sudo ufw app list
Здесь вы можете увидеть различные профили Apache.
Мы будем использовать строго ограничительный профиль «Apache», чтобы включить сетевую активность через порт 80.
$ sudo ufw allow ‘Apache’
Теперь проверьте статус, который покажет, что Apache разрешен в брандмауэре.
$ sudo ufw status
Настройка веб-сервера Apache; Проверка службы Apache
Прежде чем переходить к настройке, сначала проверьте, работает ли служба Apache. Для этого выполните следующую команду в терминале:
$ sudo systemctl status apache2
Из приведенного выше вывода видно, что служба Apache2 активна и работает.
Еще один способ проверить, нормально ли работает Apache, путем запроса веб-страницы с веб-сервера Apache. Для этого найдите свой IP-адрес с помощью следующей команды:
$ hostname –I
Затем откройте веб-браузер и перейдите на страницу приветствия apache следующим образом:
http://192. 168.72.134
Замените 192.168.72 .134 по IP-адресу вашего компьютера.
Перейдя по указанной выше ссылке в браузере, вы увидите страницу приветствия Apache, которая указывает на то, что сервер Apache работает правильно.
Настройка виртуальных хостов в Apache
Если у вас есть несколько доменов, которые должны быть серверами с одного веб-сервера Apache, вам потребуется настроить виртуальные хосты. Далее мы покажем вам, как настроить виртуальный хост в Apache. Мы настроим доменное имя «info.net». Обязательно замените info.ne своим собственным доменным именем.
Шаг 1: Создайте каталог для вашего домена
На этом шаге мы создадим каталог для нашего доменного имени. Этот каталог будет использоваться для хранения данных на нашем веб-сайте.
Запустите в Терминале следующую команду, заменив info.net своим доменным именем:
$ sudo mkdir -p /var/www/info.net/html
Измените владельца каталога на текущего пользователя:
$ sudo chown -R $USER:$USER / var/www/info. net/html
Назначьте необходимые разрешения следующим образом:
$ sudo chmod -R 755 /var/www/info.net
Шаг 2: Создайте образец страницы для вашего сайта
У нас есть настроенный виртуальный хост и назначены необходимые разрешения. Теперь мы создадим образец страницы для нашего сайта. Мы создадим образец страницы с помощью редактора Nano, однако для этой цели можно использовать любой текстовый редактор.
$ nano /var/www/info.net/html/index.html
Скопируйте и вставьте следующие строки кода HML:
Вы используете info.net на Ubuntu 20.04!
Теперь используйте Ctrl+O для сохранения, а затем Ctrl+X для выхода из файла.
Шаг 3: Создайте файл виртуального хоста
Сервер Apache поставляется с файлом виртуального хоста по умолчанию. Этот файл используется для обслуживания содержимого веб-сервера. Однако мы создадим новый файл виртуального хоста с помощью следующей команды:
$ sudo nano /etc/apache2/sites-available/info.net.conf
Теперь введите следующие строки, заменив info.net на ваше собственное доменное имя.
ServerAdmin [email protected]
ServerName info.net
ServerAlias info.net
DocumentRoot /var/www/info.net/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR }/access.log в сочетании
Теперь используйте Ctrl+O для сохранения, а затем Ctrl+X для выхода из файла.
Шаг 4: Активируйте файл конфигурации виртуального хоста
На этом шаге мы создадим файл конфигурации виртуального хоста. Для этого выполните в терминале следующую команду:
$ sudo a2ensite info.net.conf
Теперь отключите виртуальный файл конфигурации «000-default.conf» по умолчанию следующим образом:
$ sudo a2dissite 000-default. conf
900 05
Теперь перезапустите Apache, чтобы активировать новую конфигурацию следующим образом:
$ sudo systemctl перезапустить apache2
Шаг 5. Проверка на наличие ошибок
После завершения всех настроек вы можете проверить наличие ошибок:
$ sudo apache2ctl configtest
Вы можете получить следующую ошибку:
Чтобы устранить эту ошибку, отредактируйте файл servername.conf :
$ sudo nano /etc/apache2/conf-available/servername.conf
Затем добавьте эту строку, заменив info.net своим собственным доменным именем:
ServerName info.net
Сохраните и выйдите из файла servername.conf и запустите:
$ sudo a2enconf servername
Теперь снова выполните:
$ sudo apache2ctl configtest
Надеюсь, на этот раз вы не получите никаких ошибок.
Шаг 6: Проверка виртуального хоста
Теперь веб-сервер Apache готов обслуживать наш домен. Давайте проверим это, перейдя по следующей ссылке в браузере:
http://info.net
Замените info.net своим доменным именем.
Следующая индексная страница показывает, что сервер Apache готов обслуживать наше доменное имя.
Управление сервером Apache
Вот несколько полезных команд, которые можно запустить в Терминале для управления сервером Apache:
Чтобы запустить сервер Apache:
$ sudo systemctl start apache2
Чтобы остановить сервер Apache:
$ sudo systemctl остановить apache2
Чтобы остановить, а затем запустить Apache»
$ sudo systemctl stop apache2
Чтобы перезагрузить сервер Apache для обновления новых конфигураций:
$ sudo systemctl reload apache2
Чтобы запустить Apache при загрузке:
9000 4 $ sudo systemctl enable apache2Чтобы отключить Apache при загрузке:
$ sudo systemctl disable apache2
В этой статье подробно объясняется установка и настройка веб-сервера Apache в Ubuntu 20.