Гид по технологиям

Быстрый старт: LAMP в WSL для разработки веб‑приложений

5 min read Веб-разработка Обновлено 31 Dec 2025
WSL + LAMP: быстрый старт разработки
WSL + LAMP: быстрый старт разработки

Редактор кода в среде разработки на ноутбуке

Зачем использовать WSL для веб‑разработки

WSL (Windows Subsystem for Linux) возвращает Windows в число удобных платформ для разработки. Он позволяет запускать знакомые Linux‑инструменты прямо из Windows без полной виртуализации. Это удобно, если ваш рабочий процесс ориентирован на веб‑стек (LAMP — Linux/Apache/MySQL/MariaDB/PHP) и вы хотите быстро настроить среду, совместимую с продакшен‑серверами.

Важно: WSL не использует systemd в стандартной конфигурации (на момент написания). Управление сервисами в Ubuntu под WSL обычно выполняется через команду service.

Предварительные требования

  • WSL2 или WSL установлен и настроен в Windows. Рекомендуется WSL2 для лучшей совместимости и производительности. Коротко: WSL2 — виртуальная машина с полноценным Linux‑ядром. WSL1 — совместимый слой, но с ограничениями по сетям и файловой системе.
  • Дистрибутив Ubuntu (или другой Debian‑based) установлен в WSL.
  • Доступ к sudo в Ubuntu.

Установка и запуск Apache

Тестовая страница Apache в Ubuntu под WSL

Apache — проверенный HTTP‑сервер. В Ubuntu под WSL его установка простая:

sudo apt update
sudo apt install apache2

Запуск и остановка сервиса выполняются через команду service:

sudo service apache2 start
sudo service apache2 stop
sudo service apache2 restart

Проверьте работу сервера, открыв в браузере Windows адрес:

http://localhost

По умолчанию DocumentRoot у Apache находится в /var/www/html. Сохраняйте тестовые HTML‑файлы туда (потребуются права root для записи напрямую).

Краткая проверка доступа к корневой странице:

  • Откройте http://localhost
  • Если видите «It works!» или стандартную тестовую страницу Ubuntu — Apache работает

Установка и настройка PHP

Страница информации PHP с настройками и расширениями

PHP добавляет серверную логику к статическим страницам. Установите PHP и модуль для Apache:

sudo apt install php libapache2-mod-php

Создайте тестовый файл phpinfo для проверки:

Сохраните его как /var/www/html/phpinfo.php (нужны права root):

sudo tee /var/www/html/phpinfo.php > /dev/null <<'EOF'

EOF

Откройте в браузере:

http://localhost/phpinfo.php

Если отображается страница с информацией о PHP — модуль интегрирован и работает.

Замечание: для современных проектов обычно устанавливают дополнительные расширения PHP (например, php-mysql, php-xml, php-mbstring). Устанавливайте по мере необходимости.

Настройка MariaDB (замена MySQL)

Интерфейс phpMyAdmin для управления базами данных

MariaDB — форк MySQL, совместимый по интерфейсу и командной строке. Установка в Ubuntu может выполняться одной из команд:

sudo apt install mariadb-server
# или, если дистрибутив предлагает имя пакета mariadb:
sudo apt install mariadb

Запустите сервер командой service (обратите внимание: имя сервиса часто mysql даже для MariaDB):

sudo service mysql start

Проверьте безопасность установки и задайте пароль root, запрет удалённого подключения и удалите тестовые базы:

sudo mysql_secure_installation

Это интерактивный скрипт, который задаст вам ключевые настройки безопасности.

Если вы предпочитаете GUI для работы с СУБД, установите phpMyAdmin:

sudo apt install phpmyadmin

Во время установки вас попросят выбрать веб‑сервер (выберите apache2) и настроить учётные данные. После установки откройте:

http://localhost/phpmyadmin

Войдите под теми учётными данными, которые задали при установке.

Совет: если команда sudo apt install mariadb не находит пакет, используйте mariadb-server — это распространённое имя пакета в Ubuntu.

Мини‑методология: быстрый рабочий проект в LAMP

  1. Создайте структуру проекта в /var/www/html/yourproject.
  2. Настройте виртуальный хост Apache при необходимости (конфигурация в /etc/apache2/sites-available).
  3. Настройте файл hosts в Windows для локального домена (опционально): добавьте строку 127.0.0.1 myproject.test в C:\Windows\System32\drivers\etc\hosts.
  4. Запустите службы: apache2 и mysql.
  5. Подключите базу данных и проверьте CRUD‑операции.

