Jump to content

Manual:在适用于 Linux 的 Windows 子系统上运行 MediaWiki

From mediawiki.org
This page is a translated version of the page Manual:Running MediaWiki on Windows Subsystem for Linux and the translation is 99% complete.

此文档用于说明如何通过适用于 Linux 的 Windows 子系统(WSL)来运行 MediaWiki 。 有关直接在 Windows 上运行 MediaWiki 的文档,请参阅 手册:在Windows上运行MediaWiki

背景

Windows 10 包含一个 Linux 兼容层,即适用于 Linux 的 Windows 子系统,旨在帮助需要在 Windows 计算机上使用 Linux/Unix 开发环境的 Web 开发人员。 这样就可以像在 Linux 机器上一样运行 MediaWiki,与设置和运行虚拟机相比,开销更小,集成度更高。

对于内存和 CPU 资源有限的 Windows 10 笔记本电脑来说,这可能是一个不错的选择。 但是,WSL 需要 64 位版本的 Windows 10(x64 或 ARM64),不能在安装了 32 位 x86 Windows 10 的电脑上运行。

安全提示

MediaWiki 是一个 Web 应用程序,按照这些说明操作将设置一个 Web 服务器,该服务器运行在您的计算机上,并且可以暴露给网络上的其他计算机。 特别需要注意的是,在 Web 服务器中运行的 PHP 和其他 Linux 代码可能可以访问您的 Windows C:\ 驱动器,并可能能够读取或修改文件或运行 Windows 程序。

强烈建议仅将其用于开发目的,不要用于服务器部署,并限制对 Web 服务器的网络访问,以避免意外地向网络开放任何内容。 请只运行您信任的 MediaWiki 及其扩展程序。

WSL 版本

WSL 有两个主要版本:原始版本以 Windows 驱动程序的形式模拟 Linux 内核 ABI,而较新的 WSL2 使用专门的 Hyper-V 虚拟机来运行原生 Linux 内核。 虽然 MediaWiki 应该可以在 WSL1 下工作,但 2020 年 5 月更新引入了 WSL 2 作为替代方案。 可以自由地从 WSL1 升级/降级到 WSL2。

WSL2 与更多软件兼容,但由于虚拟机有自己的 IP 地址,与 localhost 分开,因此可能会使某些集成场景变得稍微复杂一些。 (服务器端口已转发到 localhost,因此这种方法对于设置 Web 服务器来说基本没问题。)

请注意,尽管 WSL2 需要硬件支持虚拟化,并且底层使用 Hyper-V,但它在 Windows 10 家庭版和 Windows 10 专业版上均可使用。 WSL1 则不需要虚拟化支持。 这可以使开发人员更容易在现有机器上安装,而无需花钱升级到专业版,但可能会与其他虚拟机软件(如 VirtualBox)存在兼容性问题(v6.0 是可以与基于 Hyper-V 的产品共存的最早版本)。

安装

  • 转到控制面板→程序和功能,然后点击左侧的链接“启用或关闭 Windows 功能”,或者运行 C:\Windows\System32\OptionalFeatures.exe
    • 请复选“适用于 Linux 的 Windows 子系统”;对于 WSL2,请复选“虚拟机平台”。
    • 让它安装并重启。
  • 前往“Microsoft Store”并搜索最新的 "Ubuntu" Linux 发行版
    • 安装它!
    • Debian 系统也可用,但在某些方面可能略有不同。
  • 点击“开始”菜单中的“Ubuntu”图标,或者从 PowerShell 会话中输入 wsl(注意提示符如何从 Windows 样式变为 Linux 样式)。
    • 按照屏幕提示设置 Linux 用户名和密码
    • 让它提取

WSL 设置

要使用 WSL2 模式,请退出并在 PowerShell 会话中运行:

  • wsl --set-version Ubuntu 2

这可能需要几分钟来转换文件系统。

要验证当前使用的 WSL 版本,请执行以下操作:

  • wsl -l -v

依赖性设置

首先,确保系统镜像已更新:在 Ubuntu 终端中运行 sudo apt update && sudo apt upgrade -y。 首次安装后可能需要几分钟时间。

安装依赖项:sudo apt install apache2 composer git git-review imagemagick mysql-client mysql-server php php-apcu php-cli php-gd php-intl php-mbstring php-mysql php-xml zip

运行服务

你可能需要手动启动服务:

  • sudo service mysql start
  • sudo service apache2 start
    • 在 WSL1 上,这可能会向 Windows 防火墙发出有关监听端口的警报。 请确认允许,但出于安全考虑,您可限制在“私有”网络中。

你可能需要费一番周折才能在 MySQL 上设置 root 密码:

  • 以 root 用户运行 MySQL:
    • sudo mysql
  • 在 MySQL 终端中运行:
    • use mysql;
    • alter user 'root'@'localhost' identified by 'your-password-here'; - 如果刚才失败了,请尝试 update user set authentication_string=password('输入你的密码'), plugin='mysql_native_password' where user='root';
    • create user '你的用户名'@'localhost' identified by '输入你的密码';
    • create database `数据库名称`; - 这必须与安装过程中的 wiki 数据库相匹配
    • grant all on `数据库名称`.* to '你的用户名'@'localhost'; - Note those are backticks not single quotes around 数据库名称
    • flush privileges;
    • exit
  • 现在您可以使用用户名 root 和密码 输入你的密码 从安装程序登录。

MediaWiki 设置

从 git 克隆内容,就像在 Linux 服务器上一样。

Ubuntu 上的 Apache 默认设置为指向 /var/www/html 作为文档根目录,您可以在该目录下创建一个目录来检出或使用自定义路径重新配置 Apache。 建议使用 /var/www/html/w,以符合 /w/index.php 为主脚本路径的惯例。

扩展

例如(来自skins/):

别忘了在你的 LocalSettings.php 文件底部添加加载扩展程序的代码行。

别忘了在 MediaWiki 目录以及任何需要它的扩展目录中运行 composer update --no-dev

在浏览器中运行网页安装程序,地址为 http://localhost/w/;安装时请使用你设置的用户名和数据库名称。

当安装程序最后提示您下载 LocalSettings.php 时,请将其保存为 \\wsl$\Ubuntu\var\www\html\w 或同样的内容,然后您就可以访问您的 wiki 了!

作业队列

你可能需要手动运行 作业队列运行器。 理想情况下,这应该通过 Web 服务器完成,但如果实在不行,你可以启动 Ubuntu 终端并运行以下命令:

  • cd /var/www/html/
  • php maintenance/runJobs.php

其他配置

WSL 环境在很大程度上看起来与任何其他 Ubuntu 或 Debian 系统类似,只是服务不会自动启动,必须​​在每次启动时手动运行。 有关在 Debian 或 Ubuntu 上运行 MediaWiki 的一般说明,请参阅 在 Debian 或 Ubuntu 上运行 MediaWiki

编辑文件

在 Windows 系统下,您可以使用 \\wsl$\Ubuntu 访问 Linux 文件,因此可以使用支持 Unix 换行符的 Windows 文本编辑器来处理您的代码和配置。

Visual Studio Code 还有一个 WSL 远程处理扩展,可以更直接地与 WSL 环境集成,这对于在编辑器中使用 PHP 代码检查可能很有用。

但是请注意以下警告:不要使用 Windows 应用程序和工具更改 Linux 文件

或者,你可以使用你喜欢的基于终端的编辑器。

参见

外部链接