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 协议》,转载必须注明作者和本文链接
推荐文章: