Установка LAMP-стека на сервер или настольный компьютер с Ubuntu 22.04

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

Это наиболее популярный набор технологий, который обеспечивает функционирование динамических веб-сайтов и приложений.

  • Linux представляет собой операционную систему.
  • Apache является сервером для работы с веб-контентом.
  • MariaDB/MySQL представляет собой систему управления базами данных.
  • PHP — это язык сценариев для серверной стороны, который используется для разработки динамических веб-страниц.

Требования

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

Если вы находитесь в поиске виртуального частного сервера (VPS), обратите внимание на Kamatera VPS, который предоставляет:

  • Бесплатный доступ на 30 дней.
  • Цена начинается от 4 долларов в месяц за 1 ГБ оперативной памяти.
  • VPS с высокой производительностью на платформе KVM.
  • Девять дата-центров расположены по всему миру, включая такие страны, как США, Канада, Великобритания, Германия, Нидерланды, Гонконг и Израиль.

Следуйте инструкциям, представленным ниже, чтобы настроить VPS сервер на Linux с помощью Kamatera.

  • Как установить VPS-сервер на Linux с помощью Kamatera

После старта VPS на базе Ubuntu 22.04 выполните следующие шаги.

Если вы планируете установить LAMP-стек и зарегистрировать доменное имя, советую рассмотреть покупку доменов у NameCheap. Они предлагают конкурентоспособные цены и бесплатную защиту конфиденциальности WHOIS на весь срок регистрации домена.

Обновление программных пакетов.

Перед тем как установить LAMP-стек, полезно обновить репозитории и программные пакеты. Для этого выполните следующие команды в вашей операционной системе Ubuntu 22.04.

sudo apt update sudo apt upgrade

Инсталляция веб-сервера Apache

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

sudo apt install - y apache2 apache2-utils

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

systemctl status apache2

apache2.service - Веб-сервер Apache HTTP Загружен: (/lib/systemd/system/apache2.service; активирован; настройка по умолчанию: активирована) Статус: активен:деятельный (функционирует) с субботы, 11 апреля 2022 года, 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.4M CGroup: /system. slice/apache2.service ├─53011 /usr/sbin/apache2 - k start ├─53012 /usr/sbin/apache2 - k start └─53013 /usr/sbin/apache2 - k start

Совет: Если указанная команда не завершается мгновенно, нажмите клавишу Q, чтобы вернуть управление терминалом.

Читайте также:  Как обновить Fedora 23 до Fedora 24 с помощью DNF

Если Apache не функционирует, запустите его с помощью команды systemctl.

sudo systemctl start apache2

Рекомендуется настроить автоматический старт Apache при загрузке операционной системы.

sudo systemctl enable apache2

Убедитесь, какая версия Apache у вас установлена:

apache2 - v

Версия сервера: Apache/2.4.52 (Ubuntu) Сборка сервера: 25 марта 2022 года, 00:35:40

Введите публичный IP-адрес вашего сервера на Ubuntu 22.04 в строку браузера. Если всё настроено верно, вы увидите страницу «It works!», что свидетельствует о корректной работе веб-сервера Apache. При установке LAMP на локальный компьютер с Ubuntu 22.04 используйте 127.0.0.1 или localhost в адресной строке.

ubuntu-22.04-lamp-stack

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

sudo iptables - I INPUT - p tcp --dport 80 - j ACCEPT

Если вы применяете брандмауэр UFW, введите эту команду для разблокировки TCP порта 80.

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 22.04 выполните следующую команду.

Читайте также:  Установка и настройка openvpn server

sudo apt install mariadb-server mariadb-client

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

systemctl status mariadb

● mariadb.service - MariaDB 10.6.7 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled ; vendor preset: enabled) Active: active (running) since Fri 2022-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

Если команда, указанная выше, не завершится автоматически, нажмите «q», чтобы выйти.

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

sudo systemctl start mariadb

Для того чтобы активировать автоматический запуск MariaDB при старте системы, выполните следующую команду.

sudo systemctl enable mariadb

После завершения установки запустите скрипт безопасности.

