Apache – найпоширеніший веб-сервер у світі. Багато популярних сайтів, таких як Adobe, Spotify, Samsung тощо, використовують Apache як бекенд. Він пропонує безліч можливостей, як-от динамічне завантаження модулів, автоіндексація, сумісність з IPv6, надійна підтримка мультимедіа, широка підтримка інтеграцій і багато іншого.
Незважаючи на те, що його прямий конкурент, Nginx, вважається кращим для великого трафіку і масштабованості, архітектура Apache може впоратися зі стабільними проектами, що вимагають більшої сумісності.
Як встановити Apache на Ubuntu 24.04 та інші версії
Встановити Apache на Ubuntu можна двома способами: за допомогою менеджера пакетів, що є найпростішим і рекомендованим, або за допомогою вихідного файлу, який надає останню версію, але може бути незручним в управлінні.
Метод 1: Встановлення Apache на Ubuntu за допомогою менеджера пакетів
Відкрийте термінал, оновіть систему, а потім встановіть веб-сервер Apache2 на Ubuntu за допомогою наступної команди:
$ sudo apt update && sudo apt upgrade
$ sudo apt install apache2
Після завершення інсталяції ви можете одразу ж зайти на “localhost” у своєму веб-браузері та перевірити сторінку привітання Apache.
Метод 2: Встановлення Apache на Ubuntu з вихідного файлу
І знову я повинен попередити вас, що цей підхід дещо складний і не підходить для новачків. Отже, під час встановлення Apache2 на Ubuntu з вихідного файлу почніть з відвідування сторінки завантаження Apache і скачування стисненого файлу.
Після завершення завантаження відкрийте термінал, перейдіть до каталогу завантаження і виконайте наступну серію команд для компіляції та встановлення Apache з вихідного коду.
# The following are required dependencies to avoid APT error during installation.
$ sudo apt install build-essential libssl-dev libexpat-dev libpcre3-dev libapr1-dev libaprutil1-dev
# Uncompress the downloaded file.
$ tar -xf httpd-*.tar.bz2
# Move into the extracted directory.
$ cd httpd-*/
# Create a directory for Apache.
$ sudo mkdir /usr/local/apache2
# Configure the Apache to the created directory.
$ ./configure --prefix=/usr/local/apache2 --enable-shared=max
# Compile and install the Apache2 on Ubuntu from Source.
$ make && sudo make install
Після завершення встановлення ви можете використовувати команду apachectl з каталогу встановлення “/bin” для запуску, зупинки та перезапуску веб-сервера Apache.
$ /usr/local/apache2/bin/apachectl start
$ /usr/local/apache2/bin/apachectl stop
$ /usr/local/apache2/bin/apachectl restart
Якщо під час запуску Apache ви зіткнулися з такою помилкою:
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Додайте ServerName localhost у наступний файл, використовуючи обраний вами текстовий редактор.
$ sudo nano /usr/local/apache/conf/httpd.conf
Ось і все! Ви успішно встановили Apache на Ubuntu з вихідного файлу. Тепер майте на увазі, що методи, показані в цій статті, призначені для встановлення Apache за допомогою менеджера пакетів. Однак, якщо у вас є невеликий досвід роботи в Linux, ви зможете легко розібратися і налаштувати параметри.
Як налаштовувати, керувати і використовувати Apache в Ubuntu 24.04 та інших версіях
Давайте розглянемо, як налаштувати брандмауер Apache для підвищення безпеки, керувати службами Apache за допомогою команди systemctl і налаштовувати нові віртуальні хости для управління кількома доменами.
Налаштування брандмауера
Система Ubuntu постачається з попередньо встановленим UFW, який можна використовувати для роздільної здатності HTTP/HTTPS-трафіку, включно з SSH, якщо ви керуєте ним на віддаленому сервері, наприклад AWS.
# The following command will allow incoming HTTP/HTTPS traffic.
$ sudo ufw allow http
$ sudo ufw allow https
# The following command will allow incoming OpenSSH traffic on the default port 22.
$ sudo ufw allow OpenSSH
# The following command will activate the UFW firewall, enforcing the specified rules to manage server traffic.
$ sudo ufw enable
Нарешті, виконайте таку команду, щоб перерахувати профілі UFW і підтвердити успішне створення раніше створених профілів.
$ sudo ufw app list
Перевірте ваш веб-сервер
Під час встановлення автоматично створюється і запускається служба apache2 systemd. Ця служба може використовуватися для управління Apache в Ubuntu. Щоб переконатися, що вона запущена і переведена в увімкнений стан (це означає, що вона буде автоматично запускатися під час завантаження системи), виконайте наступну команду:
$ sudo systemctl is-enabled apache2
$ sudo systemctl status apache2
Ви помітите, що служба Apache2 у моїй системі вимкнена і неактивна. Щоб увімкнути і запустити службу, виконайте наступні дві команди:
$ sudo systemctl enable apache2
$ sudo systemctl status apache2
Ви можете повторно виконати дві попередні команди, щоб перевірити стан Apache.
Керування процесом Apache
Крім перевірки служби Apache2, ви можете виконати низку інших дій, наприклад запустити, зупинити, перезапустити і перезавантажити службу Apache2. Відмінності між цими опціями, включно з їхнім використанням у командному рядку, описано нижче.
# It will start the Apache2 service and occupy the default port 80.
$ sudo systemctl start apache2
# It will stop the Apache2 service and free up port 80 for others to use.
$ sudo systemctl stop apache2
# It will restart the Apache2 service with slight downtime, usually carried out when configuration changes are made.
$ sudo systemctl restart apache2
# It will reload the Apache2 service without any downtime, typically performed when minor configuration changes are made.
$ sudo systemctl reload apache2
Налаштування віртуальних хостів
Під час використання Apache ви можете налаштувати кілька віртуальних хостів (аналогічно до серверних блоків у Nginx) для інкапсуляції деталей конфігурації та розміщення кількох доменів на одному сервері.
У прикладі нижче ми налаштуємо віртуальний хост для “example.com” з каталогом веб-хоста під назвою “my_website”. Отже, давайте почнемо зі створення каталогу веб-хоста, створення індексного HTML-файлу, вставлення в нього вмісту та призначення прав власності користувачів і груп.
$ sudo mkdir -p /var/www/html/my_website
$ sudo nano /var/www/html/my_website/index.html
$ sudo chown -R $USER:$USER /var/www/html/my_website/
Щоб Apache міг обслуговувати вміст каталогу веб-хоста, необхідно створити файл віртуального хоста з відповідними директивами, тому ми створимо спеціальний файл віртуального хоста для нашого нового каталогу веб-хоста.
$ sudo nano /etc/apache2/sites-available/my_website.conf
Додайте наступний блок конфігурації, щоб призначити домен для створеної директорії веб-хоста, переконайтеся, що замінили домен (виділений червоним) на свій власний або використовуйте “localhost”.
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName example.com
DocumentRoot /var/www/html/my_website
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Збережіть і закрийте файл, увімкніть щойно створений файл конфігурації віртуального хоста за допомогою інструменту a2ensite і відключіть сайт за замовчуванням, зазначений у 000-default.conf:
$ sudo a2ensite my_website.conf
$ sudo a2dissite 000-default
Перевірте конфігурацію на наявність помилок:
$ sudo apache2ctl configtest
Якщо результат видає Ok, то просто перезапустіть Apache, щоб внести зміни.
$ sudo systemctl restart apache2
Ви можете використовувати домен (або “localhost”) для доступу до свого сайту.
Як видалити Apache з Ubuntu 24.04 та інших версій
Щоб видалити Apache2 з менеджера пакетів на Ubuntu, виконайте такі дії:
$ sudo apt remove --purge apache2
Якщо ви встановили його за допомогою вихідного файлу, видаліть вихідний каталог із системного шляху.
$ sudo rm -rf /usr/local/apache2