みなさん、こんにちは。私が働いているコンバージェントでは、プロジェクトチームに複数の開発者が含まれることがよくあります。彼らはバックエンド、フロントエンド、レイアウトのスペシャリストです。プロジェクトはほとんどの場合PHPで開発されるため、データベースや全文検索システムなどのさまざまな外部機関に依存することになります。そして、ここには大きな問題があります。Web開発の基礎であるLinuxで作業している同僚は問題がありません。一方、Windowsユーザーは頭痛の種になっています。
この問題を解決する方法は?当社では、いくつかのオプションを使用しています。この記事では、私たちの開発を共有することにしました。
オプション1。OSPanelやXAMPPなどの既製のツールセット。ほとんどMySQLのみを使用するほとんどのYiiプロジェクトでは、これらは非常に優れたソリューションです。
2番目のオプションはDockerです。これは、レガシープロジェクトを含む展開の自動化に最適です。しかし、これは世話をする必要があります。現在、WSL 2のリリースにより、Windows 10(Home Editionを含む)でのDockerの操作が以前よりもはるかに便利になりました。Habréにはこれに関する多くの記事があります。
3番目のオプションは、Linuxを2番目のシステムに配置することです。これはかなり骨の折れるプロセスなので、仮想化および自動化ツールVirtualBox、Vagrant、Ansibleを使用して自動化しました。
GitHub . :
Ubuntu 20.04 . , , Ubuntu, .
Ansible (Git, Ansible, NVM, PHP, MC, Docker, Docker Compose, PhpStorm, Visual Code, DBeaver Community Edition). Ansible.
VirtualBox Vagrant. — . BIOS/UEFI, - (, VT).
PowerShell Git :
git clone https://github.com/s-mokrushin/ubuntu-development-box
cd ubuntu-development-box
cp .env.example .env
— .env . , Ubuntu 16 .
BOX_CPU_COUNT — . = / 2. — 4. — 1.
BOX_MEMORY_SIZE — . = / 2. — 8096. — 2048.
BOX_DISK_SIZE — . — 75GB. , ( 12 ).
BOX_IP_ADDRESS — IP- . .
BOX_HOSTNAME — . .
. . Git, SSH, id_rsa. Ansible /home/vagrant/.ssh.
:
vagrant up
Vagrant , vagrant up . . , .
Ansible, vagrant provision ( vagrant up — provision, ).
Ansible. , “ Ansible, 3 .” “ Ansible”. .
Linux , Windows 10. , , , Ansible Vagrant , .
, . - , .
OSPanel — - Windows ( MongoDB, Redis . .).
XAMPP — Apache + MariaDB + PHP + Perl Windows.
Ansibleは構成管理システムです。
VirtualBoxは、ワークステーションで最も人気のあるオペレーティングシステム仮想化システムです。
Vagrantは、仮想環境を構成するためのツールです。