Я профессионально занимаюсь разработкой PHP почти последние 10 лет. Я также был пользователем Windows почти всегда. В совокупности это был не самый лучший опыт, так как, когда дело доходит до запуска локального веб-сервера, опыт всегда не был превосходным. Нюансы, такие как окончания строк Windows, всегда вызывают проблемы. Я пытался переключиться на Linux, но графический интерфейс всегда казался мне недостаточным. Я никогда не был поклонником Маркоса, но инструменты, которыми они располагают, такие как Laravel Valet, несколько раз заставляли меня ревновать. К счастью, в настоящее время в Win10 есть WSL2, который меняет правила игры.
В этом руководстве объясняются шаги по настройке среды PHP для локальной разработки с использованием Laravel/Linux и ужесточению инструментов извлечения в Docker.
WSL2 (ВСЛ2)
Прежде всего, вам нужно будет настроить WSL (подсистема Windows для Linux) на вашем компьютере, если вы еще этого не сделали. Официальное руководство для этого можно найти здесь
В то время как используемый дистрибутив Linux является чисто личным предпочтением, я использовал Ubuntu, поскольку он очень широко используется и всегда имеет хорошую документацию/результаты поиска по любым вопросам в Интернете.
Хотя большая часть среды будет настроена на WSL с помощью Laravel Valet, она не настраивает механизм базы данных автоматически, чтобы пользователи могли выбирать свои собственные предпочтения. По этой причине мы будем использовать Затяните вынос для настройки любых необходимых движков, таких как база данных/кэш/поиск и т.д.
Докер
Прежде всего, если у вас не установлен docker – это простой процесс установки для начала. После настройки docker вы хотите проверить и убедиться, что docker использует контейнеры WSL – руководство по проверке и настройке можно найти здесь
Настройка среды
Теперь, когда у нас установлены предварительные условия, мы можем настроить среду.
Обновление списков пакетов
sudo apt-get update
Установите php, его модули и распакуйте в системе
sudo apt install unzip php php-cli php-fpm php-json php-intl php-common php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath -yqq
Если вам нужен какой-либо другой модуль, вы можете установить его с помощью команды sudo apt install php-module . Если вам требуется определенная версия php или версия модуля php, вы можете использовать формат php7.4 php7.4-zip .
Установить композитор
curl -sS https://getcomposer.org/installer | php \
&& sudo mv composer.phar /usr/local/bin/ \
&& sudo ln -s /usr/local/bin/composer.phar /usr/local/bin/composer
Приготовьтесь к Ларавелю.
У нас есть несколько дополнительных зависимостей для установки:
sudo apt-get install network-manager libnss3-tools jq xsel
Также отредактируйте /etc/wsl.conf , чтобы добавить следующие строки. Это необходимо, так как WSL обычно воссоздает файл /etc/resolv.conf при его запуске. Добавление этой строки в wssconfig предотвратит перезапись файла , если файл не является символической ссылкой
[network] generateResolvConf=false
Установите Laravel Valet Linux и затяните вынос
composer global require cpriego/valet-linux tightenco/takeout
Мы также хотим убедиться, что мы можем использовать такие команды, как valet или вывод без указания пути, поэтому мы хотим убедиться, что путь к этим двоичным файлам зарегистрирован как часть системной переменной PATH. Это можно добавить, обновив файл ~/.bashrc , добавив путь к глобальному пути composer bin.
export PATH=~/.config/composer/vendor/bin:$PATH
После обновления файла вы можете перезагрузить оболочку bash для загрузки нового пути, выполнив команду source ~/.башрк
Теперь мы можем установить Valet.
valet install
Это позволит настроить Laravel Valet на устройстве. Valet изменяет файл /etc/resolv.conf на символическую ссылку, которая будет сброшена после перезагрузки WLS, даже при редактировании файла wsl.conf, если мы оставим его в качестве символической ссылки. В связи с этим рекомендуется скопировать конфигурацию разрешения камердинера.
sudo unlink /etc/resolv.conf sudo cp /opt/valet-linux/valet-dns /etc/resolv.conf
Проблема, которую я также заметил, заключается в том, что valet linux не включает конфигурацию DNS по умолчанию, что может вызвать проблемы с доступом к чему-либо в Интернете из wsl (включая установки композитора, пинг и другие действия). В связи с этим рекомендуется добавить файл /opt/valet-linux/dns-серверы и указать в нем следующее
nameserver 1.1.1.1
1.1.1.1 является DNS-сервером Cloudflare, если вы не хотите его использовать, вы можете использовать 8.8.8.8 для Google DNS или любой другой альтернативы.
Запуск Услуг
слуга
Теперь все должно быть настроено, и вы сможете приступить к работе с помощью команды valet start . По личному опыту я заметил, что php-fpm в ubuntu, как правило, не запускается с valet linux, и мне еще предстоит выяснить, почему, но это можно обойти, запустив службу sudo php7.4-запуск fpm (или ваша версия php) после запуска valet.
Парковщик также требует, чтобы вы припарковали каталог, чтобы определить, где искать сайты. Запустите valet park в каталоге, в котором вы размещаете свои проекты.
На вынос
Запуск включить вынос должен вызвать меню, позволяющее включить определенную службу – mysql, postgres, redis, elasticsearch и т.д. При их включении будет создан контейнер docker, который будет использоваться для управления службой. Уже настроенные службы можно увидеть запущенными список выноса и запущенными/остановленными идентификатор КОНТЕЙНЕРА для начала выноса и вынимаем идентификатор КОНТЕЙНЕРА остановки
NB Службы доступны на 127.0.0.1, а не на локальном хосте, поэтому убедитесь, что вы обновили переменные среды, чтобы отразить это.
Дополнительный
Дополнительный
Node.js не будет установлен по умолчанию, для этого вы можете запустить установку. Я также включил npm, однако yarn также является популярным менеджером пакетов, который можно использовать в качестве альтернативы npm.
sudo apt install nodejs npm
Я бы рекомендовал установить NVM (диспетчер версий узлов) поскольку это позволяет легко переключаться между версиями узлов, что может пригодиться, если вам нужно поддерживать некоторые устаревшие проекты. Это также может упростить обновление при выпуске новой версии
Маршрутизация запросов/DNS
Последнее, что нужно для работы сайтов, – это добавить записи dns для вашего локального компьютера, чтобы перенаправить сайт на 127.0.0.1. Обычно это делается в C:/Windows/System32/drivers/etc/hosts файл, в котором вы указываете имя домена и его IP-адрес
127.0.0.1 mysite.test
Это относительно большая неудача, если сравнивать ее с простотой использования в linux/macos, где возможна маршрутизация DNS по шаблону, поскольку для этого требуется управлять каждым сайтом индивидуально. Однако существует потенциальный обходной путь, если вы используете Chrome в качестве веб-браузера для разработки. Согласно спецификации IETF *.локальный хост
valet domain localhost
Оригинал: “https://dev.to/mafx/php-development-on-win10-through-wsl2-laravel-valet-and-tighten-takeout-5en8”