建站/MediaWiki

来自Wired
跳到导航跳到搜索
流程已由 1.40.01.41.11.42.31.43.0 版本验证,无需为符合本文创作环境而刻意避免最新版本,只需注意相关文件或路径的版本号差异。

我需要做什么?

按照#安装框架操作,然后享受Mediawiki。

 

安装框架

框架文件

※ 官网:https://www.mediawiki.org/

下载框架:

cd /var/www/html # 进入网站根目录
wget https://releases.wikimedia.org/mediawiki/1.41/mediawiki-1.41.1.zip #下载框架压缩包,如果国内服务器下不动可以本地下载好通过ftp传输
#建议下载最新版本:https://www.mediawiki.org/wiki/Download

解压文件(具体文件名请看自己下载的版本,下同):

unzip mediawiki-1.41.1.zip # 解压文件,若没有unzip,则运行该命令安装:apt install unzip

移动框架文件到网站资源目录下:

  • 如果仅此一个站点:
    • mv mediawiki-1.41.1/* ./ # 将 mediawiki-1.41.1 文件夹内的所有文件和文件夹移动到当前目录(即 html 目录)。
      
  • 如果是多站点(记得一并修改apache2配置文件):
    • mv mediawiki-1.41.1 mediawiki # mv {原文件夹名称} {新文件夹名称} 注意,若新文件夹存在,则会放置于新文件夹内而非覆盖/合并。
      

安装需要的PHP依赖(参考:安装要求/PHP配置安装WEB环境时已经装了就不用再重复了)

sudo apt-get install php php-apcu php-common php-intl php-json php-mbstring php-xml libapache2-mod-php php-mysql php-curl -y

重启apache2:

systemctl reload apache2

初始化设置

安装好后访问ip就能看到引导页了,若要通过url访问请先设置好域名解析
如果您不习惯纯文本介绍,我在建新站时特意保留了一份截图:语言环境检查连接到数据库数据库设置数据库设置(假若用其他账户)WIKI名称及管理员账户扩展等更多选项(与本文推荐的略有出入)结束配置根据配置创建环境生成配置文件
所有配置都会写入LocalSettings.php配置文件中,均随时可修改;未提及的为无需变动/修改/添加的设置,直接下一步即可

基础信息

数据库信息:

  • 数据库名称:自定义即可,不存在的话会创建个新的;
  • 数据表前缀:就是 xxx_实际表名 多个服务共用数据库可设置,否则建议留空;
  • 填写数据库的root账户密码

站点信息:

  • 站点名称管理员用户名密码邮箱(无需真实);

进阶设置

用户权限配置文件仅限授权编辑者,游客只能浏览、无法注册账户,管理员可后台建立账户;

电子邮件设置:私人wiki取消勾选即可,如果需要邮件推送功能,需要配置邮件SMTP服务器;

皮肤VectorMonoBook 比较舒服,后者虽信息利用率更高,但功于窄点的侧边栏与小点的字体,且ui太古老,所以我设前者为默认;

  • 目前默认启用的还是 Vector 2010,也是截图示例的样子,设置里可以启用2022版本的(维基百科新的默认皮肤是这个),诸如侧边栏支持折叠的目录等挺好,但不好看。

拓展程序:具体用途见选项旁的“更多信息”或于官网搜索,这里只说必要安装的,根据需求可选的(具体见建站/WIKI功能)。

  • 特殊页面
    • ReplaceText特殊:替换文本|全局批量替换):以整个wiki为单位进行替换内容;
      • 执行速度可能没那么快,确认勾选了显示编辑记录的话可以到特殊:最近更改查看进度;
      • 默认的搜索无法查询到url,可以用它替代搜索功能,但这个页面仅限有权限的用户使用。
  • 编辑器
    • VisualEditor(可视化编辑):mediawiki的灵魂;
      • 没typora我就不会用markdown,没它我也不会用mediawiki,源代码编辑器及模板/模块/拓展等功能是它的上限,而可视化编辑器就是它的下限,上限极高、下限极低,对于文本创作,可视化编辑器足矣。
      • 另外两个是增强源代码编辑器体验的工具,建议一并启用,如果要编辑表格的样式或使用模板等还是要用到的。
  • 解析器钩子
    • 不一定会用,但复杂点的功能几乎离不开的;
      • ParserFunctions(函数解析器):详见官方文档,装上以防万一。
      • TemplateData(模板):创建具有固定格式的内容框架(文本/表格/信息框)。
      • Scribunto(模块):可以嵌入lua语言代码,以实现很多高级功能,要想使用还请参考#模块配置权限。
    • Cite(脚注):详见官网,不支持换行(可以输入四个横线渲染出分割线实现换行)!一般都是引用链接而不是填写信息;如果有引用,默认会渲染到文末,可以在源代码编辑器下用“ <references />”指定插入的位置;配合#鼠标悬浮显示引用文本体验更佳。
  • 垃圾预防ConfirmEdit(防垃圾邮件):主要是防止恶意猜密码登陆的行为,但验证码比较简单,要自定义见官网。也可以参考AbuseFilterSpamBlacklistTitleBlacklist

图像和文件上传

  • 勾选启用文件上传,已删除文件目录可以留空,默认在 /网站根目录/images/deleted 文件夹中,如果要删除无用文件也别动这个文件夹,用建站/WIKI功能提到的维护工具;
  • 即时共享资源类似于跨wiki链接,可以引用维基共享资源的内容,具体见:#嵌入外部WIKI的图片

个性化:图标与侧边栏标志可以先记住位置以后再更换图像(可以修改路径、也支持jpg/png等常用格式);


接着不断继续即可,最后会下载“LocalSettings.php”文件,将其放置于mediawiki框架的根目录下,便大功告成了!

  • 除了ftp传输外,也可以复制里面的内容,并通过ssh访问服务器,在网站根目录下:nano LocalSettings.php 并粘贴内容(ctrl+shift+v)、保存(ctrl+s)、退出(ctrl+x)。

可能的问题

不能将上传内容存储至暂存处

没有上传文件夹(./images/)的写入权限,在网站根目录下运行:

sudo chown -R www-data:www-data ./images/
sudo chmod -R 755 ./images/

网站跳转IP/http而非域名/https

初始化设置的时候是用的IP或未配置ssl,在配置文件(LocalSettings.php)修改成你想要的地址,如:

$wgServer = "https://wiki.scio.icu";

添加了拓展文件后,无法访问页面

检查拓展文件夹(./extensions)权限,在网站根目录下运行(分别是给设定的目录下的文件夹755权限、文件644权限)

find ./extensions -type d -exec chmod 755 {} \;
find ./extensions -type f -exec chmod 644 {} \;

※ 给文件授予权限时,建议精准到文件夹,如 ./extensions/目标扩展 直接给所有文件授权不止缓慢,还有可能打乱需要特定权限的设置(如 #代码块#模块)。

文件上传大小限制:

默认有文件最大不能上传2MB的限制,修改配置文件:nano /etc/php/8.1/apache2/php.ini ,修改为需要的体积限制(之后记得重启apache2:systemctl reload apache2):

post_max_size = 20M
upload_max_filesize = 20M

※ 这两行在配置文件几百行开外,善用nano的查找(ctrl+w)功能。

其他可能问题

 

打破隔阂

可视化编辑器无限降低了Mediawiki的编辑下限,而源代码编辑器及各种附加扩展功能使其上限又很高,两者不是冲突而是共存的,可以在编辑时随意切换。因此我不认为“我不会使用medaiwiki编辑内容”会阻挡你前进,我想它的本质应该是“我不知道从何下手”,毕竟我们对wiki框架的刻板印象已久,一时或许想不到自己的应用场景。

创建页面:

您可以先把您的首页编辑掉,当作其他博客框架的“关于我”页面,介绍下您与您的站点,并适当的索引站内其他文章。

您可以先行索引一些不存在的文章,比如:不存在的文章(示例用),它会显示为红色,我们保存页面后可以点击它(也可以直接修改url的标题部分),会提示“本页面目前没有内容”并询问是否“创建本页面”,我们就可以着手写我们的第一个文章。但当“不存在的文章(示例用)”页面发布后,首页的索引文本或许还是红色,因为服务器端#刷新页面缓存需要一定的时间。

可视化编辑器:

※ 官网用户指南见:Help:VisualEditor/User_guide/zh

可视化编辑器就像word、typora这类编辑器一般,编辑与渲染在相同的地方,知乎等主流社区的编辑功能亦是如此,区别只是其支持的功能。您可以随意的尝试,以便于了解它们都有什么效果与样式,如果您曾经写了其他文章,也可以重新利用可视化编辑器进行排版并发表。

可视化编辑器适用于文本创作,对于模板等高级功能支持效果并不理想,但对于一般的wikitex语法和部分高级样式,都可以通过复制粘贴的形式嵌入,它会解析部分内容,直接渲染出结果,而不必切换到源代码编辑视图下。

分类与页面:

您可以参考我对wiki的文章的管理机制:wiki:SCIO系列站点WIKI章程,您可以先按照自己的思路去维护索引页,让其随着内容的增多而根据需求慢慢的调成,这是一个过程。

不论单独创建一个索引页, 还是把首页当作索引页,亦或者其他方式,我们没必要考虑的太过深远,未来的事谁也说不准,只要它能满足当下的需求,我们都可以慢慢的进行调整。

编辑功能的缺陷:

参考:建站/框架#劣势,了解下编辑的缺陷与应对方案。

不要管功能,去创作:

您是否也有一些系列文章想要编辑,比如您建站的历程?您所喜好的事物?您的待办事项与媒体推荐列表?您的学习笔记?您的心境及想法?这些都是不错的题材,哪怕您目前没有系统的内容可写,就算是一些线索,也总要给其一个机会。这也是系列站点的历程,我也不知道要写什么, 但给自己与线索一些宽容,它们或许会给我们一些惊喜。

Mediawiki有很大的操作空间,但这是我们所需要的吗?不是,只是单纯的用于文字创作,可视化编辑器足矣。我们可以当作那些复杂的功能不存在,先静心于创作,在这个过程中熟悉它所提供的基础功能及界面,当急切的需求某个功能时,再去对症下药。