参考链接: C quick_exit()
WSL 是 Windows Subsystem for Linux 的简称, 可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生虚拟机开销。
安装 WSL
1.开启 WSL
首先需要使用管理员权限打开 PowerShell 执行如下命令
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
或者在程序和功能选打开 适用于 Linux 的 Windows 子系统
出现提示时,重启计算机。
2.下载 Linux 发行版
直接参考 WSL安装指南 使用 Microsoft Store 安装的方法无法将 Linux 安装到系统盘之外的分区,这里使用的是 手动下载 的方法。
单击以下链接下载您喜欢的 Linux 的发行版,这里选的是 Ubuntu 20.04
Ubuntu 20.04 LTSUbuntu 18.04 LTSDebian GNU/LinuxFedora Remix for WSLAlpine WSL
3.安装 Linux 发行版
使用 7-ZIP 或者其他工具解压下载的 appx 文件 ( 比如解压到 D:WSLUbuntu ) 然后运行 ubuntu2004.exe 需要等待一两分钟时间来完成安装,安装完成后,系统会提示创建新的用户帐户(及其密码)。
如果需要使用 root 默认登录可以运行
ubuntu2004.exe config --default-user root
4.配置 apt 国内源
sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
# 更新源
apt-get update
5.设置系统语言为中文
# 安装中文支持
apt-get install -y language-pack-zh-hans
# 设置默认语言
update-locale LANG=zh_CN.UTF-8
配置开发环境
以下部分只选择自己需要的项目配置即可
1.配置服务自启动
编辑 vim /etc/init.wsl 文件添加如下内容
#! /bin/sh
# Filename: /etc/init.wsl
# Usage: /etc/init.wsl [start|stop|restart]
service dbus start
开始 -> 运行 中输入 regedit 回车打开注册表编辑器 定位到 计算机HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun 后新建一个 REG_SZ 类型的值,名称随意,数值数据填写以下内容
mshta vbscript:CreateObject("WScript.Shell").Run("wsl -d Ubuntu-20.04 -u root bash /etc/init.wsl",0,TRUE)(window.close)
以后就可以向 /etc/init.wsl 追加服务,实现开启自启动了
2.安装 golang 环境
# 安装必要依赖
apt-get install -y git cmake
# 下载并解压
curl -o- https://dl.google.com/go/go1.14.4.linux-amd64.tar.gz | tar zxf - -C /usr/local
# 修改 git 默认编辑器为 vim
git config --global core.editor vim
# 配置环境变量
cat >> /etc/profile.d/golang.sh << EOF
export GOPROXY=https://goproxy.cn,direct
export GOPATH=/opt/golang
export PATH=$PATH:$GOPATH/bin:/usr/local/go/bin
EOF
安装 redis postgres 数据库
apt-get install -y redis-server postgresql unzip
# 数据库初始化
pg_createcluster 12 main start
# 服务启动
service postgresql start
# 修改数据库密码
su postgres -c psql
postgres=# password
数据库备份还原
export PGPASSWORD=123456
# 导出
pg_dumpall -h 127.0.0.1 -U postgres -O -x -c --inserts --if-exists -f db.sql
# 导入
psql -h 127.0.0.1 -U postgres db.sql
安装 consul 服务
curl -o consul.zip https://releases.hashicorp.com/consul/1.8.0/consul_1.8.0_linux_amd64.zip
unzip -d /usr/local/bin consul.zip
编辑服务脚本 /etc/init.d/consul
#!/bin/sh
# Quick start-stop-daemon example, derived from Debian /etc/init.d/ssh
set -e
# Must be a valid filename
NAME=consul
PIDFILE=/var/run/$NAME.pid
#This is the command to be run, give the full pathname
DAEMON=/usr/local/bin/$NAME
DAEMON_ARGS="agent -server -bootstrap-expect=1 -bind=127.0.0.1 -data-dir=/opt/consul -ui -log-file=/var/log/$NAME"
case "$1" in
start)
echo -n "Starting daemon: "$NAME
start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS
echo "."
;;
stop)
echo -n "Stopping daemon: "$NAME
start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
echo "."
;;
restart)
echo -n "Restarting daemon: "$NAME
start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $PIDFILE
start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS
echo "."
;;
*)
echo "Usage: "$1" {start|stop|restart}"
exit 1
esac
exit 0
3.安装 nodejs 环境
# 安装 Node Version Manager
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.1/install.sh | bash
# 安装 v10 的 Node
source ~/.bashrc
nvm install 10
# 解决 npm install 失败的问题
npm config set unsafe-perm=true
4.安装 nginx php 环境
# 安装
apt-get install -y nginx php-fpm
# 启动 fpm
service php7.4-fpm start
# 启动 nginx
service nginx start
# 编辑 nginx 配置
vim /etc/nginx/sites-available/default
配置添加如下内容
location ~ .*.php(/.*)*$ {
include snippets/fastcgi-php.conf;
# 设置监听端口
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
# 用于伪静态
if (-f $request_filename/index.html) {
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php) {
rewrite (.*) $1/index.php;
}
if (!-f $request_filename) {
rewrite (.*) /index.php;
}
卸载 WSL
cmd 下输入 wslconfig /l,可以看到所有已安装的发行版
rem 卸载删除wsl
wslconfig /u <DistributionName>