Как установить apache на ubuntu
Перейти к содержимому

Как установить apache на ubuntu

  • автор:

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 18.04/20.04

Каждый владелец 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 "

faq-reg.ru

" > /var/www/faq-reg.ru/index.html

Для support-faq.ru:

echo "

support-faq.ru

" > /var/www/support-faq.ru/index.html

Не забудьте заменить доменные имена на ваши.

Готово, теперь после настройки виртуальных хостов мы сможем проверить корректность их работы.

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

Файл конфигурации Ubuntu Apache virtual hosts отвечает за обработку запросов к разным доменам. У Apache существует дефолтный файл конфигурации, который можно использовать в качестве шаблона. Его название может отличаться в зависимости от настроек сервера. В качестве примера мы обозначим название конфига как 000-default.conf. Для каждого виртуального хоста необходимо будет скопировать его, задать произвольное имя (рекомендуем использовать имя домена) и произвести определённые настройки. Обязательное условие — соблюдение расширения файла: .conf

Создание конфига для faq-reg.ru

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

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/faq-reg.ru.conf

Где 000-default.conf — название конфигурационного файла по умолчанию.
Откройте созданный файл командой:

sudo nano /etc/apache2/sites-available/faq-reg.ru.conf
  • ServerAdmin — укажите электронный адрес администратора;
  • ServerName — укажите домен, для которого вы создаёте конфигурационный файл;
  • ServerAlias — раскомментируйте эту строку: удалите решётку в начале строки. В ней укажите псевдоним домена. Часто используется вид www.domain.ru;
  • DocumentRoot — укажите каталог домена, который вы создали на этапе подготовки;
  • ErrorLog и CustomLog — упомяните домен в названии файла. Так вы сможете быстрее идентифицировать файлы логов;
  • Directory — ещё раз укажите каталог домена, который вы создали на этапе подготовки.

Затем сохраните изменения в файле и закройте его:

настройка виртуальных хостов apache ubuntu 1

Настройка виртуального хоста для первого домена завершена. Скопируйте этот файл для второго домена с помощью команды:

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 на имена ваших доменов.
Откройте файл для редактирования:

sudo nano /etc/apache2/sites-available/support-faq.ru.conf
  • ServerAdmin — укажите электронный адрес администратора;
  • ServerName — укажите домен, для которого вы создаёте конфигурационный файл;
  • ServerAlias — раскомментируйте эту строку: удалите решётку в начале строки. В ней укажите псевдоним домена. Часто используется вид www.domain.ru;
  • DocumentRoot — укажите каталог домена, который вы создали на этапе подготовки;
  • ErrorLog и CustomLog — упомяните домен в названии файла. Так вы сможете быстрее идентифицировать файлы логов;
  • Directory — ещё раз укажите каталог домена, который вы создали на этапе подготовки.

Затем сохраните изменения и закройте файл:

настройка виртуальных хостов apache ubuntu 2

Деактивируйте конфиг по умолчанию командой:

sudo a2dissite 000-default.conf

И активируйте созданные конфиги:

sudo a2ensite faq-reg.ru.conf

Установка Apache в Linux

img

Apache — популярный бесплатный opensource веб-сервер. Он является частью стека LAMP (Linux, Apache, MySQL, PHP), который обеспечивает большую часть Интернета. Мы уже рассказывали про его установку на Windows и сравнивали его с nginx, а сегодня расскажем про то как установить Apache на Linux.

Установка Apache в Linux

А про то как установить nginx на Linux, можно прочитать в нашей статье.

Установка веб-сервера Apache на Linux

Установка Apache на CentOS и RHEL

Откройте окно терминала и обновите списки пакетов репозитория, введя следующее:

sudo yum update

Теперь вы можете установить Apache с помощью команды:

sudo yum –y install httpd

httpd — это имя службы Apache в CentOS. Опция –y автоматически отвечает да на запрос подтверждения.

sudo yum –y install httpd

Готово, Apache установлен.

Установка Apache на Ubuntu и Debian

