Win10 下 Laravel 开发方法一:WSL+Valet
我大概发现了两种Win10下正常开发的方法,各有所长,也各有所短。 我自己Windows系统是英文的,所有如果有那里不对,请务必告诉我。
WSL
WSL就是一个寄生于Win10的Linux系统,它有被砍的七七八八的Linux内核,和你放在上面的Distro容器。一般大家都是用Ubuntu,因为其他的Distro跑的不太完美。
WSL的大问题是,没有dbus,没有systemd , 而且不是随开机启动,也就是说你要开机开service,需要另外想办法。但是,毕竟还是Linux,所有Linux有的,它都有,所以PHP可以跑的比较顺。
安装WSL
怎么装啊?网上教程一箩筐, 都可以参考。我没有中文版的Win10,所以,步骤如下, 抄自: ,没截图:
Win10控制面板被藏住了,所以 Win+R
, 然后输入:control
- 需要到 控制面板\所有控制面板项\程序和功能 中选择 启用或者关闭Windows功能
- 找到 适用于Linux的Windows子系统 并勾选,然后 确定 选择 立即重新启动
1a. 或者,你找得到Powershell的话,右键点击powershell,以管理员身份启动 (求大神告诉我这个选项中文到底是什么),然后跑:Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
- 去Windows商店,搜索 Ubuntu, 然后安装上去。
ctrl+r
, 然后输入:ubuntu
, 等待安装完毕,如果看到卡了超过一分钟,按按enter键(嗯,自带terminal会卡)。
这里我必须要吐槽Windows10自带的两个Terminal,这都9102年了……所以,推荐大家安装 Hyper 或者 Terminus ,大家选个自己觉得好看的吧。虽然这俩都是英文的,但是Terminal,有没有中文真的无所谓。尤其是Hyper,配置就是个js文件。 不然,接下来的步骤等的时候无法喝茶,需要坐在电脑前面按回车。
等你的Ubuntu弄好了以后,切换到刚安装的Terminal,接下来的,装Valet,都是从这里翻译的 (我貌似改了一点?)
Windows 设置的先决条件
- 安装 Acrylic DNS Proxy.
- 下载 WSL Startup Scripts. (此步骤,我命名为步骤0)
WSL 设置
- 打开某个 terminal.
- 运行
sudo visudo
. - 把这两行加入(如果已经存在,就覆盖),如果不会vi,找到相应的行,按
i
,然后编辑,然后esc
>:wq'
> 回车:ALL ALL = (root) NOPASSWD: /usr/sbin/service
和username ALL=(ALL) NOPASSWD: ALL
- 运行
sudo add-apt-repository ppa:ondrej/php
. - 运行
sudo apt-get update && sudo apt-get upgrade
- 运行
sudo apt-get install network-manager libnss3-tools jq xsel build-essential libssl-dev dnsmasq nginx php-fpm php-cli php-mysql php-sqlite3 php-intl php-zip php-xml php-curl php-mbstring redis-server php-redis php-pear php7.2-dev pkg-config libz-dev libzip-dev libmemcached-dev libmemcached11 libmemcachedutil2 libmagickwand-dev imagemagick memcached mysql-server
如果需要装MariaDB
把上面的mysql-server
去掉,然后:
sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository "deb [arch=amd64,arm64,ppc64el] http://mariadb.mirror.liquidtelecom.com/repo/10.4/ubuntu $(lsb_release -cs) main"
sudo apt update && sudo apt -y install mariadb-server mariadb-client
MySql
mysql_secure_installation
无法正常运行,所以:
- 运行
sudo usermod -d /var/lib/mysql/ mysql
- 运行
sudo mysqladmin -u root -h localhost password examplepass
- 运行
sudo service mysql start
Node
- 运行
curl -sL https://deb.nodesource.com/setup_10.x -o nodesource_setup.sh
. - 运行
sudo bash nodesource_setup.sh
. - 运行
sudo apt-get install nodejs
.
Yarn
- 运行
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
. - 运行
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
. - 运行
sudo apt-get update && sudo apt-get install yarn
.
Composer
- 运行
wget https://getcomposer.org/installer
. - 运行
php installer
. - 运行
sudo mv composer.phar /usr/local/bin/composer
.
Valet WSL
- 运行
composer global require valeryan/valet-wsl
.
Bash Config
- 运行
vi ~/.bash_aliases
. - 运行
export PATH=~/.composer/vendor/bin:$PATH
. - 运行
source ~/.bashrc
.
Acrylic 设置 (回Windows)
- 在Windows内 , 按下 windows 键 ,输入 Acrylic, 打开 Acrylic UI
- 找到 Edit Acrylic Host File, 把
127.0.0.1 *.test
放到最后一行,并保存 - 菜单,找到Actions(第二个), 按 Restart Acrylic Service
Valet 设置 (WSL)
- 运行
valet install
. - 找到你Laravel目录, 然后运行
valet park
,valet link
. - 看好不好使,去Chrome 输入 folder.test. (此处folder是你目录的名字)
- 如果需要SSL,运行
valet secure
.
Valet 设置 (Windows)
ctrl+r
, 输入 C:/tools/valet/certs/, 双击 install_certs.cmd文件。这个会安装一个root ca,所以你可以用自己的cert- 去chrome试试https?
WSL 设置 (Windows内)
- 把你从步骤0下载到的文件放进: C:/tools/wsl-startup/.
- 调整你的 services.sh, 这个里面包括了你所有需要的服务
win+r
>taskschd.msc
, 建立一个新的任务,登录时运行 bash-start.vbs- 重启试试,你现在可以直接进入Chrome ,
设置 Cron
1 运行 sudo crontab -e
.
栗子
*/5 * * * * php /mnt/c/username/Projects/folder/artisan schedule:run >> /dev/null 2>&1
后言
这个方法,简单暴力,我觉得是蛮方便的,而且你想要多少格域名,就多少个域名。而且对于我这种Ubuntu小白,及其友好(Fedora里面Service没法用)。感觉和Linux原生差不多了。这里提几点:
- Composer,PHP, Artisan一定要在WSL内跑,千万不能用Windows跑,那个路径会冲突。
- Ubuntu进去,默认的目录,是你Windows用户目录,而非你的
home
目录。你的home
目录还在,你的ssh密匙,.bashrc什么的都在那里。 - 建议把项目放在Windows用户目录内(不然Windows 打开和读写有困难),建议目录改成区分大小写的,需要管理员权限运行 cmd ,然后
fsutil.exe file setCaseSensitiveInfo “C:\my folder” enable
, “C:\my folder” 改成你自己的目录。
下一篇,我们转战Docker。嘿嘿……
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: