Бажаєте налаштувати web-server і шукаєте порад? Тоді ця стаття для вас. У ній розміщенні інструкції по налаштуванню веб-сервера (LAMP = Linux + Apache + MySql + PHP) на OS Ubuntu 20.04, у зв'язці:

Apache 2
PHP 8
MySQL Sever 8

Для початку зайдіть у CLI (command-line user interface), українською мовою - термінал (командна стрічка). Відкрити його можна за допомогою комбінацій клавіш Ctrl+Alt+T . Якщо ви не бажаєте встановити локальний веб-сервер, тоді спершу вам потрібно підєднатись до вашого сервера по SSH.

Після того як ви увійшли у правильне середовище в консолі (віддалений сервер чи локальний комп'ютер), перейдіть в режим суперкористувача (root користувача, sudo користувача). Виконайте команду:

sudo su

і введіть пароль від свого облікового запису, якщо потрібно. Тепер ви готові встановлювати веб-сервер. Для цього: 

1. Оновіть дані про доступні пакунки. Виконайте команду:

sudo apt update

* У прикладах, команди, які повинні виконуватись суперкористувачем розпочинаються зі слова sudo. Перебуваючи в режимі суперкористувача не обов'язково використовувати sudo.

2. Встановіть веб-сервер Apache 2.

sudo apt install apache2

3. Встановіть сервер баз даних MySql. 

sudo apt install mysql-server

Після встановлення виконайте команду

mysql -uroot

Та уведіть наступні команди, одну за одною, щоб створити нового користувача

CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY '<New-Password-Here>';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit

4. Встановіть php8.2 та усі необхідні бібліотеки PHP для роботи з Apache 2 та сучасними платформами, такими як Magento 2.

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

sudo apt install php8.2 libapache2-mod-php8.2 php8.2-curl php8.2-intl php8.2-zip php8.2-soap php8.2-xml php8.2-mysqli php8.2-gd php8.2-mbstring php8.2-bcmath php8.2-common php8.2-xml php8.2-mysqli

5. Увімкніть мод apache для роботи з php8, rewrite та перезавантажте веб-сервер.

sudo a2enmod php8.2
sudo a2enmod rewrite
sudo service apache2 restart

Перейдіть за посиланням і перевірте чи працює ваш локальний веб-сервер: http://127.0.0.1/ (альтернативний варіант http://localhost/). Якщо все правильно, вам відкриється відповідна сторінка: 

Перевірки роботи mysql сервера

6. Змініть користувача від імені якого працюватиме веб-сервер.

Для цього необхідно відредагувати файл /etc/apache2/envvars.

sudo gedit /etc/apache2/envvars 

знайдіть у ньому стрічки:

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

замініть їх на:

export APACHE_RUN_USER=your_user
export APACHE_RUN_GROUP=your_group

де your_user — це назва вашого користувача в операційній системі (користувач яким ви хочете редагувати файли), a  your_group — група, до якої входить ваш користувач. Дуже часто користувач і група мають однакові назви.

Збережіть файл і перезавантажте веб-сервер.

sudo service apache2 restart

7. Змініть власника для веб-директорії.

Веб-директорія — це папка, де буде знаходитись ваш веб-додаток, наприклад Magento 2. Мета — надання вашому користувачу повного контролю до цієї папки.

Виконайте наступну команду:

chown -R your_user:your_group /var/www/html

8. Збільшіть ліміт пам'яті (RAM), яку дозволено виділяти для PHP.

По замовчуванню це значення рівне 128 Mб, що є недостатнім для роботи Magento 2.  

Відкрийте файл /etc/php/8.2/apache2/php.ini для редагування:

sudo gedit /etc/php/8.2/apache2/php.ini

знайдіть у ньому стрічку:

memory_limit = 128M

замініть її на:

memory_limit = 1024M

Збережіть зміни та знову перезавантажте веб-сервер.

sudo service apache2 restart

9. Змініть налаштування віртуального хоста.

Відредагуйте файл 

/etc/apache2/sites-available/000-default.conf

та додайте в середину ноду VirtualHost такий код:

<Directory /var/www/html>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Require all granted
</Directory>

Збережіть зміни, та  перезавантажте веб-сервер.

sudo service apache2 restart

10. Встановіть MySQL

Для контролю над  базами даних MySQL, наприклад, для створення нових БД (баз даних) рекомендуєм встановити phpMyAdmin