Windows 10, Установка локального веб-сервера (Apache, MySQL, PHP) в Wsl 1 и Wsl 2.

Хотите запустить веб-сервер на своем компьютере с Windows 10, но не хотите возиться с настройкой всего вручную или ставить громоздкие пакеты вроде Denwer? Есть отличный и современный способ. Вы можете использовать подсистему Windows для Linux (WSL), чтобы развернуть полноценную среду для веб-разработки прямо у себя на машине.

WSL позволяет запускать среду Linux, не покидая Windows. Это идеальный вариант для установки связки Apache, MySQL и PHP. Вы получаете все преимущества и гибкость настоящего сервера, но работаете в привычной для вас операционной системе. Мы рассмотрим, как это сделать в обеих версиях подсистемы — WSL 1 и WSL 2.

Этот подход отлично подходит для локальной разработки сайтов, тестирования скриптов или изучения веб-технологий. Всё будет работать изолированно на вашем компьютере, не мешая основной системе, и вам не понадобится для этого создавать виртуальную машину или переустанавливать ОС.

Включение подсистемы 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, подключай другие базы данных. Этот локальный сервер — твой надежный фундамент для любых веб-проектов. Удачи в разработке!

Какую функцию вы считаете самой важной в новом смартфоне?
Поделиться с друзьями
Александра Тихонова

Я работаю консультантом по информационной безопасности. Увлекаюсь всем, что связано с защитой данных и интернет-безопасностью. На этом сайте я рассказываю о том, как защитить себя и свои устройства от киберугроз и как обезопасить свою цифровую жизнь.

Оцените автора
Appliances-News.com
Добавить комментарий