Как установить стек LAMP на сервер Ubuntu 20.04

В этом руководстве мы покажем вам, как установить стек LAMP в Ubuntu 20.04 LTS. Программный стек — это набор программных инструментов, объединенных вместе. LAMP означает Linux, Apache, MariaDB/MySQL и PHP, все они имеют открытый исходный код и бесплатны для использования. Это наиболее распространенный программный стек, который поддерживает динамические веб-сайты и веб-приложения. Linux — это операционная система; Apache — это веб-сервер; MariaDB/MySQL — это сервер базы данных, а PHP — это серверный язык сценариев, отвечающий за создание динамических веб-страниц.

 Обновление пакетов программного обеспечения

Прежде чем мы установим стек LAMP, рекомендуется обновить репозиторий и пакеты программного обеспечения. Выполните следующую команду:

apt update && apt upgrade
Как установить стек LAMP на сервер Ubuntu 20.04

У нас обновлении не было и мы продолжаем сразу дальше.

Установка веб-сервера Apache

Введите следующую команду, чтобы установить веб-сервер Apache. Пакет  apache2-utils установит некоторые полезные утилиты, такие как инструмент для тестирования HTTP-сервера Apache (ab).

apt install -y apache2 apache2-utils
Как установить стек LAMP на сервер Ubuntu 20.04

После установки Apache должен автоматически запуститься. Проверьте его статус с помощью systemctl.

systemctl status apache2
Как установить стек LAMP на сервер Ubuntu 20.04

Если она не запущена, используйте systemctl для его запуска.

systemctl start apache2

Также рекомендуется включить автоматический запуск Apache во время загрузки системы командой ниже:

systemctl enable apache2

Проверьте версию Apache:

apache2 -v
Как установить стек LAMP на сервер Ubuntu 20.04

Теперь введите IP-адрес вашего сервера в адресной строке браузера. Вы должны увидеть надпись «It works!» Веб-страница, что означает, что веб-сервер Apache работает правильно. 

Как установить стек LAMP на сервер Ubuntu 20.04

Теперь нам нужно установить  www-data (пользователя Apache) в качестве владельца корня папку (иначе известного как веб-корень). По умолчанию он принадлежит пользователю root.

chown www-data:www-data /var/www/html/ -R

По умолчанию Apache использует системное имя хоста в качестве своего глобального файла ServerName. Если системное имя хоста не может быть разрешено в DNS, вы вероятно, увидите следующую ошибку после запуска команды apache2ctl -t.

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message

Чтобы решить эту проблему, мы можем установить глобальный файл ServerName в Apache. Используйте текстовый редактор «nano», чтобы создать новый файл конфигурации.

nano /etc/apache2/conf-available/servername.conf

Добавьте следующую строку в этот файл:

ServerName localhost

Сохраните и закройте файл. Нажмите Ctrl+X, затем нажмите Enter для подтверждения. Затем включите конфиг файл командой:

a2enconf servername.conf

Перезагрузите Apache, чтобы изменения вступили в силу:

Как установить стек LAMP на сервер Ubuntu 20.04

Теперь, если вы снова выполните команду apache2ctl -t , вы не увидите приведенное выше сообщение об ошибке.

Установление сервера базы данных MariaDB

MariaDB является заменой MySQL. Он разработан бывшими членами команды MySQL, которые обеспокоены тем, что Oracle может превратить MySQL в продукт с закрытым исходным кодом. Введите следующую команду, чтобы установить MariaDB:

apt install mariadb-server mariadb-client

После установки сервер MariaDB должен автоматически запуститься. Используйте systemctl, чтобы проверить его статус:

systemctl status mariadb
Как установить стек LAMP на сервер Ubuntu 20.04

Если он не запущен, запустите его с помощью этой команды:

systemctl start mariadb

Чтобы разрешить автоматический запуск MariaDB во время загрузки системы, выполните команду:

systemctl enable mariadb

Теперь запустите сценарий безопасности (настройки) после установки MariaDB, командой:

