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

Зачем использовать 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 — проверенный HTTP‑сервер. В Ubuntu под WSL его установка простая:
sudo apt update
sudo apt install apache2Запуск и остановка сервиса выполняются через команду service:
sudo service apache2 start
sudo service apache2 stop
sudo service apache2 restartПроверьте работу сервера, открыв в браузере Windows адрес:
По умолчанию DocumentRoot у Apache находится в /var/www/html. Сохраняйте тестовые HTML‑файлы туда (потребуются права root для записи напрямую).
Краткая проверка доступа к корневой странице:
- Откройте http://localhost
- Если видите «It works!» или стандартную тестовую страницу Ubuntu — Apache работает
Установка и настройка 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Откройте в браузере:
Если отображается страница с информацией о PHP — модуль интегрирован и работает.
Замечание: для современных проектов обычно устанавливают дополнительные расширения PHP (например, php-mysql, php-xml, php-mbstring). Устанавливайте по мере необходимости.
Настройка MariaDB (замена MySQL)
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) и настроить учётные данные. После установки откройте:
Войдите под теми учётными данными, которые задали при установке.
Совет: если команда sudo apt install mariadb не находит пакет, используйте mariadb-server — это распространённое имя пакета в Ubuntu.
Мини‑методология: быстрый рабочий проект в LAMP
- Создайте структуру проекта в /var/www/html/yourproject.
- Настройте виртуальный хост Apache при необходимости (конфигурация в /etc/apache2/sites-available).
- Настройте файл hosts в Windows для локального домена (опционально): добавьте строку 127.0.0.1 myproject.test в C:\Windows\System32\drivers\etc\hosts.
- Запустите службы: apache2 и mysql.
- Подключите базу данных и проверьте 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)
- Ничего не открывается на http://localhost: проверить, запущен ли Apache (sudo service apache2 status).
- 500 Internal Server Error при PHP: смотреть логи Apache /var/log/apache2/error.log.
- Не удаётся подключиться к 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) для управления проектом и конфигурациями.
Важно: при переносе на продакшен тщательно проверьте конфигурацию, безопасность и производительность на реальном сервере.
Похожие материалы
WhatsApp Web — руководство по использованию
Как выигрывать в HQ Trivia: практические советы
Отключить спам-приглашения в Google Календаре
Тайм‑блокинг в Google Календаре для студентов
Цветовое кодирование в Google Календаре