Это руководство поможет вам установить LAMP стек на Ubuntu 20.04 LTS. Под программным стеком понимается набор программ, работающих совместно. Аббревиатура LAMP обозначает Linux, Apache, MariaDB/MySQL и PHP — все эти компоненты являются бесплатными и с открытым исходным кодом. LAMP является одним из наиболее популярных стеков для работы с динамическими веб-сайтами и приложениями. Linux выступает в роли операционной системы, Apache — это веб-сервер, MariaDB/MySQL — системы управления базами данных, а PHP — серверный язык программирования, создающий динамические веб-страницы.
Содержание статьи
Требования
Чтобы следовать этому руководству, вам потребуется установленная Ubuntu 20.04 на вашем компьютере или удаленном сервере.
Если вы ищете виртуальный частный сервер (VPS), могу порекомендовать Kamatera VPS, предоставляющий следующие возможности:
- Бесплатный пробный доступ на 30 дней.
- Стартовая стоимость от $4 в месяц (1 ГБ оперативной памяти).
- VPS с высокой производительностью на базе технологии KVM.
- 9 дата-центров, расположенных по всему миру, включая такие страны, как США, Канада, Великобритания, Германия, Нидерланды, Гонконг и Израиль.
Используйте руководство по ссылке ниже для настройки Linux VPS на платформе Kamatera.
- Инструкция по созданию VPS-сервера на Linux через Kamatera.
Когда вы получите VPS с установленной Ubuntu 20.04, выполните приведенные ниже шаги.
Если вам требуется настроить LAMP стек с использованием доменного имени, я советую приобретать домены у NameCheap. У них низкие цены, а также они предлагают бесплатную защиту конфиденциальности whois на протяжении всего срока использования.
Обновление программного обеспечения
Перед тем как установить стек LAMP, желательно обновить репозитории и пакеты программного обеспечения. Используйте следующие команды в вашей системе Ubuntu 20.04.
sudo apt update sudo apt upgrade
Инсталляция веб-сервера Apache
Используйте следующую команду для установки веб-сервера Apache. Пакет apache2-utils добавит несколько полезных инструментов, включая утилиту для тестирования производительности Apache HTTP сервера (ab).
sudo apt install - y apache2 apache2-utils
После установки Apache он должен запуститься автоматически. Для проверки его состояния используйте команду systemctl.
systemctl status apache2
●apache2.service - Веб-сервер Apache HTTP Загружено: загружено (/lib/systemd/system/apache2.service; включено; заводская настройка: включено) Активно:активный (в работе) с Суб 2020-04-11 11:31:31 CST; 2 сек назад Документация: https://httpd. apache. org/docs/2.4/ Процесс: 53003 ExecStart=/usr/sbin/apachectl start (код=выполнен, статус=0/УСПЕХ) Основной PID: 53011 (apache2) Задачи: 55 (лимит: 19072) Память: 6.4М CGroup: /system. slice/apache2.service ├─53011 /usr/sbin/apache2 - k start ├─53012 /usr/sbin/apache2 - k start └─53013 /usr/sbin/apache2 - k start
Если команда, указанная выше, не завершится быстро, нажмите клавишу Q, чтобы вернуть управление терминалом.
Если он не активен, воспользуйтесь командой systemctl для его запуска.
sudo systemctl start apache2
Рекомендуется настроить автоматический запуск Apache при старте системы.
sudo systemctl enable apache2
Убедитесь в версии Apache:
apache2 - v
Версия сервера: Apache/2.4.41 (Ubuntu) Сборка сервера: 2020-03-05T18:51:00
Введите публичный IP-адрес вашего сервера с Ubuntu 20.04 в адресную строку браузера. Если все настроено правильно, должна отобразиться страница с сообщением «It works!», подтверждающая корректную работу веб-сервера Apache. Если вы настраиваете LAMP на локальной машине с Ubuntu 20.04, вместо этого используйте 127.0.0.1 или localhost.

Если подключение было отклонено или не удалось установить, возможно, причина в том, что брандмауэр блокирует входящие запросы на TCP-порт 80. Если вы используете брандмауэр iptables, выполните следующую команду для открытия TCP-порта 80.
sudo iptables - I INPUT - p tcp --dport 80 - j ACCEPT
Чтобы открыть TCP-порт 80 при использовании брандмауэра UFW, выполните следующую команду.
sudo ufw allow http
Теперь необходимо назначить пользователя www-data (Apache) владельцем основного каталога документов, который также называют веб-корнем. Изначально его владельцем является root.
sudo chown www-data:www-data /var/www/html/ - R
По умолчанию Apache применяет имя хоста системы в качестве основного ServerName. Если это имя не удаётся разрешить через DNS, то при выполнении команды sudo 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 для создания нового конфигурационного файла.
sudo nano /etc/apache2/conf-available/servername.conf
Добавьте следующую строку в данный файл.
ServerName localhost
Закройте и сохраните файл. В текстовом редакторе Nano для сохранения нажмите Ctrl+O, затем подтвердите, нажав Enter. Для выхода используйте сочетание Ctrl+X. После этого примените данный конфигурационный файл.
sudo a2enconf servername.conf
Перезапустите Apache, чтобы изменения применились.
sudo systemctl reload apache2
Теперь, при повторном выполнении команды sudo apache2ctl — t, указанное ранее сообщение об ошибке больше не появится.
Настройка сервера базы данных MariaDB
MariaDB служит альтернативой MySQL. Эта система была создана бывшими разработчиками MySQL, которые выражали опасения, что Oracle может превратить MySQL в закрытое программное обеспечение. Чтобы установить MariaDB на Ubuntu 20.04, выполните следующую команду.
sudo apt install mariadb-server mariadb-client
После установки сервера MariaDB он должен запуститься автоматически. Для проверки его состояния используйте команду systemctl.
systemctl status mariadb
●mariadb.service - сервер базы данных MariaDB версии 10.3.22 Загрузка: загружен (/lib/systemd/system/mariadb.service; включен; предустановленный режим: включен) Активность:активный (в работе) since Fri 2020-04-10 14:19:16 UTC; 18s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 9161 (mysqld) Status: "Taking your SQL requests now. " Tasks: 31 (limit: 9451) Memory: 64.7M CGroup: /system. slice/mariadb.service └─9161 /usr/sbin/mysqld
Если сервер не активен, используйте эту команду для его запуска:
sudo systemctl start mariadb
Для активации автоматического запуска MariaDB при старте системы выполните следующие шаги:
sudo systemctl enable mariadb
Теперь после установки выполните скрипт для обеспечения безопасности.
sudo mysql_secure_installation
Когда система запросит пароль root для MariaDB, просто нажмите Enter, поскольку пароль root пока не установлен. После этого введите y, чтобы задать пароль root для сервера MariaDB.

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

