windows 10下搭建php开发环境
WSL正式版
随2017年秋季的Windows 10 Creators Update版发布,WSL,即Windows Subsystem for Linux摘掉了Beta的帽子。
WSL是直接以原生子系统的方式运行Linux(正如win32也是windows的子系统),这相对于虚拟化的方式运行Linux可以有更好的性能,以及更方便的交互:
- Linux子系统与windows共享IP
- Linux里面可以直接以
/mnt/c
的路径访问windows c盘下的所有文件 - Windows与Linux间直接使用unix socket通讯
简单的说,就是直接以原生的方式同时无缝使用Windows跟Linux两套系统。
安装
WSL的安装与启用这里就不累述了,Creators Update发布后,基本上就是去Windows Store
找ubuntu,点安装这事就结了。
![](https://img.haomeiwen.com/i43621/3496c3090e4c57d1.png)
当然,除了Ubuntu 16.04 / 18.04,它也支持Debian、SUSE等。
php
安装好ubuntu后,nginx、php的安装也就是一路apt-get install
即可:
sudo apt-get update
sudo apt-get install nginx
sudo apt-get install php-fpm php-mysql
具体可以参考这里
要注意的是,WSL目前的版本似乎对Unix Socket
的支持似乎还是有bug,需要关闭 fastcgi_buffering
,即添加:
fastcgi_buffering off;
至nginx.conf
文件中http
环节。
(定位这个bug,折腾了我一整个下午。 >_< )
为什么要使用WSL呢?
我不推荐使用各种windows版的apache、php甚至mysql等去搭建开发环境,因为这与一般的生产环境不一致。
工程师应该使用跟生产环境尽可能一致的环境去做开发,以方便了解自己的程序在服务器上的是怎么部署的。
像上面提到的fastcgi_buffering
参数,在压测的时候,肯定是会对性能有影响;了解其存在,便可以对性能进行调优;并且这样的调优,跟生产环境一致,便可以跟运维的童鞋有更多的共同语言。
传统上,我们会需要使用虚拟机去达到这样的目的;而现在,在windows 10
上,我们可以有WSL这样更快更方便的选择。
因为WSL可以直接访问windows的硬盘,我们还可以直接把nginx网站的root
配置为/mnt/c/Users/....
等路径,以使用windows下各种成熟的IDE、编辑器去管理、修改代码。
WSL带来的开发体验,已经可以超过mac了。 :)