Критерии приёмки среды (проверочные тесты)

  • Apache отвечает на http://localhost и возвращает 200.
  • phpinfo.php отображает корректную информацию о PHP.
  • MariaDB принимает подключение по локальному сокету и пользователь root (или другой созданный) может войти.
  • phpMyAdmin доступен и позволяет просматривать/создавать БД.

Безопасность и хорошие практики

  • Не используйте пустой пароль для MariaDB root даже в локальной среде надолго.
  • Отключайте удалённый доступ к root и создайте отдельного пользователя для приложений.
  • Регулярно обновляйте пакеты: sudo apt update && sudo apt upgrade.
  • Для хранения проектов используйте файловую систему WSL (не ставьте код на Windows‑диск за пределами \wsl$ без необходимости — производительность может страдать).

Важно: при публикации проекта на продакшен используйте отдельную, правильно настроенную среду, а не WSL‑машину вашего рабочего ПК.

Альтернативные подходы и когда LAMP в WSL не подходит

  • NGINX вместо Apache: легче масштабируется и популярен в современных стекaх (LEMP). Если вы разрабатываете под NGINX, установите nginx и php-fpm.
  • Docker/Dev Containers: если проект использует сложные зависимости или нужна идентичность среды между разработчиками и CI/CD, контейнеры Docker чаще предпочтительнее.
  • Локальная виртуальная машина или облачные dev‑среды: если требуется полная изоляция или systemd, используйте VM или удалённый сервер.

Контрпример: если вы разрабатываете высоконагруженное приложение и тестируете точное поведение сетевых интерфейсов, поведение WSL может отличаться от Linux‑сервера; в этом случае лучше тестировать в VM/контейнере на Linux‑ядре, максимально приближенном к продакшену.

Роль‑ориентированные чеклисты

Разработчик:

  • Установить Apache, PHP, модуль PHP‑mysql.
  • Развернуть проект в /var/www/html/.
  • Проверить phpinfo и соединение с БД.

Администратор/DevOps:

  • Настроить виртуальные хосты и бэкапы БД.
  • Запустить mysql_secure_installation.
  • Настроить HTTPS (локальные сертификаты типа mkcert).

Дизайнер/верстальщик:

  • Проверить статику в /var/www/html/assets.
  • Убедиться, что относительные пути работают.

Быстрый cheat sheet команд

  • Установка Apache: sudo apt install apache2
  • Запуск Apache: sudo service apache2 start
  • Установка PHP: sudo apt install php libapache2-mod-php
  • Установка MariaDB: sudo apt install mariadb-server
  • Безопасность MariaDB: sudo mysql_secure_installation
  • Установка phpMyAdmin: sudo apt install phpmyadmin

Мероприятия при неисправностях (короткий runbook)

  1. Ничего не открывается на http://localhost: проверить, запущен ли Apache (sudo service apache2 status).
  2. 500 Internal Server Error при PHP: смотреть логи Apache /var/log/apache2/error.log.
  3. Не удаётся подключиться к MariaDB: проверить статус сервиса sudo service mysql status и права пользователя.

Короткий глоссарий (1‑строчные определения)

  • WSL: подсистема, позволяющая запускать Linux на Windows.
  • Apache: HTTP‑сервер для публикации сайтов.
  • PHP: язык серверной стороны для веб‑логики.
  • MariaDB: сервер реляционной базы данных, совместимый с MySQL.
  • phpMyAdmin: веб‑интерфейс для управления СУБД.

Резюме

  • WSL позволяет быстро настроить среду LAMP на Windows.
  • Установите Apache, PHP и MariaDB, выполните базовую настройку безопасности и (опционально) phpMyAdmin.
  • Для более сложных сценариев рассмотрите Docker или полноценную VM.

Дополнительные материалы: пробуйте добавлять расширения PHP по мере необходимости и используйте систему контроля версий (git) для управления проектом и конфигурациями.

Важно: при переносе на продакшен тщательно проверьте конфигурацию, безопасность и производительность на реальном сервере.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

WhatsApp Web — руководство по использованию
Guides

WhatsApp Web — руководство по использованию

Как выигрывать в HQ Trivia: практические советы
Игры

Как выигрывать в HQ Trivia: практические советы

Отключить спам-приглашения в Google Календаре
Google Календарь

Отключить спам-приглашения в Google Календаре

Тайм‑блокинг в Google Календаре для студентов
Продуктивность

Тайм‑блокинг в Google Календаре для студентов

Цветовое кодирование в Google Календаре
Продуктивность

Цветовое кодирование в Google Календаре

Вторая временная зона в Google Календаре
Продуктивность

Вторая временная зона в Google Календаре