mysql_secure_installation

Когда он попросит вас ввести пароль root для MariaDB, нажмите клавишу Enter, так как пароль root еще не установлен. Затем введите y , чтобы установить пароль root для сервера MariaDB.

Затем можете нажать Enter, чтобы ответить на все оставшиеся вопросы, что приведет к удалению анонимного пользователя, отключению удаленного входа в систему root и удалению тестовой базы данных. Этот шаг является основным требованием для обеспечения безопасности базы данных MariaDB.

Как установить стек LAMP на сервер Ubuntu 20.04

По умолчанию пакет MariaDB в Ubuntu использует unix_socketдля аутентификации пользователя при входе в систему, что в основном означает, что вы можете использовать имя пользователя и пароль ОС для входа в консоль MariaDB. Таким образом, вы можете запустить следующую команду для входа в систему, не предоставляя root-пароль MariaDB.

mariadb -u root

Для выхода из консоли MariaDB выполните команду:

exit;

Проверьте информацию о версии сервера MariaDB:

mariadb --version
Как установить стек LAMP на сервер Ubuntu 20.04

Как видите, мы установили MariaDB, версию 10.3.38.

Установка PHP

PHP 7.4 является последней стабильной версией PHP для Ubuntu 20.04 и имеет незначительное преимущество в производительности по сравнению с PHP 7.3. Введите следующую команду, чтобы установить PHP 7.4 и некоторые распространенные модули PHP:

apt install php7.4 libapache2-mod-php7.4 php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline

Включите модуль Apache PHP 7.4, затем перезапустите веб-сервер Apache.

a2enmod php7.4
systemctl restart apache2
Как установить стек LAMP на сервер Ubuntu 20.04

Проверьте информацию о версии PHP:

Как установить стек LAMP на сервер Ubuntu 20.04

Видим что мы установили правильно, версию PHP 7.4.

Чтобы протестировать сценарии PHP с сервером Apache, нам нужно создать файл  info.php в корневой папке веб сервера откуда на него смотрят посетители.

nano /var/www/html/info.php
Вставьте следующий код PHP в файл:
<?php phpinfo(); ?>

Теперь заходим на инфо страницу помощью ссылки:

http://IP-АДРЕС/info.php
Как установить стек LAMP на сервер Ubuntu 20.04

Вы должны увидеть информацию PHP вашего сервера. Это означает, что PHP-скрипты могут правильно работать с веб-сервером Apache.

Как запустить PHP-FPM с Apache

уществует два основных способа запуска PHP-кода на веб-сервере Apache:

  • PHP-модуль Apache
  • PHP-FPM.

В приведенных выше шагах модуль Apache PHP 7.4 используется для обработки PHP-кода, что обычно нормально. Но в некоторых случаях вам нужно вместо этого запускать PHP-код с помощью PHP-FPM.

Отключите модуль Apache PHP 7.4 командой ниже:

a2dismod php7.4

Установите PHP-FPM с помощью командой:

apt install php7.4-fpm

Включите  proxy_fcgiи и setenvif модуль командой:

a2enmod proxy_fcgi setenvif

Включите /etc/apache2/conf-available/php7.4-fpm.conf файл конфигурации:

a2enconf php7.4-fpm

Перезапустите Apache, чтобы изменения вступили в силу, используйте команду ниже:

systemctl restart apache2

Теперь, если вы обновите  info.php страницу в своем браузере, вы обнаружите, что API-интерфейс сервера изменен с Apache 2.0 Handler на FPM/FastCGI, что означает, что веб-сервер Apache будет передавать запросы PHP в PHP-FPM.

Как установить стек LAMP на сервер Ubuntu 20.04

Важно!!! В целях безопасности вашего сервера вам следует удалить info.php файл сейчас, чтобы предотвратить возможную атаку на слабые места вашего сервера с PHP.

rm /var/www/html/info.php

Заключение

Мы надеемся что для вас было очень полезно научить, как можно установить LAMP на свой сервер с ОС Ubuntu 20.04.