安装MW:初始化配置

来自Wikioe
Eijux讨论 | 贡献2021年12月21日 (二) 05:45的版本 →‎更新
跳到导航 跳到搜索


下载

关于新的MediaWiki文件下载:

关于获取MediaWiki的站点:

注意:

  1. 通过git clone或download code zip的时候,子模块可能不能下载下拉,需要git submodule update或单独去download那些(对应分支)子模块的代码,子模块的信息在.gitmodules文件中。
  2. 下载或拉取发布包,若为核心包(如:mediawiki-core-1.35.0-rc.3.tar.gz)则包内不包含扩展。

更新

小版本的更新,如1.34.0 → 1.34.2 一般更新系统文件就可以了,不需要对服务器的基础支持相关进行安装或升级。

备份

  1. LocalSettings.php
  2. images文件夹(上传的文件);
  3. extensions(扩展);
  4. 添加或修改过的文件(如:includes/defaultSettings.php);
  5. 自定义添加的(如:logo、skins[皮肤]、vendor[依赖])等。

安装

安装:

  1. Linux中解压 mediawiki-1.35.0-rc.2.tar.gz:
    tar -zxvf mediawiki-1.35.0-rc.2.tar.gz
    unzip mediawiki-REL1_35.zip -d /www/wwwroot/
  2. 移除旧版本;
    rm -rf wiki.eijux.com/
  3. 移动或复制覆盖mediawiki-1.35.0-rc.2内容到网站文件夹:
    移动:mv -f mediawiki-1.35.0-rc.2/* wiki.eijux.com/
    复制覆盖:yes|cp -rf mediawiki-REL1_35/* wiki.eijux.com/
  4. 替换备份文件
  5. 更新网站文件归属及读写权限:
    chown -Rf www:www wiki.eijux.com/*
    chmod -Rf 775 wiki.eijux.com/*

升级

大版本的升级,如1.34.2 → 1.35.0,需要PHP7.3的支持(现用PHP7.2):

MediaWiki 1.35 internal error
MediaWiki 1.35 requires at least PHP version 7.3.00; you are using PHP 7.2.33.

Supported PHP versions
Please consider upgrading your copy of PHP. PHP versions less than v7.3.0 are no longer supported by the PHP Group and will not receive security or bugfix updates.

If for some reason you are unable to upgrade your PHP version, you will need to download an older version of MediaWiki from our website. See our compatibility page for details of which versions are compatible with prior versions of PHP.

站点利用宝塔面板,可以很方便的安装PHP7.3,完成后需在网站设置中切换PHP版本;
并需安装PHP扩展fileinfoopcachememcached,禁用函数proc_opensymlink等。

问题

站点路径的问题:

站点目录结构的不同,则配置文件的$wgScriptPath配置不同,网站的访问路径不同:

从“mediawiki-1.34.2”升级到“mediawiki-1.35.0-rc.3”时,VisualEditor扩展的问题:

1.35.0版本之前,VisualEditor需要Parsoid/Js的支持,不仅需要单独安装独立运行的Parsoid服务,还需要Nodejs、NPM等基础包。而1.35.0版本之后,Parsoid/Js被以PHP语言重写并集成到MediaWiki内(Parsoid/PHP),所以,不需要任何额外的安装,仅需要修改LocalSettings.php以加载和设置VirsualEditor扩展。

“mediawiki-1.35.0-rc.3.tar.gz”安装包的问题

本次使用mediawiki-1.35.0-rc.3.tar.gz安装到服务器之后,通过比较服务器安装目录/www/wwwroot/wiki.eijux.com/vendor/wikimedia/parsoidgit项目Paroid目录,发现在服务器"/www/wwwroot/wiki.eijux.com/vendor/wikimedia/parsoid"下缺少"lib"文件夹。故而单独拉取Paroid项目的"lib"文件夹上传到服务器,并修改其所有者和读写权限(单独拉取Paroid项目"git clone https://github.com/wikimedia/parsoid.git D:\Documents\GitHub\parsoid",才能得到"lib"文件夹,其他git拉取Mediawiki的Paroid子模块、下载rc预览包(通过composer.json自动下载)等方式均无"lib")。
使用VisualEditor时,只需要加载和设置VisualEditor即可,不需要ParsoidRESTBase的加载和设置,不需要额外安装Node.js

  • 备注
    【2020/09/06 17:52:09】点击“编辑”之后无报错即可。如果没反应等待稍后再试(可能是Parsoid等某服务加载延迟?)目前能正常显示VisualEditor页面,并加载内容。
    【2020/09/06 17:58:45】但在VisualEditor中保存内容时,出现“服务器没有在预期时间内响应。”,还不知道具体情况,只知道和修改页面内容多少无关
    【2020/09/06 18:01:22】“计算您的更改花费了太长时间,因此下方的描述可能并不理想。”真他娘和页面内容多少有关,太多的东西还是用WikiEditor改吧。坑!
    【2020/09/06 18:03:38】又他妈能使了……
    【2020/09/07 13:56:20】真香……编辑表格的可视化真香,但是编辑文本会添加很多格式标签,不如WikiEditor香。

Error contacting the Parsoid/RESTBase server (HTTP 500)

  1. 1.34:配置错误。
  2. 1.35:依赖的Parsoid文件内容缺失?,对比服务器路径/www/wwwroot/wiki.eijux.com/vendor/wikimedia/parsoidGitHub的内容。

Error contacting the Parsoid/RESTBase server (HTTP 404)

  1. 1.34:配置错误。
  2. 1.35:配置多余。

1.35.0-rc.3 的配置代码 =

wfLoadExtension( 'VisualEditor' );

# VisualEditor Settings
# Enable by default for everybody
$wgDefaultUserOptions['visualeditor-enable'] = 1;
# Don't allow users to disable it
$wgHiddenPrefs[] = 'visualeditor-enable';
# OPTIONAL: Enable VisualEditor's experimental code features
#$wgDefaultUserOptions['visualeditor-enable-experimental'] = 1;
# OPTIONAL: Enable VisualEditor in other namespaces
# (By default, VE is only enabled in NS_MAIN)
#$wgVisualEditorNamespaces[] = NS_USER;

尝试过的配置代码1,参考官网Parsoid/PHP页面

## Parsoid required configuration
AutoLoader::$psr4Namespaces += [
    'Wikimedia\\Parsoid\\' => 'vendor/wikimedia/parsoid/src',
];
# Make sure exists of this line, if you want to use VE:
wfLoadExtension('Parsoid','vendor/wikimedia/parsoid/extension.json');
# Enable Parsoid
$wgEnableRestAPI = true;
$wgParsoidSettings = [
    'useSelser' => true,
    'rtTestMode' => false,
    'linting' => false,
];
## Enable VisualEditor
wfLoadExtension('VisualEditor');
# Enable by default for everybody
$wgDefaultUserOptions['visualeditor-enable'] = 1;
#Optional: Set VisualEditor as the default for anonymous users
# otherwise they will have to switch to VE
$wgDefaultUserOptions['visualeditor-editor'] = "visualeditor";
# Don't allow users to disable it
#$wgHiddenPrefs[] = 'visualeditor-enable';
# OPTIONAL: Enable VisualEditor's experimental code features
$wgVisualEditorEnableExperimentalCode = true;
# OPTIONAL: Enable VisualEditor in other namespaces
# (By default, VE is only enabled in NS_MAIN)
$wgVisualEditorNamespaces[] = NS_USER;

$wgVirtualRestConfig['modules']['parsoid'] = array(
    'url' => $wgServer . $wgScriptPath . '/rest.php',
    'domain' => $wgServer,
    'prefix' => $wgServer
);
$wgVirtualRestConfig['modules']['restbase'] = array(
    'url' => $wgServer . $wgScriptPath . '/rest.php',
    'domain' => $wgServer,
    'forwardCookies' => false,
    'parsoidCompat' => false
);
$wgVisualEditorFullRestbaseURL = '$wgServer/$wgServer/';

尝试过的配置代码2,参考官网Parsoid页面#Linking a developer checkout of Parsoid

# Make sure exists of this line, if you want to use VE:
wfLoadExtension('Parsoid', 'vendor/wikimedia/parsoid/extension.json');

# Enable Parsoid
$wgVisualEditorParsoidAutoConfig = false;
$wgParsoidSettings = [
    'useSelser' => true,
    'rtTestMode' => false,
    'linting' => false
];

# Enable VisualEditor
wfLoadExtension('VisualEditor');
#
$wgDefaultUserOptions['visualeditor-enable'] = 1;
$wgVirtualRestConfig['modules']['parsoid'] = [
    'url' => $wgServer . $wgScriptPath . '/rest.php',
    'domain' => $wgServer
];
# OPTIONAL: Enable VisualEditor's experimental code features
$wgVisualEditorEnableExperimentalCode = true;
# OPTIONAL: Enable VisualEditor in other namespaces
# (By default, VE is only enabled in NS_MAIN)
$wgVisualEditorNamespaces[] = NS_USER;