Wsl debian mediawiki experience

From 清冽之泉
Jump to navigation Jump to search

总体体验:迅如闪电。

安装

  • UEFI 中开启虚拟化支持
  • 控制面板中打开 Hyper-V 和 WSL
  • Powershell 中: wsl --install -d Debian 即可成功安装 WSL Debian
  • 想用 WSL 2,需要安装一个 wsl_update_x64.msi 去更新 WSL 的内核。运行 wsl --set-version Debian 2 会获取到 wsl_update_x64.msi 的下载地址
  • 最后, wsl --set-version Debian 2 即可使用 WSL 2 下的 Debian 了
  • 查看 WSL 版本, wsl --version
  • 查看正使用的版本可以用 wsl -l -v

命令

wsl --shutdown 完整重启
Get-ChildItem "HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss" -Recurse # 查看 WSL 包安装在哪里,我的是 C:\Users\wdf\AppData\Local\Packages\

MediaWiki

sudo service mariadb start && sudo service apache2 start
ip a
sudo mariadb
CREATE USER 'db_username'@'db_hostname' IDENTIFIED BY 'passwd'; ## 用在本地时,我选的 localhost 当 db_hostname
CREATE DATABASE sth_wiki;
USE sth_wiki;
GRANT ALL ON sth_wiki.* TO 'db_username'@'db_hostname';
commit;
quit;
sudo a2dissite 000-default
service apache2 reload

systemd

一个细微区别是,Bookworm 用的 systemd ,WSL 用的 WSL init,类似 SystemV init。 ps -p 1 -o comm= 可以看出系统用的哪个。其具体命令有所不同。

Systemd command Sysvinit command
systemctl start service_name service mariadb start
systemctl stop service_name service apache2 stop
systemctl restart service_name service service_name restart
systemctl status service_name service service_name status
systemctl enable service_name chkconfig service_name on
systemctl disable service_name chkconfig service_name off

但是这种不同已经过时,略加修改,即可让 WSL 用上最新的 systemd。

只要 wsl --version 显示 WSL 版本号大于 0.67.6,则 wls --update 更新至最新版后,在 /etc/wsl.conf 中写入以下即可:

[boot]
systemd=true

自启

开启 systemd 后,WSL Debian 2 里的服务能很方便自启了。

WSL 2 及 Debian 本身怎么自启呢?

博主 sjdhome 写得很好,用 任务计划程序 即可。