Как выполнить установку LAMP-стека на сервере или компьютере с Ubuntu 20.04

Это руководство поможет вам установить 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, чтобы вернуть управление терминалом.

Читайте также:  3 способа изменить ограничение на количество открытых файлов в ОС Linux

Если он не активен, воспользуйтесь командой 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.

ubuntu-20.04-lamp-stack

Если подключение было отклонено или не удалось установить, возможно, причина в том, что брандмауэр блокирует входящие запросы на 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, выполните следующую команду.

Читайте также:  Проверка на bad-блоки в Linux

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.

ubuntu-20.04-install-LAMP-stack-MariaDB

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

Install-LAMP-stack-on-Ubuntu-20.04-MariaDB-Database-server

Пакет 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.

Читайте также:  Как использовать команду echo в Linux для работы с текстом и автоматизацией процессов

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.

Ubuntu 20.04 с установленным LAMP и PHP версии 7.4.

Запуск 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.

ubuntu-20.04-lamp-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-стек) выполните следующие действия.

Если этот пост оказался для вас полезным, подписывайтесь на нашу бесплатную рассылку, чтобы получать еще больше рекомендаций и полезных советов.