Для установки стека LEMP на сервере или компьютере с Ubuntu 20.04

В данном руководстве описывается процесс установки стека LEMP, включающего Nginx, MariaDB и PHP 7.4, на операционную систему Ubuntu 20.04. Под стеком программ понимается набор инструментов, которые работают вместе для выполнения определённых задач. LEMP расшифровывается как Linux, Nginx (также известный как Engine-X), MariaDB или MySQL, и PHP. Все эти компоненты являются программным обеспечением с открытым исходным кодом и доступны для бесплатного использования. Этот стек часто используется для поддержки динамических веб-сайтов и приложений. Linux служит операционной системой, Nginx выполняет функции веб-сервера, MariaDB или MySQL — это серверы баз данных, а PHP является серверным языком программирования, который отвечает за создание динамических страниц веб-сайта.

Необходимые условия

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

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

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

Пройдите по ссылке ниже, чтобы настроить свой VPS сервер на базе Linux на платформе Kamatera.

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

Если вы хотите настроить стек LEMP с использованием доменного имени, рекомендую приобретать домены у NameCheap. У них конкурентоспособные цены, а также они предлагают бесплатную защиту конфиденциальности whois на протяжении всей жизни домена.

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

Перед установкой стека LEMP рекомендуется обновить репозиторий и пакеты программного обеспечения, выполнив указанные ниже команды в вашей системе Ubuntu 20.04.

sudo apt update sudo apt upgrade

Настройка веб-сервера Nginx

Nginx — это мощный веб-сервер, который сегодня пользуется большой популярностью. Его можно также применять в качестве обратного прокси и сервера кэширования. Чтобы установить веб-сервер Nginx, выполните следующую команду.

sudo apt install nginx

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

sudo systemctl enable nginx

После этого запустите Nginx, введя следующую команду:

Читайте также:  Как изменить URL сайта WordPress (домен) с помощью SQL-запросов

sudo systemctl start nginx

Теперь проверьте его текущее состояние.

sudo systemctl status nginx

Термин ‘Включен’ указывает на то, что функция автоматического старта при загрузке активирована, и мы можем подтвердить, что Nginx функционирует. Также из вывода можно узнать, сколько оперативной памяти использует Nginx. Если команда не завершила выполнение сразу, нажмите ‘q’, чтобы выйти.

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

nginx - v

версия nginx: nginx/1.17.9 (Ubuntu)

Теперь введите публичный IP-адрес вашего сервера с Ubuntu 20.04 в адресную строку браузера. Вы должны увидеть страницу «Добро пожаловать в Nginx», что указывает на корректную работу веб-сервера Nginx. Если вы устанавливаете LEMP на локальном компьютере с Ubuntu 20.04, введите 127.0.0.1 или localhost в адресную строку браузера.

Ubuntu-20.04-LEMP

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

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

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

sudo ufw allow http

В итоге, необходимо назначить пользователя www-data (пользователь Nginx) владельцем директории веб-сайта, так как по умолчанию ее владельцем является пользователь root.

sudo chown www-data:www-data /usr/share/nginx/html - R

Инсталляция сервера баз данных MariaDB

MariaDB представляет собой альтернативу MySQL. Ее создали бывшие разработчики MySQL, которые выразили опасения, что Oracle может сделать MySQL коммерческим продуктом с закрытым кодом. Чтобы установить MariaDB на Ubuntu 20.04, выполните следующую команду.

sudo apt install mariadb-server mariadb-client

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

systemctl status mariadb

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

sudo systemctl start mariadb

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

How-to-Install-LEMP-stack-on-Ubuntu-20.04

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

Читайте также:  Команда Grep в Linux (поиск текста в файлах)

sudo mariadb - u root

exit;

Убедитесь, что у вас есть актуальные данные о версии сервера MariaDB.

mariadb --version

Мы установили версию MariaDB 10.3.22.

mariadb Ver 15.1 Distrib 10.3.22-MariaDB, для debian-linux-gnu (x86_64) с использованием readline 5.2

Инсталлируйте PHP версии 7.4.

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

sudo apt install php7.4 php7.4-fpm php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline php7.4-mbstring php7.4-xml php7.4-gd php7.4-curl

Расширения PHP часто требуются для систем управления контентом (CMS), таких как WordPress. К примеру, если в вашей версии не установлено php7.4-xml, это может привести к тому, что некоторые страницы вашего сайта WordPress окажутся пустыми, а в журнале ошибок Nginx может появиться сообщение об ошибке, например:

PHP message: PHP Fatal error: Uncaught Error: Call to undefined function xml_parser_create()

Инсталляция указанных расширений PHP гарантирует бесперебойное функционирование вашей системы управления контентом. Теперь активируйте php7.4-fpm.