sudo mysql_secure_installation

  • Когда система запросит ввод пароля root для MariaDB, просто нажмите клавишу Enter, так как пароль для root пока не задан.
  • Не переходите на аутентификацию через unix_socket, поскольку MariaDB уже применяет эту форму аутентификации.
  • Не изменяйте пароль для root, так как при использовании аутентификации unix_socket установка пароля для root не требуется.

ubuntu-22.04-install-LAMP-stack-MariaDB

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

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

В стандартной установке MariaDB на Ubuntu для аутентификации пользователей применяется unix_socket. Это позволяет использовать учетные данные операционной системы (имя пользователя и пароль) для доступа к консоли MariaDB. Таким образом, вы можете воспользоваться следующей командой, чтобы войти без необходимости вводить пароль для пользователя root MariaDB.

sudo mariadb - u root

exit;

Проверьте данные о версии сервера MariaDB.

mariadb --version

Мы успешно установили MariaDB версии 10.6.7.

mariadb Ver 15.1 Distrib 10.6.7-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper

Инсталляция PHP8.1

На момент создания данной инструкции последней стабильной версией PHP является PHP8.1, которая демонстрирует небольшое повышение производительности по сравнению с PHP8.0. Для установки PHP8.1 и нескольких популярных модулей PHP выполните следующую команду.

sudo apt install php8.1 libapache2-mod-php8.1 php8.1-mysql php-common php8.1-cli php8.1-common php8.1-opcache php8.1-readline php8.1-mbstring php8.1-xml php8.1-gd php8.1-curl

Активируйте модуль Apache для версии php8.1, после чего перезапустите сервер Apache.

sudo a2enmod php8.1 sudo systemctl restart apache2

Убедитесь в актуальности версии PHP.

Читайте также:  Безопасность в Linux: Управление доступом к команде su

php --version

PHP 8.1.2 (cli) (built: Apr 7 2022 17:46:26) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.2, Copyright (c) Zend Technologies with Zend OPcache v8.1.2, 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-22.04-LAMP-PHP8.1

Запуск PHP-FPM в связке с Apache.

Существует два главных метода выполнения PHP-кода с использованием веб-сервера Apache:

  • Модуль PHP для Apache
  • PHP-FPM.

В описанных выше этапах применяется модуль Apache PHP8.1 для обработки кода на PHP, что обычно является стандартной практикой. Однако в некоторых ситуациях может потребоваться выполнение PHP-кода через PHP-fpm.Ниже приведены инструкции по этому процессу.

Деактивируйте модуль Apache для PHP версии 8.1.

sudo a2dismod php8.1

sudo apt install php8.1-fpm

Активируйте модули proxy_fcgi и setenvif.

sudo a2enmod proxy_fcgi setenvif

Активируйте файл конфигурации /etc/apache2/conf-available/php8.1-fpm.conf.

sudo a2enconf php8.1-fpm

Перезагрузите Apache, чтобы обновления начали действовать.

sudo systemctl restart apache2

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

ubuntu-22.04-lamp-php-fpm

Поздравляем! Вам удалось установить стек LAMP (Apache, MariaDB и PHP8.1) на Ubuntu 22.04. Чтобы обеспечить безопасность вашего сервера, рекомендуется удалить файл info.php, чтобы исключить возможность доступа к нему посторонних.

sudo rm /var/www/html/info.php

Дальнейшие действия.

Надеюсь, это руководство оказалось для вас полезным в установке LAMP-стека на Ubuntu 22.04 LTS. Если вам понравилась эта статья, не забудьте подписаться на нашу бесплатную рассылку, чтобы не пропустить новые советы и рекомендации.

Создание резервных копий имеет большое значение в ситуациях, таких как взлом или бедствия в дата-центрах и так далее. Необходимо разработать план резервного копирования для вашего сервера.

  • Создание резервных копий и восстановление баз данных MariaDB через командную строку.
  • Применение Duplicati для создания резервных копий файлов в системах Debian, Ubuntu и Linux Mint.

Улучшение и контроль эффективности работы сервера на базе Linux.

  • Улучшение производительности сети в Ubuntu посредством активации TCP BBR.
  • HTTP/2: что это такое и как активировать его на Nginx
  • Наблюдение за эффективностью Linux-сервера с помощью Netdata (2022)