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

Apache 2
PHP 7
MySQL Sever 8

Disclaimer: використовуйте цю інструкцію лише для налаштування середовищ для розробки або тестування. Не застосовуйте її для налаштування production серверів.

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

Увійдіть в режим суперкористувача (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; 

4. Встановіть php7.4 та усі необхідні бібліотеки PHP для роботи з Apache 2 та Magento 2.

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

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

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

sudo a2enmod php7.4
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/7.4apache2/php.ini для редагування:

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

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

memory_limit = 128M

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

memory_limit = 1024M

А також параметру

max_execution_time = 

встановіть значення, мін. 3600:

max_execution_time = 3600

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

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, наприклад, для створення нових БД (баз даних) рекомендуєм встановити phpMyAdmin