sudo systemctl start php7.4-fpm

Активируйте автозапуск при старте системы.

sudo systemctl enable php7.4-fpm

systemctl status php7.4-fpm

Если команда, указанная выше, не завершится сразу после выполнения, вам следует нажать “ q ” для выхода.

Настройте серверный блок Nginx

Блок сервера Nginx аналогичен виртуальному хосту в Apache. Мы не будем применять стандартный блок сервера, так как он не подходит для обработки PHP-кода, и любые изменения могут привести к путанице. Поэтому удалите символическую ссылку по умолчанию из каталога sites-enabled, используя следующую команду. (Она все еще доступна по адресу /etc/nginx/sites-available/default.)

sudo rm /etc/nginx/sites-enabled/default

После этого воспользуйтесь текстовым редактором командной строки, например, Nano, для создания нового файла конфигурации сервера в директории /etc/nginx/conf.d/.

sudo nano /etc/nginx/conf.d/default.conf

Поместите указанный текст в файл. Этот участок кода настроит Nginx на прослушивание порта 80 для IPv4 и порта 80 для IPv6 с использованием универсального имени сервера.

Закройте файл и сохраните изменения. (В текстовом редакторе Nano для сохранения файла нажмите Ctrl+O, затем подтвердите нажатием Enter. Для выхода используйте комбинацию Ctrl+X.)

После этого выполните тестирование конфигураций Nginx.

sudo nginx - t

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

Читайте также:  Два способа обновления Ubuntu 21.10 до Ubuntu 22.04 (через графический интерфейс и с помощью терминала)

sudo systemctl reload nginx

Проверка работы PHP

Для проверки работы PHP-FPM совместно с веб-сервером Nginx необходимо создать файл info.php в директории webroot.

sudo nano /usr/share/nginx/html/info.php

Поместите следующий PHP-код в файл.

Сохраните файл и закройте его. Теперь в адресной строке вашего браузера введите server-ip-address/info.php, заменив server-ip-address на свой реальный IP-адрес. Если вы просматриваете это руководство на локальной машине, введите 127.0.0.1/info.php или localhost/info.php.

Необходимо ознакомиться с данными о PHP на вашем сервере. Это указывает на то, что PHP-скрипты способны корректно исполняться с веб-сервером Nginx.

Установите Ubuntu 20.04 с сервером Nginx и PHP версии 7.4.

Поздравляем! У вас успешно установлены Nginx, MariaDB и PHP 7.4 на Ubuntu 20.04. Чтобы повысить безопасность вашего сервера, рекомендуется удалить файл info.php, чтобы избежать его доступа хакеров.

sudo rm /usr/share/nginx/html/info.php

Если у вас возникнут ошибки, рекомендуется ознакомиться с журналом ошибок Nginx (/var/log/nginx/error.log), чтобы определить источник проблемы.

Автоматическое восстановление Nginx

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

sudo systemctl restart nginx

Для автоматического перезапуска Nginx вместо ручного ввода команды, мы можем отредактировать системную службу nginx.service. Для изменения стандартной конфигурации службы systemd создадим отдельный каталог.

sudo mkdir - p /etc/systemd/system/nginx.service.d/

После этого создайте документ в данном каталоге.

sudo nano /etc/systemd/system/nginx.service.d/restart.conf

Вставьте следующие строки в файл, чтобы Nginx автоматически перезапускался через 5 секунд после выявления сбоя. Значение по умолчанию для RestartSec составляет 100 мс, что является слишком маленьким. Если значение RestartSec будет недостаточно большим, Nginx может выдавать ошибку «запрос на запуск повторяется слишком быстро».

[Service] Restart=always RestartSec=5s

Сохраните файл и закройте его. После этого перезапустите systemd, чтобы изменения начали действовать.

sudo systemctl daemon-reload

Для проверки, сработает ли это, остановите процесс Nginx следующим образом:

sudo pkill nginx

После этого проверьте состояние Nginx. Вы заметите, что Nginx был перезапущен автоматически.

systemctl status nginx

Надеюсь, что данный учебник был полезен для вас при установке стека LEMP на Ubuntu 20.04 LTS. Вы также можете установить phpMyAdmin — бесплатный и открытый инструмент, позволяющий управлять базами данных через веб-интерфейс.

  • Способ установки phpMyAdmin с использованием Nginx (LEMP) на Ubuntu 20.04 LTS.

Можно установить WordPress на платформу LEMP для создания собственного сайта или блога.

  • Настройте WordPress на Ubuntu 20.04 с использованием Nginx, MariaDB и PHP 7.4 (LEMP).

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