Как установить веб-сервер Apache в Ubuntu 20.04
В этом руководстве вы узнаете, как установить веб-сервер Apache в Ubuntu 20.04. Он включает в себя управление службами Apache2, открытие порта веб-сервера в брандмауэре, тестирование установки Apache2 и настройку среды виртуального хоста.
Читайте по теме: Как установить веб-сервер Nginx в Ubuntu 20.04
Требования:
- Как установить сервер Ubuntu 20.04
Установка Apache2 в Ubuntu 20.04
1. Сначала войдите в свою систему Ubuntu 20.04 и обновите системные пакеты, используя следующую команду apt.
sudo apt update
2. После завершения процесса обновления установите программное обеспечение веб-сервера Apache2 следующим образом.
sudo apt install apache2
3. При установке пакета Apache2 установщик запускает systemd для автоматического запуска и включения службы apache2. Вы можете убедиться, что служба apache2 активна/работает и имеет возможность автоматического запуска при запуске системы, используя следующие команды systemctl.
sudo systemctl is-active apache2 sudo systemctl is-enabled apache2 sudo systemctl status apache2
Управление Apache в Ubuntu 20.04
4. Теперь, когда ваш веб-сервер Apache запущен, пришло время изучить некоторые основные команды управления для управления процессом Apache с помощью следующих команд systemctl.
sudo systemctl stop apache2 #stop apache2 sudo systemctl start apache2 #start apache2 sudo systemctl restart apache2 #restart apache2 sudo systemctl reload apache2 #reload apache2 sudo systemctl disable apache2 #disable apache2 sudo systemctl enable apache2 #enable apache2
Настройка Apache в Ubuntu 20.04
5. Все файлы конфигурации Apache2 хранятся в каталоге /etc/apache2 . Вы можете просмотреть все файлы и подкаталоги в нем с помощью следующей команды ls. команда.
ls /etc/apache2/*
6. Ниже приведены основные файлы конфигурации и подкаталоги, на которые следует обратить внимание:
- /etc/apache2/apache2.conf – основной файл глобальной конфигурации Apache, включающий все остальные файлы конфигурации.
- /etc/apache2/conf-available – хранит доступные конфигурации.
- /etc/apache2/conf-enabled – содержит включенные конфигурации.
- /etc/apache2/mods-available – содержит доступные модули.
- /etc/apache2/mods-enabled – содержит включенные модули.
- /etc/apache2/sites-available – содержит файл конфигурации доступных сайтов (виртуальных хостов).
- /etc/apache2/sites-enabled – содержит файл конфигурации для включенных сайтов (виртуальных хостов).
Обратите внимание: если FQDN сервера не установлено глобально, вы будете получать следующее предупреждение каждый раз, когда проверяете состояние службы apache2 или запускаете тест конфигурации.
apachectl[2996]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 10.0.2.15.
Установите директиву ‘ServerName’ глобально в основном файле конфигурации Apache, чтобы подавить это сообщение.
7. Чтобы установить FQDN веб-сервера, используйте директиву ServerName в /etc/apache2/apache2.conf. файл, откройте его для редактирования в вашем любимом текстовом редакторе.
sudo vim /etc/apache2/apache2.conf
Добавьте в файл следующую строку (заменив webserver1.linux-console.net своим полным доменным именем).
ServerName webserver1.linux-console.net
8. После добавления имени сервера в конфигурацию Apache проверьте синтаксис конфигурации на правильность и перезапустите службу.
sudo apache2ctl configtest sudo systemctl restart apache2
9. Теперь, когда вы проверяете состояние службы apache2, предупреждение не должно появляться.
sudo systemctl status apache2
Открытие портов Apache в брандмауэре UFW
10. Если в вашей системе включен и работает брандмауэр UFW, вам необходимо открыть HTTP (порт 80) и Службы HTTPS (порт 443) в конфигурации брандмауэра, чтобы разрешить веб-трафик к веб-серверу Apache2 через брандмауэр.
sudo ufw allow http sudo ufw allow https sudo ufw reload OR sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw reload
Тестирование Apache на Ubuntu 20.04
11. Чтобы проверить, правильно ли работает установка веб-сервера Apache2, откройте веб-браузер и используйте IP-адрес вашего сервера для навигации:
http://SERVER_IP
Чтобы узнать общедоступный IP-адрес вашего сервера, используйте любую из следующих команд Curl.
curl ifconfig.co OR curl ifconfig.me OR curl icanhazip.com
Если вы видите веб-страницу приветствия Apache Ubuntu по умолчанию, это означает, что установка вашего веб-сервера работает нормально.
Настройка виртуальных хостов в Ubuntu 20.04
Хотя веб-сервер Apache2 по умолчанию настроен для размещения одного веб-сайта, вы можете использовать его для размещения нескольких веб-сайтов/приложений, используя концепцию «Виртуальный хост».
Таким образом, Виртуальный хост — это термин, обозначающий практику запуска более одного веб-сайта/приложения (например, example.com и example1.com ). ) на одном сервере.
Кроме того, Виртуальные хосты могут быть «на основе имени» (это означает, что у вас есть несколько доменов/имен хостов, работающих на одном IP-адресе) или «на основе IP». » (это означает, что у вас разные IP-адреса для каждого веб-сайта).
Обратите внимание, что виртуальный хост по умолчанию, который обслуживает веб-страницу приветствия Apache Ubuntu по умолчанию, которая используется для тестирования установки Apache2, расположен в каталоге /var/www/html .
ls /var/www/html/
12. В этом руководстве мы создадим виртуальный хост для веб-сайта под названием linuxdesktop.info . Итак, давайте сначала создадим корень веб-документа для сайта, в котором будут храниться веб-файлы сайта.
sudo mkdir -p /var/www/html/linuxdesktop.info
13. Затем установите соответствующее право собственности и разрешения для созданного каталога.
sudo chown www-data:www-data -R /var/www/html/linuxdesktop.info sudo chmod 775 -R /var/www/html/linuxdesktop.info
14. Теперь создайте образец индексной страницы для тестирования.
sudo vim /var/www/html/linuxdesktop.info/index.html
Скопируйте и вставьте в него следующий HTML-код.
Welcome to linuxdesktop.info! Congrats! The new linuxdesktop.info virtual host is working fine.
Сохраните файл и выйдите из него.
15. Далее вам необходимо создать файл конфигурации виртуального хоста (который должен заканчиваться расширением .conf ) для нового сайта в каталоге /etc/apache2. /sites-available.
sudo vim /etc/apache2/sites-available/linuxdesktop.info.conf
Затем скопируйте и вставьте в файл следующую конфигурацию (не забудьте заменить www.linuxdesktop.info своим полным доменным именем).
ServerName www.linuxdesktop.info ServerAlias linuxdesktop.info DocumentRoot /var/www/html/linuxdesktop.info ErrorLog /var/log/apache2/linuxdesktop.info_error.log CustomLog /var/log/apache2/linuxdesktop.info_access.log combined
Сохраните файл и выйдите из него.
16. Затем включите новый сайт и перезагрузите конфигурацию Apache2, чтобы применить новые изменения следующим образом.
sudo a2ensite linuxdesktop.info.conf sudo systemctl reload apache2
17. Наконец, проверьте, работает ли новая конфигурация виртуального хоста нормально. В веб-браузере используйте свое полное доменное имя для навигации.
http://domain-name
Если вы видите индексную страницу вашего нового веб-сайта, это означает, что виртуальный хост работает нормально.
Вот и все! В этом руководстве мы показали, как установить веб-сервер Apache в Ubuntu 20.04. Мы также рассказали, как управлять службами Apache2, открывать службы/порты HTTP и HTTPS в брандмауэре UFW, протестировать установку Apache2, а также настраивать и тестировать среду виртуального хоста. Если у вас есть какие-либо вопросы, используйте форму комментариев ниже, чтобы связаться с нами.
Все права защищены. © Linux-Console.net • 2019-2024
Apache HTTP Server
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. Вы можете использовать этот виртуальный хост в качестве примера.
Пример настройки виртуального хоста:
#Имя хоста ServerName host1.server1 #Корневая папка хоста DocumentRoot /var/www/host1.server1 #Разрешение на перезапись всех директив при помощи .htaccess AllowOverride All
Назовите файл настройки именем вашего хоста 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 — имя пользователя.
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-страницу.
Ссылки
Возможные проблемы
Если при запуске появляется ошибка
apache2: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
добавьте в свой файл конфигурации строку
ServerName localhost
Установка и настройка веб-сервера Apache в Ubuntu 22.04
На протяжении десятилетий Apache или Apache HTTP Server был одним из наиболее широко используемых приложений веб-сервера во всем мире, и он по-прежнему сохраняет свою популярность, имея 48,0 миллионов активных сайтов. Apache Software Foundation управляет этим веб-сервером. Динамически загружаемые модули, управление статическими файлами и простая интеграция с другими приложениями — вот несколько замечательных особенностей веб-сервера Apache.
В этой статье будет обсуждаться метод установки и настройки веб-сервера Apache в Ubuntu 22.04. Итак, начнем!
Как установить веб-сервер Apache в Ubuntu 22.04
Чтобы настроить веб-сервер Apache в Ubuntu 22.04, вы должны следовать приведенным ниже пошаговым инструкциям.
Шаг 1. Обновите системные репозитории
Нажмите «CTRL+ALT+T», чтобы открыть терминал и выполнить приведенную ниже команду для обновления системных репозиториев:
$ sudo apt update
Шаг 2. Установите веб-сервер Apache в Ubuntu 22.04
После обновления системных репозиториев напишите следующую команду для установки веб-сервера «apache2» в вашей системе Ubuntu 22.04:
$ sudo apt install apache2
Подождите несколько минут, так как установка Apache займет некоторое время:
Шаг 3. Настройте брандмауэр
Чтобы получить доступ к Apache извне, необходимо открыть определенные порты в вашей системе. Для этого сначала проверьте список профилей приложений, которым требуется доступ:
$ sudo ufw app list
Выполнение приведенной выше команды распечатает на терминале различные профили Apache:
Далее мы будем использовать профиль «Apache Full», чтобы включить сетевую активность на порту «80»:
$ sudo ufw allow ‘Apache Full’
После этого проверьте текущий статус брандмауэра:
$ sudo ufw status
Теперь давайте перейдем к настройке веб-сервера Apache в 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
Чтобы установитьвиртуальный хост в Apache, создайте каталог, который можно использовать для хранения данных на веб-сайте. Для этого мы перейдем в каталог «/var/www», используя следующую команду «cd»:
$ cd / var / www /
Затем мы создадим каталог для нашего домена «example.com». Здесь вы можете указать свое доменное имя в приведенной ниже команде:
$ sudo mkdir -p / var / www / example.com /
Используйте команду «chown» для изменения владельца каталога «example.com» с помощью переменной среды «www-data»:
$ sudo chown -R www-data:www-data / var / www / example.com
Шаг 3. Создание веб-страницы
Чтобы создать образец веб-страницы «index.html» для нашего веб-сайта, мы будем использовать редактор «nano»:
$ sudo nano / var / www / example.com / index.html
В открывшемся файле запишите следующий код:
< title >Welcome to linux-console.net < / title >
< h1 >Success! The tutorial is all about apache2 configuration! < / h1 >
После добавления кода нажмите «Ctrl+O», чтобы сохранить файл:
Шаг 4. Создание файла виртуального хоста
На данный момент мы создали каталог для нашего домена и обновили его владельца. Теперь мы создадим файл виртуального хоста в каталоге по умолчанию для файлов хоста Apache:
$ sudo nano / etc / apache2 / sites-available / example.com.conf
В открытый файл виртуального хоста добавьте следующие строки кода. Кроме того, вы должны заменить информацию, связанную с «ServerName», «ServerAlias» и «DocumentRoot» в соответствии с вашими настройками:
ServerAdmin admin @ localhost
DocumentRoot / var / www / example.com
CustomLog $ / access.log combined
Нажмите «Ctrl+O», чтобы сохранить добавленный код файла конфигурации виртуального хоста:
Шаг 5. Включите файл виртуального хоста
Выполните следующую команду «a2ensite», чтобы активировать созданный файл виртуального хоста:
$ sudo a2ensite example.com.conf
Затем отключите файл конфигурации по умолчанию:
$ sudo a2dissite 000-default.conf
После выполнения указанной операции. Перезапустите службу «apache» в вашей системе Ubuntu 22.04:
$ sudo systemctl restart apache2
Шаг 6. Проверка ошибок
На последнем этапе настройки Apache2 проверьте ошибки конфигурации:
$ sudo apache2ctl configtest
В случае наличия безошибочного файла конфигурации выполнение приведенной выше команды сообщит вам, что синтаксис «OK»:
Однако есть вероятность, что вы можете столкнуться со следующей ошибкой после тестирования файла конфигурации:
Если это так, отредактируйте файл «servername.conf» и добавьте свое имя «domain»:
$ sudo nano / etc / apache2 / conf-available / servername.conf
Указав доменное имя в открывшемся файле конфигурации, нажмите «Ctrl+O», чтобы сохранить добавленное содержимое:
Затем включите новую конфигурацию с помощью следующей команды:
$ sudo a2enconf servername
Наконец, перезапустите службу «apache2» в вашей системе Ubuntu 22.04:
$ sudo systemctl restart apache2
Шаг 7. Тестирование виртуального хоста
Наконец, проверьте свой виртуальный хост, перейдя к указанному домену. В нашем случае это домен «example.com»:
Отображаемая информация подтверждает, что веб-сервер Apache готов к работе в указанном домене.
Заключение
Чтобы установить веб-сервер Apache на Ubuntu 22.04, выполните команду «$sudo apt install apache2» и настройте брандмауэр «$sudo ufw разрешить «Apache Full»». Затем создайте каталог в файлах конфигурации по умолчанию веб-сервера Apache, измените его владельца и настроить виртуальный хост-сервер. После выполнения указанных операций перезапустите службу apache2 , и все готово. В этой статье обсуждался метод установки и настройки веб-сервера Apacher на Ubuntu 22.04.
Все права защищены. © Linux-Console.net • 2019-2024
Установка веб-сервера Apache в Ubuntu 22.04
HTTP-сервер Apache – наиболее распространенный в сети веб-сервер. Он предоставляет множество полезных функций, включая динамическую загрузку модулей, надежную поддержку мультимедиа и широкую интеграцию с другим популярным программным обеспечением.
В этом туториале вы узнаете, как установить веб-сервер Apache на Ubuntu 22.04.
Требования
Прежде чем приступить к работе, на вашем сервере должен быть пользователь без root с доступом к sudo. Также нужно включить базовый брандмауэр для блокирования ненужных портов. Как настроить учетную запись обычного пользователя и установить брандмауэр для вашего сервера, вы можете узнать в нашей статье.
Когда всё настроено, войдите в систему как пользователь без root.
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: этот профиль открывает только порт 443 (зашифрованный трафик TLS/SSL).
Рекомендуем включить самый строгий профиль, он всё равно будет разрешать настроенный трафик. Но в этом мануале мы еще не настроили SSL, поэтому нужно разрешить трафик только через порт 80:
sudo ufw allow ‘Apache’
Для проверки изменений введите:
sudo ufw status
В выводе будет список разрешенного HTTP-трафика:
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)
Как показывает результат, профиль был активирован и доступ к веб-серверу Apache разрешен.
3: Тестирование веб-сервера
Ubuntu после установки запустит Apache автоматически. То есть, веб-сервер уже должен работать.
С помощью системы инициализации systemd мы можем убедиться, что он запустился. Запросите его состояние :
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 └─29438 /usr/sbin/apache2 -k start
Согласно этому выводу сервис успешно запустился. Но лучше ещё запросить страницу Apache, чтобы убедиться, что веб-сервер работает правильно.
Чтобы открыть стандартную посадочную страницу Apache, укажите свой домен. Если у вас нет домена, введите внешний IP-адрес своего сервера. Если вы не знаете свой IP-адрес, вы можете узнать его с помощью команды:
Вы получите список адресов, разделенный пробелами. Проверьте каждый полученный адрес в браузере, чтобы найти адрес вашего сервера.
Другой вариант — с помощью ресурса Icanhazip, который должен предоставить вам внешний IP-адрес, прочитанный из другого места в Интернете:
curl -4 icanhazip.com
Узнав свой внешний IP-адрес, введите в строку браузера:
Вы увидите стандартную страницу Apache для Ubuntu:
Эта страница дает понять, что веб-сервер 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
Теперь Apache будет снова запускаться автоматически.
5: Настройка виртуальных хостов (рекомендуется)
На веб-сервере Apache вы можете использовать виртуальные хосты (в Nginx это блоки server) для изоляции настроек и размещения нескольких доменов на одном сервере. Здесь используется условный домен example.com, который нужно заменить доменом вашего сайта.
В Ubuntu 22.04 веб-сервер Apache по умолчанию предоставляет один включенный виртуальный хост, который обслуживает каталог /var/www/html. Этого хватит для работы одного сайта, но если вы хотите разместить несколько сайтов, вам нужно создать новые виртуальные хосты. Создайте структуру каталогов в /var/www для сайта example.com, а /var/www/html оставьте как каталог по умолчанию, который будет обслуживаться, если запрос клиента не соответствует другим сайтам.
Создайте каталог для your_domain:
sudo mkdir /var/www/your_domain
Затем укажите права на каталог с помощью переменной $USER:
sudo chown -R $USER:$USER /var/www/your_domain
Права должны быть предоставлены, если вы не меняли значение umask , которое устанавливает права файлов по умолчанию. Чтобы убедиться, что права предоставлены и пользователь может работать с файлами, нужно ввести команду:
sudo chmod -R 755 /var/www/your_domain
Затем создайте образец страницы index.html с помощью nano или другого текстового редактора:
sudo nano /var/www/your_domain/index.html
Добавьте в файл следующий код HTML:
Welcome to Your_domain! Success! The your_domain virtual host is working!
Сохраните и закройте файл.
Нужно создать файл виртуального хоста с правильными директивами, чтобы Apache мог обслуживать этот контент. Чтобы напрямую не изменять файл конфигурации по умолчанию, расположенный в /etc/apache2/sites-available/000-default.conf, мы создадим новый в /etc/apache2/sites-available/your_domain.conf:
sudo nano /etc/apache2/sites-available/your_domain.conf
Вставьте в файл следующий блок настроек. Он похож на конфигурации по умолчанию, но содержит правильный домен и каталог:
ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog $/error.log CustomLog $/access.log combined
Обратите внимание, мы обновили DocumentRoot на наш новый каталог, а ServerAdmin на адрес электронной почты, к которому может получить доступ администратор сайта your_domain. Также мы добавили две директивы: ServerName, которая устанавливает базовый домен, который должен соответствовать этому определению виртуального хоста, и ServerAlias – определяет дополнительные имена, которые должны соответствовать базовому имени.
После того, как закончите, сохраните и закройте файл.
Включим файл с помощью a2ensite:
sudo a2ensite your_domain.conf
Отключите сайт по умолчанию, определенный в 000-default.conf:
sudo a2dissite 000-default.conf
Далее проверим ошибки настроек:
sudo apache2ctl configtest
Вывод должен быть следующим:
Перезапустите Apache, чтобы изменения вступили в силу:
sudo systemctl restart apache2
Теперь Apache должен обслуживать ваше доменное имя. Для проверки перейдите по адресу http://your_domain, вы должны увидеть что-то вроде этого:
6: Важные файлы и каталоги Apache
Теперь, когда вы знаете, как управлять Apache, разберем несколько важных каталогов и файлов.
- /var/www/html: Фактический веб-контент, который по умолчанию состоит только из стандартной страницы Apache (ранее вы её уже видели), обслуживается из каталога /var/www/html. Это можно изменить, внеся корректировки в файлы конфигурации Apache.
- /etc/apache2: каталог конфигурации Apache. Все файлы настроек Apache находятся здесь.
- /etc/apache2/apache2.conf: основной файл настройки Apache. Его можно корректировать для внесения изменений в глобальную конфигурацию Apache. Этот файл отвечает за загрузку многих других файлов в каталоге конфигурации.
- /etc/apache2/ports.conf: В этом файле указаны порты, которые прослушивает Apache. По умолчанию Apache прослушивает порт 80 и дополнительно порт 443, если включен SSL.
- /etc/apache2/sites-available/: каталог, в котором могут храниться виртуальные хосты для каждого сайта. Apache не будет использовать файлы настроек из этого каталога, если они не связаны с каталогом sites-enabled. Обычно вся конфигурация блока выполняется в этом каталоге, а затем включается путем ссылки на другой каталог с помощью команды a2ensite.
- /etc/apache2/sites-enabled/: каталог, в котором хранятся включенные виртуальные хосты для каждого сайта. Обычно они создаются по ссылке на файлы настроек из каталога sites-available с помощью команды a2ensite. Apache считывает конфигурационные файлы и ссылки, находящиеся в этом каталоге, при запуске или перезагрузке для компиляции полной настройки.
- /etc/apache2/conf-available/, /etc/apache2/conf-enabled/: Эти каталоги имеют те же отношения, что и каталоги sites-available и sites-enabled, но используются для хранения фрагментов настроек, которые не принадлежат виртуальному хосту. Файлы в каталоге conf-available можно включить с помощью команды a2enconf, а отключить – a2disconf.
- /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: эти каталоги содержат доступные и включенные модули соответственно. Файлы, заканчивающиеся на .load, содержат фрагменты для загрузки определенных модулей, а которые заканчиваются на .conf, содержат настройки этих модулей. Модули можно включать и отключать с помощью команд a2enmod и a2dismod.
- /var/log/apache2/access.log: каждый запрос к вашему веб-серверу записывается в этот лог по умолчанию, если Apache не настроен иначе.
- /var/log/apache2/error.log: по умолчанию все ошибки записываются в этот файл. Директива LogLevel в конфигурации Apache определяет, насколько подробную информацию будут содержать журналы ошибок.
Заключение
В этом мануале вы научились устанавливать веб-сервер Apache и управлять его процессами. Теперь у вас есть много вариантов для дальнейшей работы: вы можете выбрать тип контента, который хотите обслуживать, и внедрить дополнительные технологии для создания более сложного сайта.
Если вы хотите создать более полный стек приложений, вы можете прочитать эту статью о том, как настроить стек LAMP в Ubuntu.