Установка LAMP стека с Nginx в Ubuntu 22.04

Системное администрирование

LAMP-стек – это один из наиболее распространенных наборов программного обеспечения для создания веб-сайтов и веб-приложений. Он состоит из операционной системы Linux, веб-сервера Apache, СУБД MySQL и языка программирования PHP (или других аналогов, таких как Perl или Python). В этой статье мы рассмотрим установку и конфигурацию LAMP-стека на Ubuntu.

Главное отличие LAMP стека от LEMP

Существует другой набор программного обеспечения для создания веб-сайтов, который называется LEMP-стек (ранее мы уже рассматривали установку LEMP стека на Ubuntu 22.04). Он также состоит из операционной системы Linux, но веб-сервером является Nginx, а языком программирования – PHP (или другие аналоги). Основное отличие между LAMP и LEMP заключается в выборе веб-сервера. Apache, используемый в LAMP-стеке, более старый и тяжеловесный, но он имеет более широкие возможности и большее количество дополнительных модулей. Nginx, используемый в LEMP-стеке, более современный и легковесный, что обеспечивает более быстрое выполнение запросов.

Преимущества использования Apache и Nginx в качестве reverse proxy

В классическом LAMP стеке используется Apache в качестве основного web-сервера, однако мы рассмотрим установку и конфигурацию Apache и Nginx, которые могут быть использованы вместе, что обеспечивает их преимущества и нивелирует их недостатки. Этот способ конфигурации называется “reverse proxy” (обратный прокси). В этом случае Nginx выступает в качестве прокси-сервера и обрабатывает все входящие запросы. Затем он передает запросы на Apache, который обрабатывает PHP-скрипты и возвращает ответы. Преимущества использования такой конфигурации:

  • Apache может обрабатывать все возможные типы запросов, включая те, которые не поддерживаются Nginx (например, .htaccess)
  • Nginx может обеспечить статический кэш и сжатие ответов, что ускорит работу сервера
  • При использовании такой конфигурации Apache работает только с локального адреса, что увеличивает безопасность сервера.

Установка LAMP стека

Приступим к установке стека. Для этого нам понадобится сервер с предустановленной операционной системой Ubuntu 22.04. Рекомендуется, чтобы данный сервер был “чистый” во избежания проблем с установкой и будущей работой.

Установка Apache и Nginx в качестве reverse proxy

Часто веб-сайты и приложения работают на Apache, но при этом используют Nginx в качестве прокси-сервера для увеличения производительности и защиты от DDoS-атак. Это связано с тем, что Nginx быстрее обрабатывает статический контент и имеет более эффективный механизм обработки запросов.

Для установки Apache и Nginx в качестве прокси-сервера выполните следующие шаги:

Установите Apache и Nginx с помощью менеджера пакетов apt:

sudo apt update
sudo apt install apache2 nginx

Настройте Apache, чтобы он принимал запросы только с локального хоста. Для этого отредактируйте конфигурационный файл Apache:

sudo nano /etc/apache2/apache2.conf

Добавьте следующие строки в конец файла:

<Directory /var/www/html>
    Require local
</Directory>

Сохраните изменения и закройте файл.

Создайте веб-страницу для проверки работы Apache. Для этого создайте файл index.html в каталоге /var/www/html:

sudo nano /var/www/html/index.html

Добавьте следующий HTML-код:

<html>
    <head>
        <title>Apache is working!</title>
    </head>
    <body>
        <h1>Apache is working!</h1>
        <p>If you see this page, Apache is successfully installed and working. </p>
    </body>
</html>

Сохраните изменения и закройте файл.

Настройте Nginx в качестве прокси-сервера. Для этого создайте новый конфигурационный файл для виртуального хоста в каталоге /etc/nginx/sites-available:

sudo nano /etc/nginx/sites-available/example.com

Добавьте следующий конфигурационный блок:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

В этом примере Nginx будет слушать порт 80 и перенаправлять запросы на Apache, который работает на локальном хосте и слушает порт 8080.

Сохраните изменения и закройте файл. Затем создайте символическую ссылку на этот файл в каталоге /etc/nginx/sites-enabled:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites

Проверьте конфигурацию Nginx на наличие ошибок:

sudo nginx -t

Перезапустите Nginx, чтобы применить изменения:

sudo systemctl restart nginx

Теперь Nginx будет проксировать запросы к Apache на локальном хосте.

Установка MySQL

MySQL можно установить также с помощью менеджера пакетов apt. Для этого выполните следующие команды:

  1. Установите MySQL:
    sudo apt install mysql-server
    
  2. Запустите скрипт безопасности MySQL, который позволит вам настроить пароль для пользователя root и удалить некоторые небезопасные параметры:
    sudo mysql_secure_installation
    
  3. После этого вы можете проверить статус MySQL с помощью команды:
    sudo systemctl status mysql

Шаг 3: Установка и настройка PHP

  1. Установите PHP и некоторые дополнительные модули, которые понадобятся для работы с MySQL и Apache:
sudo apt install php libapache2-mod-php php-mysql

Команда устанавливает PHP, модуль для Apache для работы с PHP и модуль для работы с базами данных MySQL.

  1. После установки PHP вам может потребоваться внести некоторые изменения в конфигурационные файлы. Вы можете открыть файл конфигурации PHP для редактирования, используя команду:
sudo nano /etc/php/7.4/apache2/php.ini

Это откроет файл конфигурации PHP для Apache. В этом файле вы можете изменять параметры PHP, такие как максимальный размер загружаемых файлов, максимальное время выполнения скриптов PHP и многое другое.

Перезапустите Apache, чтобы применить изменения:

sudo systemctl restart apache2
  1. Для проверки работы PHP создайте файл index.php в директории /var/www/html:
sudo nano /var/www/html/index.php

Вставьте следующий код в файл:

<?php phpinfo(); ?>

Сохраните файл и закройте его. Теперь вы можете открыть свой веб-браузер и ввести адрес http://ваш_сервер/index.php. Вы должны увидеть информацию о версии PHP и его настройках.

Установите дополнительные модули PHP по мере необходимости:

sudo apt install php-имя_модуля

Некоторые из наиболее часто используемых модулей включают php-curl, php-gd, php-mbstring, php-xml и php-zip.

Эти модули расширяют функциональность PHP и позволяют вам использовать дополнительные функции при разработке веб-приложений.

Это завершает установку и настройку PHP в LAMP стеке на Ubuntu.

Заключение

В этой статье мы рассмотрели, как установить и настроить LAMP-стек на Ubuntu. Мы установили Apache, MySQL и PHP, которые обеспечивают полный набор инструментов для создания динамических веб-сайтов и веб-приложений. Помните, что LAMP-стек можно настроить по-разному, в зависимости от конкретных потребностей вашего проекта. Надеюсь, эта статья поможет вам начать работу с LAMP-стеком на Ubuntu.

Оцените статью