Wsl debian mediawiki experience: Difference between revisions

From 清冽之泉
Jump to navigation Jump to search
Line 2: Line 2:


== 安装 ==
== 安装 ==
# UEFI 中开启虚拟化支持
<pre>
# <code>控制面板 - 卸载 - 启用或关闭 Windows 功能</code>中打开 <code>适用于 Linux 的 Windows 子系统</code> 和 <code>虚拟机平台</code>
UEFI 中开启虚拟化支持
# 安装新的 Linux 分发版前将 WSL 2 设置为默认版本 <code>wsl --set-default-version 2 </code>
<code>控制面板 - 卸载 - 启用或关闭 Windows 功能</code>中打开 <code>适用于 Linux 的 Windows 子系统</code> 和 <code>虚拟机平台</code>
# Powershell 中:<code> wsl --install -d Debian </code> 即可成功安装 WSL Debian
安装新的 Linux 分发版前将 WSL 2 设置为默认版本 <code>wsl --set-default-version 2 </code>
# 查看 WSL 版本,<code> wsl --version </code>
Powershell 中:<code> wsl --install -d Debian </code> 即可成功安装 WSL Debian
# 查看正使用的版本可以用 <code> wsl -l -v </code>
查看 WSL 版本,<code> wsl --version </code>
 
查看正使用的版本可以用 <code> wsl -l -v </code>
</pre>
想用 WSL 2,视情况可能需要安装一个 wsl_update_x64.msi 去更新 WSL 的内核。运行 <code>  wsl --set-version Debian 2 </code> 会获取到 wsl_update_x64.msi 的下载地址。
想用 WSL 2,视情况可能需要安装一个 wsl_update_x64.msi 去更新 WSL 的内核。运行 <code>  wsl --set-version Debian 2 </code> 会获取到 wsl_update_x64.msi 的下载地址。



Revision as of 14:53, 11 April 2025

总体体验:迅如闪电。

安装

UEFI 中开启虚拟化支持
<code>控制面板 - 卸载 - 启用或关闭 Windows 功能</code>中打开 <code>适用于 Linux 的 Windows 子系统</code> 和 <code>虚拟机平台</code>
安装新的 Linux 分发版前将 WSL 2 设置为默认版本 <code>wsl --set-default-version 2 </code>
Powershell 中:<code> wsl --install -d Debian </code> 即可成功安装 WSL Debian
查看 WSL 版本,<code> wsl --version </code>
查看正使用的版本可以用 <code> wsl -l -v </code>

想用 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 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 写得很好,用 任务计划程序 即可。