Below the cut is a small note about how you can set up a convenient environment for working with PHP, xdebug through Windows Subsystem For Linux 2 (WSL 2).
First, a little history
I have lived in the world of Ubuntu for a very long time - it is extremely pleasant to write in PHP, NodeJS, GoLang on the same system on which everything will run. But, unfortunately, having a managerial position leads to the fact that you have to use a lot of software that works only on Windows.
" SSH". PhpStorm, ssh Ubuntu â .
â :) 100500 Phpstorm dell e7390:) , sftp.
WSL2 (http://habr.com/ru/news/t/516054) .
WSL Windows . Microsoft
PowerShell wsl Linux, Windows
Ubuntu:
sudo apt update
sudo apt upgrade
sudo apt install apache2
sudo apt install php libapache2-mod-php php-mysql php-xml php-curl
sudo a2enmod rewrite
/mnt/d/work/projects/__
. , , Linux, . , , .
( ), , php Linux, NTFS . .
- WSL .
/home/user/projects
- ( GIT).
/home/user/projects/test
-
\\wsl$\Ubuntu
"Ubuntu" â .\\wsl$
- PhpStorm
- ( , xdebug)
- Automatic upload
- WSL
â . = . . , rsync , . , â :)
Apache, . , , php-fpm nginx â .
xdebug
xdebug . .
xdebug
sudo apt-get php-xdebug
sudo nano /etc/php/7.2/mods-available/xdebug.ini
zend_extension=xdebug.so xdebug.remote_enable=true xdebug.remote_host=wsl.host xdebug.remote_port=9002 xdebug.profiler_enable=1 xdebug.profiler_output_dir=/tmp xdebug.remote_autostart=on xdebug.idekey=PHPSTORM xdebug.remote_log=/tmp/xdebug.log
apache
sudo service apache2 restart
xdebug . /etc/hosts
wsl.host
. IP , windows.
, , xdebug.remote_host=127.0.0.1
, WSL , 127.0.0.1 linux linux, windows. , PhpStorm :)
-
github C# , Windows . , - Windows .
"" bash , IP /etc/hosts
linux WSL â github.
. " ", systemd rc.local wsl . , .
wsl , /etc/hosts
wsl.host
linux windows. - , .
wsl , â cat /etc/hosts
- :
172.26.64.1 wsl.host
xdebug PhpStorm Windows
WSL PhpStorm
File->Settings->Languages & Framework->PHP
"From Docker, Vagrant, VM, WSL, Remote"
WSL
, xdebug
File->Settings->Languages & Framework->PHP->Debug
, WSL ( 9002, 9000)
advanced "Pass required configuration options.."
, â wsl.host
127.0.0.1
.
, .. HTTP ini .
â .
- breakpoint index.php
- ,
-
Php Script
,
Thus, having sifted through several different sources, articles, gists, I came to an "almost ideal" working environment when working with PHP. If there is anything that can be improved / improved, write in the comments or in any other way of contacting me .