WSL 2を介したWin 10、Laravel ValetおよびTeltenの取り出しに関するPHP開発


私はPHPの開発を専門的に行ってきました.私は、ずっとずっとずっとWindowsユーザーでした.それは経験が常にされていないローカルのWebサーバーを実行することになるとして最大の経験をされていない一緒に入れてください.Windowsの行のようなニュアンスは常に問題を引き起こす.私はLinuxに切り替えようとしました、しかし、GUIは常にそれが欠けたように感じました.私はMacosのファンではありませんでした、しかし、彼らがララベルValetのようなツールが私に公正な何度も嫉妬しました.ありがたいことにWin 10は、今日のゲームチェンジャーですWSL 2があります.
このガイドでは、Laravel Valet Linuxを使用してローカル開発のためのPHP環境を設定する方法と、Docker上でのテーピングアウトツールを説明します.

WSL 2
まず最初に、あなたがすでにこれをしないならば、あなたはWSL(WindowsのためのWindowsサブシステム)をあなたのマシンにセットアップする必要があります.これを行うための公式ガイドはhere
それは非常に広く使用され、常にWeb上の任意の問題のための良いドキュメント/検索結果を持っているとして使用されるLinuxのディストリビューションは、私はUbuntuを使用している純粋に個人的な好みです.
環境の大部分は、Laravel ValetでWSL上で設定されますが、ユーザーが自分の好みを選択できるようにデータベースエンジンを自動的にセットアップしません.このため、我々は使用されますTighten Takout データベース/キャッシュ/検索などの任意の必要なエンジンを設定します.

ドック
あなたがDockerをインストールしないならば、まず第一にsimple install process 始める.Dockerを設定した後にチェックして、dockerがWSLコンテナを使用していることを確認しますhere

環境設定
我々はあらかじめインストールされているので、環境を設定することができます.

パッケージリストの更新
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が通常再作成するとき、これはnescessaryです/etc/resolv.conf ファイルを起動します.WSL設定でこの行を追加すると、ファイルがシンボリックリンクでない限り、ファイルを再書き込みするのを防ぎます
[network]
generateResolvConf=false

Laravel Valet Linuxをインストールします
composer global require cpriego/valet-linux tightenco/takeout
また、コマンドを使用できるようにしたいvalet or takeout パスを指定せずに、これらのバイナリへのパスがシステムパス変数の一部として登録されていることを確認します.これは、~/.bashrc グローバルな作曲者ビン経路への経路を加えることによるファイル.
export PATH=~/.config/composer/vendor/bin:$PATH
一旦ファイルが更新されるならば、あなたは走ることによってロードされる新しい経路のためにbashシェルを再ロードすることができますsource ~/.bashrcこれでVALETをインストールできます.
valet install
これはデバイス上でlaravel valetを設定します.ヴァレットは/etc/resolv.conf WSLが再起動された後にリセットされるシンボリックリンクへのファイル.confファイルを編集します.このため、valet resolv configをコピーすることを推奨します.
sudo unlink /etc/resolv.conf
sudo cp /opt/valet-linux/valet-dns /etc/resolv.conf
私が気づいた問題は、VALET LinuxにはデフォルトのDNSコンフィグを含んでいないということです.これはWSLからのWeb上でのアクセスに問題が生じる可能性があります.このため、追加することをお勧めします/opt/valet-linux/dns-servers ファイルとそれに続く
nameserver 1.1.1.1
1.1.1.1 を使用することはできません8.8.8.8 Google DNSまたは他のどんな代替のためにでも.

サービスの開始


今すぐすべてを設定する必要がありますし、物事を得ることができる必要がありますvalet start コマンド.個人的な経験では、私はUbuntuのPHP FPMがValet Linuxで始まっていないことに気がつきました、そして、私はまだ理由を理解していませんsudo service php7.4-fpm start (または、PHPのバージョン)
valetまた、サイトを探す場所を識別するディレクトリを駐車する必要があります.ランvalet park あなたのプロジェクトを見つけているディレクトリで.

持ち帰り
走るtakout enable MySQL、Postgres、Redis、AnalySearch等を有効にするためのメニューを作成する必要があります.これらを有効にすると、サービスを管理するために使用されるDockerコンテナを設定できます.既に設定されているサービスを実行することができますtakeout list を実行してtakeout start CONTAINER_ID and takeout stop CONTAINER_IDNBサービスは127.0.0.1ではlocalhostではありませんので、これを反映するために環境変数を更新してください.

追加

ノード.js
ノード.デフォルトではJSはインストールされません.私もNPMを含みました、しかし、糸はNPMに代わるものとして使われることができる人気のあるパッケージマネージャーです.
sudo apt install nodejs npm
インストールをおすすめしますNVM (node version manager) として簡単にいくつかのレガシープロジェクトをサポートする必要がある場合に便利かもしれないノードのバージョン間で切り替えることができます.また、それは簡単に新しいバージョンがリリースされるときにアップグレードすることができる

リクエストルーティング/dns
サイトの作業を取得する最後のものは、127.0.0.1にサイトをルートにローカルPCのDNSエントリを追加する要件です.これは通常C:/Windows/System32/drivers/etc/hosts ドメイン名とそのIPアドレスを指定するファイル
127.0.0.1 mysite.test
これは、個々のサイトを個別に管理する必要があるので、ワイルドカードDNSルーティングが可能であるLinux/MacOSのVALETの使いやすさと比較すると、比較的大きなセットバックです.
しかし、開発WebブラウザとしてChromeを使用している場合は、潜在的な回避策があります.につきIETF specification *.localhost TLDはループバックドメインであることを概説し、127.0.0.1に戻るべきです.しかしながら、これはWebブラウザ会社が実装し、混合結果があるためです.私自身のテストから、私はChromeがこの機能をサポートしているのを見つけました、他のブラウザー(Firefox/EDGE)がこれをしない間.したがって、主にこのブラウザで動作する場合は、VALETドメインをlocalhostに切り替えることができ、手動でDNSエントリを追加する必要がなくなります.
valet domain localhost