Make Windows normal again
An Overview of Developer Tools for Windows - Welldone Software - Medium
WSL Related
Linux’izing your Windows PC into a dev machine – Part 2 | cepa.io
Composer on WSL
https://www.jeffgeerling.com/blog/2018/installing-php-7-and-composer-on-windows-10 http://kizu514.com/blog/install-php7-and-composer-on-windows-10/ https://getcomposer.org/download/
MySQL on WSL
The mysql user folder is not set correctly by default and the server will complain about it when started (No directory, logging in with HOME=/). To fix, change the mysql user’s home directory to /var/lib/mysql:
sudo usermod -d /var/lib/mysql mysql
I had to add protocol=TCP in /etc/mysql/my.cnf
In my app living in WSL, changing the host from localhost to 127.0.0.1 in also helped.
# /etc/mysql/mysqld.conf.d/mysqld.conf
[client]
protocol=tcp
https://www.reddit.com/r/bashonubuntuonwindows/comments/78z18d/mariadb_server_on_wsl/
sudo add-apt-repository ppa:mysql-ubuntu/mariadb-10.1
sudo apt-get update
sudo apt-get install mariadb-server
grep socket -R /etc/mysql/
## /etc/mysql/mysql.conf.d/mysqld.cnf
Go to the file /etc/mysql/debian.cnf which has as the format:
[client]
host = localhost
user = debian-sys-maint
password = XXXXXXXX
socket = /var/run/mysqld/mysqld.sock
Take from there the password, that is randomly generated when installing MySQL (e.g. it differs between servers);
mysql -udebian-sys-maint -p02cShQo3PUHOFfzY
mysql -udebian-sys-maint -p02cShQo3PUHOFfzY --protocol TCP -h 127.0.0.1
[WSL 2] NIC Bridge mode 🖧 (Has Workaround🔨) · Issue #4150 · microsoft/WSL · GitHub
Find the IP address of your WLS2 Ubuntu host (use ifconfig) and connect to that IP using your Web browser.
sudo usermod -aG docker $USER
You will need to log out for this change to take effect.
Lando? wget https://github.com/lando/lando/releases/download/v3.0.0-rc.18/lando-v3.0.0-rc.18.deb
Multipass is WSL2 alternative
Multipass - Orchestrates virtual Ubuntu instances
That’s Ubuntu take on WSL2. Creating an instance is much slower, but much more things work (snaps without hacks). Is also supports cloud-init (as Hetzner Cloud and Exoscale also do). In essence, it is what Vagrant used to be.
multipass launch --name mpass
# or even without name
# enter the instance shell
multipass shell mpass
Working with Multipass instances
To be honest, Vagrant does do that. For sure, just like in theory KVM or Vmware can be used for that too. You can also set up a build farm and a Jenkins server to try to run “hello world”. The advantage of multipass is that to use it, all you have to do is:
snap install multipass
Snaps won’t work on WSL2
snaps don’t work on WSL2 as you need them for every command installed in that way!
The easiest way is to use snap (it is cross-distribution packager):
Using snapd in WSL2 - WSL2 - Ubuntu Community Hub Snapd on WSL2 (Insiders only for now) - snapd - snapcraft.io arkane-systems/genie: A quick way into a systemd “bottle” for WSL
sudo apt install -y daemonize
# this must be done on reboot
sudo daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target
# this must be done on every login to WSL
exec sudo nsenter -t $(pidof systemd) -a su - $LOGNAME
snap version
sudo snap install kubectl --classic
Compiling kernel on WSL2 is easy: k3s on WSL2
How to register JetBrains PhpStorm
- Add the line
0.0.0.0 account.jetbrains.com
tohosts
file - Enter activation key (mine worked from https://gist.github.com/MartirosyanMurad/54029eff68f02b31fcf5fc3e77635c3c#gistcomment-3037948)
- We can host our own jetbrains-license-server
Use PhpStorm for WordPress Development
Installing Windows Subsystem For Linux For Web Development On Windows