Wsl debian mediawiki experience
总体体验:迅如闪电。
安装
# 开启 Windows 支持
UEFI 中开启虚拟化支持
控制面板 - 卸载 - 启用或关闭 Windows 功能中打开“适用于 Linux 的 Windows 子系统”和“虚拟机平台”
# 查看 WSL 版本
wsl --version
# 安装新的 Linux 分发版前将 WSL 2 设置为默认版本
wsl --set-default-version 2
# 查看正使用的 Linux 发行版
wsl -l -v
# Powershell 中安装 WSL2 Debian
wsl --install -d Debian
想用 WSL 2,视情况可能需要安装一个 wsl_update_x64.msi 去更新 WSL 的内核。运行 wsl --set-version Debian 2
会获取到 wsl_update_x64.msi 的下载地址。
命令
wsl --shutdown 完整重启
Get-ChildItem "HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss" -Recurse # 查看 WSL 包安装在哪里,我的是 C:\Users\wdf\AppData\Local\Packages\
MediaWiki
sudo apt-get install apache2 mysql-server php php-mysql libapache2-mod-php php-xml php-mbstring php-apcu php-intl imagemagick inkscape php-gd php-cli php-curl php-bcmath git
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
自启
update 20250322:建议不要用任务计划程序开启 WSL,它俩一组合起来就非常傻逼,有 bug:同时打开两个 WSL 虚拟机时,任务计划程序会导致第二个 WSL 虚拟机僵死。
以下别再用了。
开启 systemd 后,WSL Debian 2 里的服务能很方便自启了。
WSL 2 及 Debian 本身怎么自启呢?
博主 sjdhome 写得很好,用 任务计划程序
即可。