【原创】Windows10+WSL配置本地PHP测试环境
为什么?
我为什么要这样做
为什么不直接在win环境下搭建呢?
个人原因有一下两点
php的某些功能只有在linux下才能更好的体现,比如
Workerman
下的GatewayWorker
我自己办公的电脑是综合性的,也就是我的工作不仅仅是开发,还有其他工作需要处理,以及还有前端的事情需要处理,这个时候,我根本不需要web、php、mysql这样的需求,我就不想让他启动(强迫症吧)。
为什么不用虚拟机呢?
自己做过尝试,文件没法直接编辑啊,通过网络虚拟挂盘的方式页都测试过,不是太方便。
WSL基本需求
首先确保你的系统支持wsl,具体安装不在这里坳述。
另外通过命令行+系统名可以直接进入wsl
如:cmd
命令行下执行debian
直接进入debian
的wsl
命令行直接通过wsl
启动当前已安装的子系统
初始配置环境,以debian为例子
以root权限运行
进入wsl,输入以下指令,输入三次密码,第一次当前用户的密码,第二次root
权限密码,第三次root
权限二次确认密码
sudo passwd
然后执行su
,输入刚才设定root
密码就进入root
权限了
wsl默认进入root权限
debian config --default-user root
如果是ubuntu
系统那么前面的debian
换成ubuntu
或者ubuntu2004
环境配置,BT面板
debian
默认没有安装wget
,所以需要先安装wget
切换deb源
文件在/etc/apt/sources.list
,
windows下面大概是在:C:\Users\用户\AppData\Local\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs\etc\apt
将/etc/apt/sources.list
文件内容修改为:
deb http://mirrors.163.com/debian/ buster main non-free contrib
deb http://mirrors.163.com/debian/ buster-updates main non-free contrib
# deb http://mirrors.163.com/debian/ buster-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ buster main non-free contrib
# deb-src http://mirrors.163.com/debian/ buster-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ buster-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ buster/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ buster/updates main non-free contrib
# deb http://deb.debian.org/debian buster main
# deb http://deb.debian.org/debian buster-updates main
# deb http://security.debian.org/debian-security/ buster/updates main
# deb http://ftp.debian.org/debian buster-backports main
然后运行命令
sudo apt update
基本组件wget和curl安装
sudo apt-get install wget
sudo apt-get install curl
目录配置
BT面板默认安装目录是/www
为了操作方便,咱们来做一个软连接,我E:\linux
作为/www
的主目录,那么就执行以下指令
WSL下,/mnt
里面是本地磁盘,字母对应Windows下的对应盘符
ln -s /mnt/e/linux /www
BT安装
curl -sSO http://download.bt.cn/install/install_panel.sh && bash install_panel.sh
一路默认下来,然后进入BT面板进行环境设置,我选择的是:nignx 1.20
+php 7.4
+mysql 5.6
,其他的能不多装就不多装。
wsl环境下,网络访问和本机一样,因此可以通过:http://127.0.0.1:8888
进入BT面板,其他的也是一样。
其他设置
网站目录和备份目录的问题,既然知道了/mnt
下面是本地磁盘,那么其他的就自由发挥想想吧。
使用以及启动
重启后wsl中的各项服务是没有启动的,所以呵呵~美啦
根据各种情况来启动服务,先建立2个快捷方式
nginx快捷方式
ln -s /etc/init.d/nginx /usr/bin/httpd
mysql快捷方式
ln -s /etc/init.d/mysqld /usr/bin
启动BT面板,经过测试,必须启动bt面板,web访问才能正常
bt start
启动nignx
httpd start
启动mysql
mysqld start
常见问题
第一次安装完成后,添加的网站,访问的时候必然提示503服务器内部错误,电脑重启下通过以上几个命令重启服务即可。初步判断应该是权限的问题。
其他疑惑
Q:WSL窗口关掉后,服务是否正常
A:正常
Q:关于性能
A:经过实际开发测试,作为服务来说,性能严重不足,php+mysql经常相应超时。所以选择这个模式的时候慎重