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. Для цього виконайте наступні команди:
- Встановіть MySQL:
sudo apt install mysql-server
- Запустіть скрипт безпеки MySQL, який дозволить вам налаштувати пароль для користувача root та видалити деякі небезпечні параметри:
sudo mysql_secure_installation
- Після цього ви можете перевірити статус MySQL за допомогою команди:
sudo systemctl status mysql
Крок 3: Встановлення та налаштування PHP
- Встановіть PHP та деякі додаткові модулі, які знадобляться для роботи з MySQL та Apache:
sudo apt install php libapache2-mod-php php-mysql
Команда встановлює PHP, модуль для Apache для роботи з PHP та модуль для роботи з базами даних MySQL.
- Після встановлення PHP вам може знадобитися внести деякі зміни у конфігураційні файли. Ви можете відкрити файл конфігурації PHP для редагування, використовуючи команду:
sudo nano /etc/php/7.4/apache2/php.ini
Це відкриє файл конфігурації PHP для Apache. У цьому файлі ви можете змінювати параметри PHP, такі як максимальний розмір завантажуваних файлів, максимальний час виконання скриптів PHP та багато іншого.
Перезапустіть Apache, щоб застосувати зміни:
sudo systemctl restart apache2
- Для перевірки роботи 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.