Хотите запустить веб-сервер на своем компьютере с Windows 10, но не хотите возиться с настройкой всего вручную или ставить громоздкие пакеты вроде Denwer? Есть отличный и современный способ. Вы можете использовать подсистему Windows для Linux (WSL), чтобы развернуть полноценную среду для веб-разработки прямо у себя на машине.
WSL позволяет запускать среду Linux, не покидая Windows. Это идеальный вариант для установки связки Apache, MySQL и PHP. Вы получаете все преимущества и гибкость настоящего сервера, но работаете в привычной для вас операционной системе. Мы рассмотрим, как это сделать в обеих версиях подсистемы — WSL 1 и WSL 2.
Этот подход отлично подходит для локальной разработки сайтов, тестирования скриптов или изучения веб-технологий. Всё будет работать изолированно на вашем компьютере, не мешая основной системе, и вам не понадобится для этого создавать виртуальную машину или переустанавливать ОС.
- Включение подсистемы Windows для Linux.
- Создание директории для веб-проекта.
- Установка необходимых программ в Ubuntu для Windows 10.
- Установка Apache.
- Установка MySQL сервера.
- Включим модуль Mod rewrite в Apache:
- Изменение метода аутентификации MySQL пользователя root.
- Создание базы данных.
- Установка phpMyAdmin.
- Настройка виртуальных хостов в Apache.
- Перенаправление test.local на локальный веб-сервер.
- Команды для запуска и остановки веб-сервера.
- Проверка работоспособности веб-сервера.
Включение подсистемы Windows для Linux.
Для включения компонента«Подсистема Windows для Linux»в Windows 10 необходимо выполнить следующие действия:
Шаг 1: С помощью команды: optionalfeatures в диалоговом окне «Выполнить» откройте «Компоненты Windows».
Шаг 2: Включите опцию«Подсистема Windows для Linux».
Шаг 3: Перейдите в Microsoft Store загрузите и установите приложение Ubuntu для Windows.

Шаг 4:C помощью меню «Пуск» запуститеUbuntu.В окне терминала, при первом запуске нужно будет ввести новое имя UNIX пользователя(username)и пароль(password).

Подробней как это сделать,мы рассмотрелив руководствах:
- Как установить WSL 2 подсистему Windows для Linux в Windows 10
- Как установить Wsl 1 подсистему Windows для Linux.
- Официальная инструкция от microsoft.
Создание директории для веб-проекта.
При использовании WSL 1 желательно помещать файлы проекта на диски файловой системы Windows — C, D, E. Если вы будете использовать WSL 2, вы можете также использовать локальные диски илисоздать директорию для сайта в файловой системе Linux.
Шаг 5:Создайте в Проводнике Windows 10, директорию для сайта (проекта) test.local:
С:\Projects\test.local\public_html

Если вы будете использовать WSL 2 рекомендуется создать директорию для сайта в файловой системе Linux. В этом случае папку проекта поместим сюда: \home\main\projects\test.local\public_html
Для этого выполним команду:
sudo mkdir -p /home/main/projects/test.local/public_html
Где замените «main» на имя UNIX пользователя созданного при первом запуске wsl.
Во избежание проблем с доступом выполните команду:
Здесь также замените«main» на ваше имя пользователя UNIX.

Это избавит от ошибок и обеспечит максимальную производительность.
Шаг 6: Какполучить доступ к файлам WSL Linux из проводника Windows 10.
Находясь в каталоге Linux FS, введите:
Откроется окно проводника, расположенное внутри вашего дистрибутива Linux.
Подробнее в нашей статье:Доступ к файлам WSL Linux с помощью Проводника Windows 10

Также, чтобы удобно было работать с каталогами файловой системой Linux вы можете установить в Ubuntu, например, «Midnight Commander»:
Запуск Midnight Commander осуществляется посредством ввода команды:
Установка необходимых программ в Ubuntu для Windows 10.
Шаг 7:C помощью меню «Пуск» запуститеUbuntu.
Шаг 8:Обновите локальный индекс apt пакетов в Ubuntu выполнив команду:

Шаг 9:После чего необходимо обновить установленное программное обеспечение:
На запрос «Do you want to continue? [Y/n]» нажмите клавишу Y.

Установка Apache.
Веб-сервер Apache используют более половины всех действующих веб-сайтов. Это очень мощный и гибкий инструмент.
Шаг 10:Установим Apache выполнив команду:
Вы увидите список пакетов, которые будут установлены, а также объём места на диске которое они займут. НажмитеYдля продолжения установки.