Пакет MariaDB на Ubuntu по умолчанию применяет unix_socket для аутентификации пользователей. Это означает, что для доступа к консоли MariaDB можно использовать имя пользователя и пароль операционной системы. Таким образом, вы можете воспользоваться следующей командой для входа без необходимости ввода пароля root для MariaDB.
sudo mariadb - u root
exit;
Убедитесь, что данные о версии сервера MariaDB актуальны.
mariadb --version
Мы установили MariaDB версии 10.3.22.
mariadb Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Инсталлируйте PHP версии 7.4.
На момент создания данного материала PHP7.4 является самой актуальной стабильной версией PHP и предлагает незначительное улучшение производительности по сравнению с PHP7.3. Для установки PHP7.4 и нескольких популярных модулей PHP выполните следующую команду.
sudo 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 для php7.4, после чего перезагрузите веб-сервер Apache.
sudo a2enmod php7.4 sudo systemctl restart apache2
Убедитесь, что у вас есть актуальные данные о версии PHP.
php --version
PHP 7.4.3 (cli) (built: Mar 26 2020 20:24:23) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
Чтобы протестировать PHP-скрипты на сервере Apache, необходимо создать файл info.php в корневом каталоге веб-документов.
sudo nano /var/www/html/info.php
Поместите указанный PHP-код в файл.
Чтобы сохранить документ в текстовом редакторе Nano, нажмите комбинацию клавиш Ctrl+O, а затем нажмите Enter для подтверждения. Для выхода из редактора используйте Ctrl+X. Теперь в адресной строке вашего браузера введите server-ip-address/info.php, заменив server-ip-address на ваш реальный IP-адрес. Если вы используете это руководство на своем локальном компьютере, введите 127.0.0.1/info.php или localhost/info.php.
На вашем сервере должна отображаться информация о PHP. Это свидетельствует о том, что PHP-скрипты могут успешно взаимодействовать с веб-сервером Apache.

Запуск PHP-FPM совместно с Apache: как это сделать.
Существует два главных метода выполнения PHP-кода с использованием веб-сервера Apache:
- Модуль PHP для Apache
- PHP-FPM.
В описанных выше этапах применяется модуль Apache PHP7.4 для интерпретации PHP-кода, что является стандартной практикой. Тем не менее, в определенных ситуациях может возникнуть необходимость запуска PHP-кода через PHP-fpm.Вот инструкция по его использованию.
Деактивируйте модуль Apache для PHP версии 7.4.
sudo a2dismod php7.4
sudo apt install php7.4-fpm
Активируйте модули proxy_fcgi и setenvif.
sudo a2enmod proxy_fcgi setenvif
Включите файл настройки /etc/apache2/conf-available/php7.4-fpm.conf.
sudo a2enconf php7.4-fpm
Перезапустите Apache, чтобы применить внесённые изменения.
sudo systemctl restart apache2
Теперь, при обновлении страницы info.php в браузере, вы увидите, что Server API изменился с Apache 2.0 Handler на FPM/FastCGI. Это указывает на то, что веб-сервер Apache теперь перенаправляет запросы PHP в PHP-FPM.

Поздравляем! Стек LAMP (Apache, MariaDB и PHP 7.4) был успешно установлен на Ubuntu 20.04. Для защиты вашего сервера рекомендуется удалить файл info.php, чтобы исключить возможность его просмотра посторонними.
sudo rm /var/www/html/info.php
Следующий этап
Надеюсь, данное руководство было полезным для установки стека LAMP на Ubuntu 20.04 LTS. Возможно, вам также захочется установить phpMyAdmin — бесплатный и открытый веб-инструмент для управления базами данных.
- Как выполнить установку phpMyAdmin с Apache (LAMP) на Ubuntu 20.04
Вы можете установить WordPress на основе LAMP-стека для создания собственного веб-сайта или блога.
- Для установки WordPress на Ubuntu 20.04 с использованием Apache, MariaDB и PHP7.4 (LAMP-стек) выполните следующие действия.
Если этот пост оказался для вас полезным, подписывайтесь на нашу бесплатную рассылку, чтобы получать еще больше рекомендаций и полезных советов.

