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. Для этого выполните следующие команды:
- Установите MySQL:
sudo apt install mysql-server
- Запустите скрипт безопасности MySQL, который позволит вам настроить пароль для пользователя root и удалить некоторые небезопасные параметры:
sudo mysql_secure_installation
- После этого вы можете проверить статус MySQL с помощью команды:
sudo systemctl status mysql
Шаг 3: Установка и настройка PHP
- Установите PHP и некоторые дополнительные модули, которые понадобятся для работы с MySQL и Apache:
sudo apt install php libapache2-mod-php php-mysql
Команда устанавливает PHP, модуль для Apache для работы с PHP и модуль для работы с базами данных MySQL.
- После установки PHP вам может потребоваться внести некоторые изменения в конфигурационные файлы. Вы можете открыть файл конфигурации PHP для редактирования, используя команду:
sudo nano /etc/php/7.4/apache2/php.ini
Это откроет файл конфигурации PHP для Apache. В этом файле вы можете изменять параметры PHP, такие как максимальный размер загружаемых файлов, максимальное время выполнения скриптов PHP и многое другое.
Перезапустите Apache, чтобы применить изменения:
sudo systemctl restart apache2
- Для проверки работы 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.