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

Apache 2
PHP 7
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. Встановіть 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, rewrite та перезавантажте веб-сервер.

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

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

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