В Ubuntu и Debian пакет и служба Apache называются apache2 . Сначала также обновите инструмент управления пакетами apt .

sudo apt update

Теперь устанавливаем Apache:

sudo apt install apache2

Запуск и управление веб-сервером Apache

Apache — это сервис, работающий в фоновом режиме. В Debian и Ubuntu он автоматически запустится после установки, а в CentOS его нужно запустить вручную.

Не забывайте что в командах в CentOS нам нужно использовать httpd , а в Debian и Ubuntu apache2

Запустите службу Apache, введя следующее:

sudo systemctl start httpd

Система не возвращает вывод, если команда выполняется правильно.

Чтобы настроить автозагрузку Apache при запуске используйте команду:

sudo systemctl enable httpd

Чтобы проверить состояние службы Apache:

sudo systemctl status httpd

sudo systemctl status httpd

Чтобы перезагрузить Apache (перезагрузит файлы конфигурации, чтобы применить изменения):

sudo systemctl reload httpd

Чтобы перезапустить весь сервис Apache:

sudo systemctl restart httpd

Чтобы остановить Apache:

sudo systemctl stop httpd

Чтобы отключить Apache при запуске системы:

sudo systemctl disable httpd

Проверить веб-сервер Apache

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

Проверьте тестовую страницу Apache

В окне терминала найдите IP-адрес вашей системы:

hostname -I | awk ''

Если вы знакомы с командами ip addr show или ifconfig , вы можете использовать их вместо этого. Подробно про команду ip можно прочитать тут.

Откройте веб-браузер и введите IP-адрес, отображаемый в выводе. Система должна показать тестовую страницу HTTP-сервера Apache, как показано на скриншоте ниже:

Apache CentOS

Или так, если у вас Ubuntu:

Apache Ubuntu

Если ваша система не имеет графического интерфейса, используйте команду curl:

curl [your_system's_IP_address]:80

Примечание. В конце: 80 обозначает порт 80, стандартный порт для интернет-трафика. Обязательно напишите соответствующий IP-адрес вместо [your_system’s_IP_address].

Создать HTML-файл для тестирования

Если по какой-либо причине вам нужна или у вас уже есть пользовательская HTML-страница, которую вы хотите использовать в качестве тестовой страницы, выполните следующие действия:

В окне терминала создайте новый индекс файл HTML:

echo My Apache Web Server > /var/www/html/index.html

Отредактируйте файл по своему вкусу и сохраните его.

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

Настройка фаервола для Apache

Фаервол в вашей системе блокирует трафик через разные порты. Каждый порт имеет свой номер, и разные виды трафика используют разные порты. Для вашего веб-сервера вам нужно разрешить HTTP и HTTPS трафик через порты 80 и 443 .

В терминале введите следующее:

sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --reload

Еще раз проверьте, правильно ли настроен ваш фаервол:

sudo firewall-cmd --list-all | grep services

Вы должны увидеть http и https в списке разрешенных сервисов.

Если вы пользуйтесь UFW, то можно открыть порты HTTP ( 80 ) и HTTPS ( 443 ), включив профиль Apache Full :

sudo ufw allow 'Apache Full'

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

nft add rule inet filter input tcp dport ct state new,established counter accept

Файлы и каталоги Apache

Apache управляется путем применения директив в файлах конфигурации:

  • /etc/httpd/conf/httpd.conf — основной файл конфигурации Apache
  • /etc/httpd/ — Расположение всех файлов конфигурации
  • /etc/httpd/conf.d/ — Все конфигурационные файлы в этом каталоге включены в основной файл настроек
  • /etc/httpd/conf.modules.d/ — Расположение конфигурационных файлов модуля Apache

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

Логи Apache расположены тут:

  • /var/log/httpd/ — расположение файлов логов Apache
  • /var/log/httpd/access_log — показывает журнал систем, которые обращались к серверу
  • var/log/httpd/error_log — показывает список любых ошибок, с которыми сталкивается Apache

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

  • /home/username/my_website
  • /var/www/my_website
  • /var/www/html/my_website
  • /opt/my_website

Установка веб-сервера 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.

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

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