LAMP (Linux, Apache, MySQL/MariaDB, PHP) — это популярный стек технологий, используемый для разработки веб-приложений и сайтов. Установка LAMP на ПК с операционной системой Ubuntu 24.04 — это отличный способ начать работать с динамическими веб-приложениями и тестировать свои проекты в локальной среде. В этой статье мы шаг за шагом рассмотрим процесс установки всех компонентов LAMP на Desktop-версию Ubuntu, начиная с подготовки системы и заканчивая проверкой работы сервера.

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

Подготовка системы

Для начала нам необходимо подготовить систему. Сделаем обновление списка пакетов репозиториев:

sudo apt update && apt upgrade -y

Это гарантирует, что система имеет актуальные пакеты и исправления безопасности.

Apache

Установим веб-сервер Apache:

sudo apt install apache2 -y

это популярный веб-сервер, который будет обрабатывать HTTP-запросы.

Для проверки успешной установки и его работы введите в командной строке:

sudo systemctl status apache2

Если статус active (running), то всё в порядке.

Теперь открой браузер и перейди по адресу http://localhost. Вы должны увидеть страницу Apache «It works!».

После проверки успешной установки — мы переходим к созданию и настройке виртуальных хостов.

Для начала создадим директорию, где будет располагаться наш будущий сайт:

sudo mkdir -p /var/www/your_site.local

Замените your_site.local на свои и нажмите Enter. Это создаст новую директорию по указанному нами адресу.

Задайте права доступа для директории:

sudo chown -R $USER:$USER /var/www/your_site.local

Тут тоже не забудьте указать именно вашу директорию.

Для создания тестового сайта можно сделать:

echo "<h1>Welcome to my 1-st site</h1>" | sudo tee /var/www/your_site.local/index.html

И создадим конфигурацию для виртуального хоста:

sudo nano /etc/apache2/sites-available/your_site.local.conf

Со следующим содержимым:

<VirtualHost *:80>
    ServerName your_site.local
    DocumentRoot /var/www/your_site.local
    <Directory /var/www/your_site.local>
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/your_site.local_error.log
    CustomLog ${APACHE_LOG_DIR}/your_site.local_access.log combined
</VirtualHost>

Сохраняйте файл (Ctrl+o, и Enter) и выходите (Ctrl+x).

Теперь сайт необходимо включить:

sudo a2ensite your_site.local.conf

Уже почти все готово для того, чтоб открыть браузер, ввести в него http://your_site.local и наслаждаться результатом. Осталось только прописать локальный DNS через /etc/hosts:

sudo nano /etc/hosts

И добавляем в конец файла следующее:

127.0.0.1 your_site.local

Сохраняем и выходим (Ctrl+o, Enter, Ctrl+x).

Теперь, если ввести в браузере http://your_site.local, то вы увидите приветствие вашего первого сайта.

Установка MySQL

Установка СУБД MySQL через консоль происходит так-же как и любого другого:

sudo apt install mysql-server -y

Запустим скрипт безопасной настройки MySQL:

sudo mysql_secure_installation

Этот скрипт задаст несколько вопросов:

  1. Установить плагин проверки пароля? (Yes)
  2. Выбрать уровень сложности пароля (например, 2 — STRONG).
  3. Задать пароль для пользователя root.
  4. Удалить анонимных пользователей? (Yes)
  5. Запретить удалённый вход для root? (Yes)
  6. Удалить тестовую базу данных? (Yes)
  7. Перезагрузить привилегии? (Yes)

Теперь войдем в MySQL:

sudo mysql -u root -p

Начиная с версии MySQL 5.7 по умолчанию аутентификация настроена через unix_socket, что может быть неудобно для работы. Исправить это можно следующим образом:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_secure_password';

Это изменит метод аутентификации пользователя root на аутентификацию по паролю.

Затем необходимо сбросить привилегии и выйти из MySQL:

FLUSH PRIVILEGES;
EXIT;

Установка и первичная настройка MySQL завершена, и можно переходить к следующему этапу.

Установка PHP

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

sudo apt install php libapache2-mod-php php-mysql -y

После установки давайте проверим какая версия у нас установилась:

php -v

В ответ вы получите что-то вроде:

PHP 8.3.6 (cli) (built: Dec  2 2024 12:36:18) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.6, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.6, Copyright (c), by Zend Technologies

Далее необходимо проверить конфигурацию и работу PHP. Это можно сделать из консоли:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/your_site.local/info.php

Или создать вручную файл info.php в директории вашего сайта со следующим содержимым:

<?php
    phpinfo();
</?>

Перейдите в браузер и откройте страницу http://your_site.local/info.php

Тут вы уже увидете все настройки и модули своего PHP.

После всех настроек, а так-же если что-то пошло не так — перезапустите Apache:

sudo systemctl restart apache2

и посмотрите его статус:

systemctl status apache2

Вы должны получить в ответ что-то вроде:

Apache2.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/apache2.service; enabled; preset: enabled)
     Active: active (running) since Mon 2025-02-10 15:05:30 +05; 3h 20min left
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 1413 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 1505 (apache2)
      Tasks: 7 (limit: 16604)
     Memory: 39.0M (peak: 39.3M)
        CPU: 750ms
     CGroup: /system.slice/apache2.service
             ├─xxxx /usr/sbin/apache2 -k start
             └─xxx /usr/sbin/apache2 -k start

02 10 10:11:20 systemd[1]: Starting apache2.service - The Apache HTTP Server...
02 10 10:11:30 systemd[1]: Started apache2.service - The Apache HTTP Server.

Нас интересует строка Active: в ней должно быть указано active (running), который указывает, что Apache активный и запущен без проблем. При наличие каких-либо проблем — они будут указаны в низу сообщения.

Таким образом мы установили на свой ПК LAMP и теперь можем приступать к разработке своих проектов.

Что еще можно сделать или улучшить?

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

sudo nano /etc/apache2/mods-enabled/dir.conf

И измените этот файл так, чтоб index.php стоял первым.

При необходимости, установите phpmyadmin, для удобного управления MySQL.