В этом уроке мы покажем вам, как установить стек LEMP в Ubuntu 24.04 LTS. Стек LEMP — это мощная комбинация программного обеспечения с открытым исходным кодом, позволяющая запускать динамические веб-сайты и веб-приложения. Он состоит из операционной системы Linux, веб-сервера Nginx (произносится как «engine-x»), сервера базы данных MariaDB и языка программирования PHP.
В этой статье предполагается, что у вас есть хотя бы базовые знания Linux, вы умеете использовать оболочку и, самое главное, размещаете свой сайт на собственном VPS. Установка довольно проста и предполагает, что вы работаете под учетной записью root, в противном случае вам может потребоваться добавить ‘sudo
‘ к командам для получения root-прав. Я покажу вам пошаговую установку стека LEMP на Ubuntu 24.04 (Noble Numbat). Вы можете следовать тем же инструкциям для Ubuntu 22.04 и любого другого дистрибутива на основе Debian, такого как Linux Mint, Elementary OS, Pop!_OS и других.
Предварительные условия
- Сервер под управлением одной из следующих операционных систем: Ubuntu и любого другого дистрибутива на основе Debian, например Linux Mint.
- Рекомендуется использовать новую установку ОС, чтобы предотвратить любые потенциальные проблемы.
- Доступ к серверу по SSH (или просто откройте терминал, если вы находитесь на рабочем столе).
- Активное подключение к Интернету. Вам понадобится подключение к Интернету, чтобы загрузить необходимые пакеты и зависимости.
- Система Ubuntu 24.04 с root-доступом или пользователь с привилегиями sudo.
Установите стек LEMP в Ubuntu 24.04 LTS Noble Numbat
Шаг 1. Обновление репозитория пакетов.
Также рекомендуется обновить индекс пакетов вашей системы и обновить все доступные пакеты до последних версий. Вы можете сделать это, выполнив следующие команды:
sudo apt update sudo apt upgrade
sudo apt update
Команда обновляет список пакетов, получая информацию о новейших версиях пакетов и их зависимостях. Этот шаг помогает менеджеру пакетов определить, какие пакеты необходимо обновить.
Шаг 2. Установка Nginx в Ubuntu.
Nginx — это первый компонент, который мы установим в наш стек LEMP. Он будет обрабатывать входящие HTTP-запросы и предоставлять клиентам веб-контент.
Откройте терминал и выполните следующую команду для установки Nginx:
sudo apt install nginx
После завершения установки запустите службу Nginx и включите ее автоматический запуск при загрузке системы:
sudo systemctl start nginx sudo systemctl enable nginx
Настройте параметры брандмауэра, чтобы разрешить трафик Nginx. Если у вас включен UFW (несложный брандмауэр), выполните следующую команду:
sudo ufw allow 'Nginx Full'
Убедитесь, что Nginx работает правильно, посетив IP-адрес или доменное имя вашего сервера в веб-браузере. Вы должны увидеть страницу приветствия Nginx по умолчанию.
Шаг 3. Установка сервера базы данных MariaDB.
Далее мы установим MariaDB, систему управления базами данных, которая будет хранить данные ваших веб-приложений и управлять ими.
Установите MariaDB с помощью следующей команды:
sudo apt install mariadb-server
После завершения установки запустите сценарий mysql_secure_installation, чтобы защитить установку MariaDB:
sudo mysql_secure_installation
Этот скрипт предложит вам установить пароль root для MariaDB, удалить анонимных пользователей, отключить удаленный вход в систему root, удалить тестовую базу данных и перезагрузить таблицы привилегий. Следуйте подсказкам и выберите безопасные параметры.
Чтобы протестировать установку MariaDB, войдите в оболочку MariaDB:
sudo mysql -u root -p
Введите пароль root, который вы установили во время mysql_secure_installation
сценарий. После входа в систему вы можете создать новую базу данных и пользователя для своего веб-приложения.
Шаг 4. Установка PHP.
PHP — это язык программирования, который будет использоваться в ваших динамических веб-приложениях. Мы установим PHP 8.3 вместе с необходимыми расширениями для взаимодействия с MariaDB и Nginx.
Установите PHP и необходимые расширения с помощью следующей команды:
sudo apt install php-fpm php-mysql php-curl php-gd php-json php-intl php-bcmath php-opcache php-apcu php-mbstring php-fileinfo php-xml php-soap php-tokenizer php-zip
Проверьте установку PHP, проверив версию:
php -v
Шаг 5. Настройте Nginx для использования процессора PHP.
Теперь, когда у нас установлены все компоненты, нам нужно настроить Nginx на использование PHP для обработки динамического контента.
Создайте новый файл конфигурации блока сервера для вашего домена или веб-сайта:
sudo nano /etc/nginx/sites-available/example.com
Вставьте в файл следующую конфигурацию, заменив example.com IP-адресом вашего домена или сервера:
server { listen 80; server_name example.com www.example.com; root /var/www/example.com; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.3-fpm.sock; } location ~ /\.ht { deny all; } }
Сохраните файл, выйдите из текстового редактора и включите блокировку сервера, создав символическую ссылку:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Проверьте конфигурацию Nginx на наличие синтаксических ошибок:
sudo nginx -t
Если ошибок не обнаружено, перезагрузите Nginx, чтобы изменения вступили в силу:
sudo systemctl reload nginx
Шаг 6. Тестирование PHP с помощью Nginx.
Чтобы убедиться, что PHP работает правильно с Nginx, мы создадим простой информационный файл PHP. Теперь создайте новый файл в корневом каталоге веб-сайта:
sudo nano /var/www/example.com/info.php
Добавьте в файл следующий PHP-код:
<?php phpinfo(); ?>
Сохраните файл и выйдите из текстового редактора, посетите http://example.com/info.php
в вашем веб-браузере. Вы должны увидеть страницу информации о PHP, подтверждающую, что PHP правильно работает с Nginx.
Шаг 7. Защита стека LEMP.
Хотя стек LEMP теперь установлен и работает, рекомендуется принять дополнительные меры безопасности для усиления защиты вашего сервера.
Настройте правила UFW (несложный брандмауэр), чтобы ограничить доступ к вашему серверу:
sudo ufw allow OpenSSH sudo ufw enable
Настройте шифрование SSL/TLS с помощью Let’s Encrypt для безопасной связи:
sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d example.com -d www.example.com
Включите автоматическое продление SSL-сертификатов:
sudo systemctl status certbot.timer
Шаг 8. Дополнительные настройки и оптимизации
В зависимости от ваших конкретных требований вы можете рассмотреть следующие дополнительные конфигурации и оптимизации:
- Включение сжатия Gzip в Nginx: добавьте следующие строки в файл конфигурации Nginx, чтобы включить сжатие Gzip для повышения производительности:
gzip on; gzip_types text/plain application/xml text/css text/javascript application/javascript;
- Настройка кэширования с помощью Nginx: Внедрить механизмы кэширования, чтобы снизить нагрузку на сервер и улучшить время отклика для статического контента.
- Настройка файла подкачки: Если ваш сервер имеет ограниченный объем оперативной памяти, создание файла подкачки может помочь повысить производительность, позволяя системе использовать дисковое пространство в качестве виртуальной памяти.