Если вы разрабатываете сайты, используя на своем компьютере операционную систему Windows 10, то данная статья будет вам очень полезна, в ней вы узнаете как сделать так, чтобы ваши локальные проекты работали на подсистеме Ubuntu и тоже время запускались в любом браузере Windows 10, также вы сможете использовать свою привычную IDE для написания кода. Не так давно в Microsoft Store появилось приложение Ubuntu, которое позволяет вам использовать терминал и запускать утилиты командной строки, следуя из этого, мы имеем возможность установить все необходимое для настройки веб-сервера на своем ПК.
Преимуществом такого подхода является скорость работы сайтов, удобство конфигурации сервера, а также, то что ваша локальная версия сайта будет работать на той же операционной системе что и основной, это избавит вас от неожиданностей которые появляются из за разницы поведения некоторых функций в PHP на различных ОС. Особенно разницу почувствуют Битрикс разработчики, так как на Виндовс, сайты данной cms работают очень медленно.
Теперь давайте приступим к установке подсистемы Ubuntu.
Первым делом нужно на панели задач в поиске набрать “Включение или отключение компонентов Windows”, кликнуть на нужный результат поиска и в появившемся окне отметить пункт “Подсистема Windows для Linux”, после перезагрузите компьютер
Далее запускаем программу Microsoft Store, затем в списке приложений ищем Ubuntu, устанавливаем и запускаем его.
В открывшемся терминале задаем имя нового пользователя системы и пароль, к примеру пользователь web с паролем 123456 после этого можем приступать к настройке.
Обновим Ubuntu
sudo apt update sudo apt upgrade
Скачиваем все необходимые модули
sudo apt install php libapache2-mod-php php-mysql php-xml php-curl php-gd php-mbstring php-zip php-tokenizer php-json php-common mysql-server sendmail
Запустим Apache и MySQL
sudo service apache2 start sudo service mysql start
включим модуль mod rewrite
sudo a2enmod rewrite
Перейдем к настройке базы данных
Авторизуемся и изменим настройки аутентификации, эта настройка нужна если используете Битрикс, если нет, то пропустите
sudo mysql -uroot -p ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ''; FLUSH PRIVILEGES;
После того как установили все необходимые модули нужно произвести настройку установленного софта и добавить сайт.
Файлы Ubuntu находятся примерно по этому пути
C:\Users\UserName\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
Первым делом настроим PHP, ниже приведен конфиг для оптимальный для 1С-Битрикс, если вы его не используете, не прописывайте значения для mbstring
\etc\php\7.2\apache2\php.ini
mbstring.func_overload = 2 mbstring.internal_encoding = UTF-8 short_open_tag = On max_input_vars = 10000 memory_limit = 1000M display_errors = On date.timezone = Europe/Moscow opcache.revalidate_freq=0 post_max_size = 10M upload_max_filesize = 10M
Если вы используете битрикс, тогда необходимо изменить параметр sql_mode в конфиге MySQL
Добавьте следующие параметры в файл /etc/mysql/my.cnf
[mysqld] sql_mode = ''
Зададим права доступа на этот файл настойки
sudo chmod 0644 /etc/mysql/my.cnf
Для удобства сделаем так, чтобы при открытии терминала запускались PHP и MySQl
Создадим скрипт запуска в файле /usr/bin/start_bash.sh
Добавим туда следующее содержимое, где 123456 это пароль от вашего пользователя Ubuntu, поменяйте его свой
#!/bin/bash echo 123456 | sudo -S sudo service apache2 start echo 123456 | sudo -S sudo service mysql start
Затем в конец файла \home\username\.bashrc подключим созданный нами bash скрипт
добавим строку в самый конец
/usr/bin/start_bash.shи пропишем в терминале права доступа
sudo chmod 777 /home/username/.bashrc
После того как все настройки веб-сервера выполнены, давайте создадим папку нашего сайта и добавим его на сервер.
К примеру положим его на диск D нашей Windows: D:\WebProjects\sample.loc\public_html
Создайте файл конфигурации для нашего проекта: /etc/apache2/sites-available/sample.loc.conf
<VirtualHost *:80> ServerAdmin mail@sample.loc ServerName sample.loc ServerAlias www.sample.loc DocumentRoot /mnt/d/WebProjects/sample.loc/public_html/ <Directory /mnt/d/WebProjects/sample.loc/public_html/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Затем перейдем в терминал и включим сайт
sudo a2ensite sample.loc.conf
Так же необходимо добавить домен сайта в файл hosts
C:\Windows\System32\drivers\etc
127.0.0.1 sample.loc
Перезапустим веб-сервер apache и MySql
sudo service mysql restart sudo service apache2 restart
После этих действий идем в свой любимый браузер и с адресной строки переходим на наш сайт http://sample.loc
Вот и все, только что мы подняли веб-окружение для быстрой и комфортной разработки на локальном компьютере