Установка MySQL сервера.
MySQL — система управления базами данных. Она организует и обеспечит доступ к базам данных, где сайт может хранить информацию.
Шаг 11:Установим MySQL сервер:
sudo apt install mysql-server
НажмитеYдля продолжения установки. После завершения установки нам потребуется выполнить некоторые дополнительные команды, чтобы настроить наше окружение MySQL

Шаг 12:Установим php и другие пакеты, необходимые для веб-разработки:
PHP это компонент, отвечающий за обработку кода для отображения динамического контента.
sudo apt install php libapache2-mod-php php-mysql php-xml php-curl
Примечание: Если необходимо установить определенную версию php, например 7.4.x, необходимо выполнитькоманду:
Включим модуль Mod rewrite в Apache:
Коротко, mod_rewrite — это модуль для веб-сервера Apache, выполняющий функцию преобразования URL.
Шаг 13:Выполните команду:
Если вы разрабатываете веб-сайты или учитесь программировать на PHP с базами данных, удобно иметь собственный веб-сервер прямо на компьютере. В Windows 10 это можно сделать с помощью WSL — подсистемы, которая запускает Linux внутри системы. Установив WSL 1 или WSL 2, вы можете легко настроить Apache, MySQL и PHP, как на настоящем сервере. Разница между WSL 1 и WSL 2 в скорости и совместимости: вторая версия работает быстрее, особенно с файлами, но первая проще в настройке. Главное — выбор зависит от ваших задач, но оба варианта позволяют быстро поднять локальный сайт и начать работать.
Изменение метода аутентификации MySQL пользователя root.
Необходимо изменить метод аутентификации MySQL для пользователя root выполнив следующие действия:
Шаг 14:Запустим службу mysql.
Шаг 15:Подключимся к серверу MySQL под стандартным пользователем root, который был создан при установке MySQL на ваш компьютер:
Шаг 16:При запросе пароля нажмите Enter, т.к. по умолчанию пользователь root, созданный при установке, не имеет пароля.

Примечание: На серверах Ubuntu, использующих MySQL ( 5.7 и более поздние версии),аутентификация rootпользователя происходит с помощью плагинаauth_socket, а не с помощью пароля. Это во многих случаях повышает безопасность, но, может усложнить настройку доступа кrootпользователю для phpMyAdmin и др. программ.
Шаг 17:Чтобы проверить метод аутентификации, который задействован для пользователя root, выполните команду:
SELECT user, authentication_string, plugin, host FROM mysql.user WHERE user="root";

Шаг 18:Если в ответе на запрос вы видите используется аутентификация с помощью плагина auth_socket, необходимо изменим эту настройку. Для этого введём команду:
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘root’;
Шаг 19:Выполним команду FLUSH PRIVILEGES, которая применит внесённые изменения:
Создание базы данных.
Шаг 20:Создадим базу данных для веб-проекта test.local. Для этого введем в командной строке MySQL следующую команду:
CREATE DATABASE testlocal;
Шаг 21:Для завершения работы с командной строкой MySQL выйдем из неё:
Установка phpMyAdmin.
Шаг 22:Выполняем команду:
sudo apt install phpmyadmin

Шаг 23:В первом диалоговом окне, нажмите пробел чтобы выбрать Apache, далее нажмите клавишу Tab, а затем Enter.

Шаг 24:Выберите Yes, для настройки базы данных на запрос использовать dbconfig-common.

Шаг 25:Укажите пароль пользователя MySQL root.

Шаг 26:Подтвердите пароль
Шаг 27:Включим необходимые расширения PHP:
Шаг 28:Перезапустите Apache:
sudo service apache2 restart
Теперь вы можете получить доступ к phpMyAdmin по следующему URL: http://localhost/phpmyadmin/ Вы можете войти в систему, используя имя пользователя root и пароль root, настроенные во время установки MySQL.

