Налаштування LAMP стека с Nginx в Ubuntu 22.04

LAMP-стек — це один із найпоширеніших наборів програмного забезпечення для створення веб-сайтів та веб-додатків. Він складається з операційної системи Linux, веб-сервера Apache, СУБД MySQL та мови програмування PHP (або інших аналогів, таких як Perl чи Python). У цій статті ми розглянемо встановлення та конфігурацію LAMP-стеку на Ubuntu.

Головна відмінність LAMP-стеку від LEMP

Існує інший набір програмного забезпечення для створення веб-сайтів, який називається LEMP-стек (раніше ми вже розглядали встановлення LEMP-стеку на Ubuntu 22.04). Він також складається з операційної системи Linux, але веб-сервером є Nginx, а мовою програмування — PHP (або інші аналоги). Основна відмінність між LAMP та LEMP полягає у виборі веб-сервера. Apache, який використовується в LAMP-стеку, є більш старим та важким, але має ширші можливості та більше додаткових модулів. Nginx, що використовується в LEMP-стеку, більш сучасний та легкий, що забезпечує швидше виконання запитів.

Переваги використання Apache та Nginx як reverse proxy

У класичному LAMP-стеку використовується Apache як основний веб-сервер, проте ми розглянемо встановлення та конфігурацію Apache і Nginx, які можуть використовуватися разом, що забезпечує їх переваги та нейтралізує недоліки. Цей спосіб конфігурації називається “reverse proxy” (зворотний проксі). У цьому випадку Nginx виступає в якості проксі-сервера і обробляє всі вхідні запити. Потім він передає запити на Apache, який обробляє PHP-скрипти та повертає відповіді. Переваги використання такої конфігурації:

  • Apache може обробляти всі можливі типи запитів, включаючи ті, що не підтримуються Nginx (наприклад, .htaccess)
  • Nginx може забезпечити статичний кеш та стиснення відповідей, що прискорює роботу сервера
  • При використанні такої конфігурації Apache працює лише з локального адреси, що підвищує безпеку сервера.

Налаштування LAMP-стеку

Приступимо до встановлення стека. Для цього нам знадобиться сервер з попередньо встановленою операційною системою Ubuntu 22.04. Рекомендується, щоб даний сервер був “чистим” для уникнення проблем з встановленням та майбутньою роботою.

Налаштування Apache та Nginx як reverse proxy

Часто веб-сайти та додатки працюють на Apache, але при цьому використовують Nginx як проксі-сервер для підвищення продуктивності та захисту від DDoS-атак. Це пов’язано з тим, що Nginx швидше обробляє статичний контент і має більш ефективний механізм обробки запитів.

Для налаштування Apache та Nginx як проксі-сервера виконайте наступні кроки:

Встановіть Apache та Nginx за допомогою менеджера пакетів apt:

sudo apt update
sudo apt install apache2 nginx

Налаштуйте Apache так, щоб він приймав запити лише з локального хоста. Для цього відредагуйте конфігураційний файл Apache:

sudo nano /etc/apache2/apache2.conf

Додайте наступні рядки в кінець файлу:

<Directory /var/www/html>
    Require local
</Directory>

Збережіть зміни та закрийте файл.

Створіть веб-сторінку для перевірки роботи Apache. Для цього створіть файл index.html у каталозі /var/www/html:

sudo nano /var/www/html/index.html

Додайте наступний HTML-код:

<html>
    <head>
        <title>Apache is working!</title>
    </head>
    <body>
        <h1>Apache is working!</h1>
        <p>If you see this page, Apache is successfully installed and working. </p>
    </body>
</html>

Збережіть зміни та закрийте файл.

Налаштуйте Nginx як проксі-сервер. Для цього створіть новий конфігураційний файл для віртуального хоста в каталозі /etc/nginx/sites-available:

sudo nano /etc/nginx/sites-available/example.com

Додайте наступний конфігураційний блок:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

У цьому прикладі Nginx буде слухати порт 80 і перенаправляти запити на Apache, який працює на локальному хості та слухає порт 8080.

Збережіть зміни та закрийте файл. Потім створіть символічне посилання на цей файл у каталозі /etc/nginx/sites-enabled:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Перевірте конфігурацію Nginx на наявність помилок:

sudo nginx -t

Перезапустіть Nginx, щоб застосувати зміни:

sudo systemctl restart nginx

Тепер Nginx буде проксирувати запити до Apache на локальному хості.

Налаштування MySQL

MySQL можна встановити також за допомогою менеджера пакетів apt. Для цього виконайте наступні команди:

  1. Встановіть MySQL:
    sudo apt install mysql-server
    
  2. Запустіть скрипт безпеки MySQL, який дозволить вам налаштувати пароль для користувача root та видалити деякі небезпечні параметри:
    sudo mysql_secure_installation
    
  3. Після цього ви можете перевірити статус MySQL за допомогою команди:
    sudo systemctl status mysql

Крок 3: Встановлення та налаштування PHP

  1. Встановіть PHP та деякі додаткові модулі, які знадобляться для роботи з MySQL та Apache:
sudo apt install php libapache2-mod-php php-mysql

Команда встановлює PHP, модуль для Apache для роботи з PHP та модуль для роботи з базами даних MySQL.

  1. Після встановлення PHP вам може знадобитися внести деякі зміни у конфігураційні файли. Ви можете відкрити файл конфігурації PHP для редагування, використовуючи команду:
sudo nano /etc/php/7.4/apache2/php.ini

Це відкриє файл конфігурації PHP для Apache. У цьому файлі ви можете змінювати параметри PHP, такі як максимальний розмір завантажуваних файлів, максимальний час виконання скриптів PHP та багато іншого.

Перезапустіть Apache, щоб застосувати зміни:

sudo systemctl restart apache2
  1. Для перевірки роботи PHP створіть файл index.php у директорії /var/www/html:
sudo nano /var/www/html/index.php

Вставте наступний код у файл:

<?php phpinfo(); ?>

Збережіть файл та закрийте його. Тепер ви можете відкрити свій веб-браузер та ввести адресу http://ваш_сервер/index.php. Ви повинні побачити інформацію про версію PHP та його налаштування.

Встановлюйте додаткові модулі PHP по мірі необхідності:

sudo apt install php-ім'я_модуля

Деякі з найбільш часто використовуваних модулів включають php-curl, php-gd, php-mbstring, php-xml та php-zip.

Ці модулі розширюють функціональність PHP та дозволяють використовувати додаткові можливості при розробці веб-додатків.

Це завершує встановлення та налаштування PHP у LAMP-стеку на Ubuntu.

Висновок

У цій статті ми розглянули, як встановити та налаштувати LAMP-стек на Ubuntu. Ми встановили Apache, MySQL та PHP, які забезпечують повний набір інструментів для створення динамічних веб-сайтів та веб-додатків. Пам’ятайте, що LAMP-стек можна налаштовувати по-різному, залежно від конкретних потреб вашого проекту. Сподіваємося, ця стаття допоможе вам розпочати роботу з LAMP-стеком на Ubuntu.

Оцініть статтю