Развертывание LNMP на Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

LNMP объединяет четыре компонента программного обеспечения с открытым исходным кодом: Linux, Nginx, MySQL и PHP. Эта совокупность часто используется для запуска динамических веб-приложений и сайтов. Вот краткое описание каждого компонента:

  • Linux: операционная система, которая обеспечивает основу для остальной совокупности.
  • Nginx: высокопроизводительный веб-сервер и обратный прокси, который может обрабатывать значительный трафик и эффективно обслуживать статический контент.
  • MySQL: популярная система управления реляционными базами данных, которая обеспечивает надежный способ хранения и извлечения данных для веб-приложений.
  • PHP: язык сценариев, который широко используется для веб-разработки, позволяя писать серверную часть кода, которая генерирует динамический HTML-контент.

Вместе эти компоненты образуют мощную и гибкую платформу для создания и развертывания современных веб-приложений. LNMP похожа на LAMP (Linux, Apache, MySQL и PHP), но вместо Apache использует Nginx в качестве веб-сервера. Nginx известен своей скоростью и эффективностью, что делает его популярным выбором для высокотраfficных сайтов и приложений.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux(("Linux")) -.-> linux/VersionControlandTextEditorsGroup(["Version Control and Text Editors"]) linux/BasicSystemCommandsGroup -.-> linux/exit("Shell Exiting") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") linux/PackagesandSoftwaresGroup -.-> linux/curl("URL Data Transferring") linux/PackagesandSoftwaresGroup -.-> linux/apt("Package Handling") linux/PackagesandSoftwaresGroup -.-> linux/software("Linux Software") linux/VersionControlandTextEditorsGroup -.-> linux/vim("Text Editing") subgraph Lab Skills linux/exit -.-> lab-7787{{"Развертывание LNMP на Linux"}} linux/service -.-> lab-7787{{"Развертывание LNMP на Linux"}} linux/sudo -.-> lab-7787{{"Развертывание LNMP на Linux"}} linux/curl -.-> lab-7787{{"Развертывание LNMP на Linux"}} linux/apt -.-> lab-7787{{"Развертывание LNMP на Linux"}} linux/software -.-> lab-7787{{"Развертывание LNMP на Linux"}} linux/vim -.-> lab-7787{{"Развертывание LNMP на Linux"}} end

Установка Nginx

Конечно, вот конкретные шаги по установке Nginx на системе Linux:

  1. Обновить списки пакетов: Выполните следующую команду, чтобы обновить списки пакетов на сервере:
sudo apt-get update
  1. Используйте следующую команду для установки Nginx:
sudo apt-get install nginx
  1. Проверить, установлена ли Nginx успешно
nginx -v

Следующее изображение показывает, что Nginx был успешно установлен, и текущая установленная версия - 1.18.0.

nginx version: nginx/1.18.0

Установка MySQL

Вот конкретные шаги по установке MySQL на системе Linux:

  1. Используйте следующую команду для установки MySQL:
sudo apt update
sudo apt-get install mysql-server
  1. Проверьте, установлен ли сервер MySQL:
mysql --version

Следующая картинка показывает, что MySQL успешно установлен.

mysql  Ver 8.0.35-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))
  1. Проверьте, запущен ли MySQL, и если нет, запустите его с помощью следующей команды.
sudo systemctl status mysql
sudo systemctl start mysql

Установка PHP

Вот конкретные шаги по установке PHP на системе Linux:

  1. Установить PHP и связанные модули: Используйте следующую команду для установки PHP и его связанных модулей.
sudo apt update
sudo apt-get install php8.1-fpm php-mysql

Это установит Менеджер процессов FastCGI для PHP (php-fpm) и расширение MySQL для PHP (php-mysql).

  1. Проверить версию PHP.
sudo php -v

Следующая картинка показывает, что PHP успешно установлен.

PHP 8.1.2-1ubuntu2.14 (cli) (built: Aug 18 2023 11:41:11) (NTS)

Настройка Nginx

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

  1. Отредактируйте файл конфигурации Nginx /etc/nginx/sites-available/default:
sudo vim /etc/nginx/sites-available/default
  1. Замените существующий контент следующим:
server {
     listen 80 default_server;
     listen [::]:80 default_server;

     root /var/www/html;
     index index.php index.html index.htm index.nginx-debian.html;

     server_name _;

     location / {
            index index.php index.html index.htm;
        }

     location ~ \.php$ {
            fastcgi_pass unix:/run/php/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
}
  1. Проверьте, правильна ли конфигурация Nginx:
sudo nginx -t
  1. Перезагрузите nginx
sudo nginx -s reload

Настройка MySQL

  1. Выполните следующую команду, чтобы получить доступ к MySQL.
sudo mysql
  1. Выполните следующую команду, чтобы установить пароль для пользователя root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'Mysql@1234';
  1. Выполните следующую команду, чтобы выйти из базы данных MySQL
exit

Настройка PHP

  1. Создайте и отредактируйте новый файл phpinfo.php для отображения информации о PHP.
sudo vim /var/www/html/phpinfo.php

Напишите следующий контент.

<?php echo phpinfo();?>

Советы: Где /var/www/html - это корневая директория сайта, которую можно просмотреть, выполнив команду cat /etc/nginx/sites-enabled/default.

  1. Запустите PHP-FPM: После завершения установки запустите службу PHP-FPM с помощью следующей команды.
sudo systemctl start php8.1-fpm

Советы: Обратите внимание, что точное имя службы PHP-FPM может отличаться в зависимости от вашего дистрибутива Linux и версии PHP.

  1. Включите автозапуск PHP-FPM при загрузке системы: Чтобы убедиться, что PHP-FPM запускается автоматически при загрузке сервера, выполните следующую команду.
sudo systemctl enable php8.1-fpm

Проверка

Введите http://127.0.0.1/phpinfo.php в адресную строку вашего браузера, чтобы получить доступ к нему.

Результат доступа показан ниже, и страница с информацией о конфигурации PHP успешно открыта, что означает успешную развертку окружения LNMP.

PHP info page displayed

В качестве альтернативы можно использовать команду curl для проверки.

curl http://127.0.0.1/phpinfo.php -I

Резюме

После завершения этих шагов вы должны успешно развернуть стек LNMP. Вы можете поместить код вашего сайта в директорию /var/www/html и посетить ваш сайт, чтобы убедиться, что он работает правильно.