Настройка виртуальных хостов в Apache.
В Ubuntu файл настроек виртуальных хостов Apache находятся по следующему пути /etc/apache2/sites-available/*.conf. В Apache уже настроен один виртуальный хост по умолчанию в файле 000-default.conf. Возьмем данный файл за основу.
Шаг 29:Создайте копию файла 000-default.conf выполнив команду:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/test.local.conf
Шаг 30:Внесем изменения в файл test.local.conf, для этого используем, редактор nano:

Содержимое файла test.com.conf после правок для Wsl 2 если вы создали директорию для сайта в файловой системе Linux:
Внимание: Не забудьте заменить UNIX имя пользователя(username) на свое (Шаг: 7), в моем случаеэто almanex.

Содержимое файла test.com.conf после правок для Wsl 1 и Wsl 2, гдефайлы проекта находятся на дискефайловой системы Windows — C, D, E:
Внимание: Не забудьте заменить букву диска! В примере мы используем диск С.

Шаг 31:После внесения правок сохраните и закройте файл сочетанием клавишCTRLX. Подтвердите операцию клавишейYи нажмитеENTER.
Шаг 32:Включим новый виртуальный хост с помощью утилиты a2ensite:
sudo a2ensite test.local.conf
Шаг 33:Далее деактивируем сайт по умолчанию000-default.conf:
sudo a2dissite 000-default.conf
Шаг 34:Перезапустимservice apache:
sudo service apache2 restart
Перенаправление test.local на локальный веб-сервер.
Ваш проект доступен по адресу http://localhost/
Для того чтобы доменное имя http://test.local было связано с вашим локальным веб-сервером, откройте файл hosts, расположенный по адресу C:\Windows\System32\drivers\etc и добавить в него строки:
127.0.0.1 test.local
172.30.69.65 test.local
Чтобы определить ip-адрес вашего сетевого интерфейса (в моем случае это 172.30.69.65) можно использовать командуipaddress в терминале (см. картинку ниже).

Команды для запуска и остановки веб-сервера.
Все, теперь перед началом работы с вашим веб проектом, вам нужно запустить Apache и MySQL, для этогонеобходимо ввести следующие команды по очереди:
sudo service apache2 start
Для остановки веб-сервера:
sudo service apache2 stop
Необязательно: Чтобы было проще запускать и останавливать веб-сервер вы можете создать bash скрипты start.sh и stop.sh.

Как создать скрипт start.sh:
Шаг 1:Откройте терминал и создайте файл командой:
Шаг 2:Вставьте следующее содержимое, где замените password на пароль, который установили для пользователя Ubuntu:
#!/bin/bash
echo password | sudo -S sudo service apache2 start
echo password | sudo -S sudo service mysql start
exit 0

Шаг 3:Необходимо отредактировать права доступа для start.sh. Выполните команду:
sudo chmod -R 755 ./start.sh
Скрипт stop.sh:
Шаг 4:Создайте файл командой:
Содержимое файла stop.sh:
#!/bin/bash
echo password | sudo -S sudo service apache2 stop
echo password | sudo -S sudo service mysql stop
exit 0
Шаг 5:Отредактировать права доступа:
sudo chmod -R 755 ./stop.sh
Проверка работоспособности веб-сервера.
Для проверки работоспособности веб-сервера установим на test.local систему управления контентом, например, OctoberCMS, MODX Revolution илиWordPress.
Для этого скачаем с официальнойстраницыархив системы WordPress и распакуем его всозданную намидиректорию
С:\Projects\test.local\public_html
или
/home/main/projects/test.local/public_html
Для установки системы необходимо открыть мастер. Откроем в браузере адрес http://test.local. После этого ответим на все вопросы мастера и нажмём на кнопку «Вперед», введем сведения о подключении к базе данных testlocal и тд..

Дождёмся окончания процесса установки. Готово!
Как видишь, установка локального сервера в WSL — это не так сложно, как может показаться на первый взгляд. Главное — пошагово следовать инструкциям и не бояться командной строки. Этот способ открывает перед тобой полный доступ к мощному и гибкому инструменту для веб-разработки прямо на твоём компьютере с Windows.
Выбор между WSL 1 и WSL 2 зависит от твоих задач. Если ты работаешь с файлами в папке Windows, то WSL 1 может оказаться шустрее. Для всего остального, особенно для работы с базами данных и приложениями, требующими высокой производительности, WSL 2 будет лучшим решением благодаря своей современной архитектуре.
Теперь у тебя есть собственная тестовая среда, почти не отличающаяся от реального хостинга. Ты можешь спокойно создавать и отлаживать сайты, устанавливать CMS вроде WordPress и экспериментировать, не опасаясь что-то сломать в интернете. Это твой личный полигон для творчества и обучения.
Дальше всё в твоих руках. Осваивай настройки сервера, пробуй разные версии PHP, подключай другие базы данных. Этот локальный сервер — твой надежный фундамент для любых веб-проектов. Удачи в разработке!









