建站/MediaWiki
流程已由1.40.0
、1.41.1
、1.42.3
、1.43.0
版本验证,无需为符合本文创作环境而刻意避免最新版本,只需注意相关文件或路径的版本号差异。
我需要做什么?
按照#安装框架操作,然后享受Mediawiki。
- 优化、调教请移步:建站/WIKI功能
安装框架
框架文件
※ 官网: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服务器;
皮肤: Vector
、 MonoBook
比较舒服,后者虽信息利用率更高,但功于窄点的侧边栏与小点的字体,且ui太古老,所以我设前者为默认;
- 目前默认启用的还是 Vector 2010,也是截图示例的样子,设置里可以启用2022版本的(维基百科新的默认皮肤是这个),诸如侧边栏支持折叠的目录等挺好,但不好看。
拓展程序:具体用途见选项旁的“更多信息”或于官网搜索,这里只说必要安装的,根据需求可选的(具体见建站/WIKI功能)。
- 特殊页面:
ReplaceText
(特殊:替换文本
|全局批量替换):以整个wiki为单位进行替换内容;- 执行速度可能没那么快,确认勾选了
显示编辑记录
的话可以到特殊:最近更改
查看进度; - 默认的搜索无法查询到url,可以用它替代搜索功能,但这个页面仅限有权限的用户使用。
- 执行速度可能没那么快,确认勾选了
- 编辑器:
VisualEditor
(可视化编辑):mediawiki的灵魂;- 没typora我就不会用markdown,没它我也不会用mediawiki,源代码编辑器及模板/模块/拓展等功能是它的上限,而可视化编辑器就是它的下限,上限极高、下限极低,对于文本创作,可视化编辑器足矣。
- 另外两个是增强源代码编辑器体验的工具,建议一并启用,如果要编辑表格的样式或使用模板等还是要用到的。
- 解析器钩子:
- 不一定会用,但复杂点的功能几乎离不开的;
ParserFunctions
(函数解析器):详见官方文档,装上以防万一。TemplateData
(模板):创建具有固定格式的内容框架(文本/表格/信息框)。Scribunto
(模块):可以嵌入lua语言代码,以实现很多高级功能,要想使用还请参考#模块配置权限。
Cite
(脚注):详见官网,不支持换行(可以输入四个横线渲染出分割线实现换行)!一般都是引用链接而不是填写信息;如果有引用,默认会渲染到文末,可以在源代码编辑器下用“<references />
”指定插入的位置;配合#鼠标悬浮显示引用文本体验更佳。
- 不一定会用,但复杂点的功能几乎离不开的;
- 垃圾预防:
ConfirmEdit
(防垃圾邮件):主要是防止恶意猜密码登陆的行为,但验证码比较简单,要自定义见官网。也可以参考AbuseFilter、SpamBlacklist、TitleBlacklist。
图像和文件上传:
- 勾选
启用文件上传
,已删除文件目录可以留空,默认在/网站根目录/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)功能。
其他可能问题:
创建缩略图出错:尺寸超过12.5 MP的文件
:Manual:$wgMaxImageArea#Example_code无法渲染webp照片
:建站/WIKI功能/功能实现#其他_2
打破隔阂
可视化编辑器无限降低了Mediawiki的编辑下限,而源代码编辑器及各种附加扩展功能使其上限又很高,两者不是冲突而是共存的,可以在编辑时随意切换。因此我不认为“我不会使用medaiwiki编辑内容”会阻挡你前进,我想它的本质应该是“我不知道从何下手”,毕竟我们对wiki框架的刻板印象已久,一时或许想不到自己的应用场景。
创建页面:
您可以先把您的首页编辑掉,当作其他博客框架的“关于我”页面,介绍下您与您的站点,并适当的索引站内其他文章。
您可以先行索引一些不存在的文章,比如:不存在的文章(示例用),它会显示为红色,我们保存页面后可以点击它(也可以直接修改url的标题部分),会提示“本页面目前没有内容”并询问是否“创建本页面”,我们就可以着手写我们的第一个文章。但当“不存在的文章(示例用)
”页面发布后,首页的索引文本或许还是红色,因为服务器端#刷新页面缓存需要一定的时间。
可视化编辑器:
※ 官网用户指南见:Help:VisualEditor/User_guide/zh
可视化编辑器就像word、typora这类编辑器一般,编辑与渲染在相同的地方,知乎等主流社区的编辑功能亦是如此,区别只是其支持的功能。您可以随意的尝试,以便于了解它们都有什么效果与样式,如果您曾经写了其他文章,也可以重新利用可视化编辑器进行排版并发表。
可视化编辑器适用于文本创作,对于模板等高级功能支持效果并不理想,但对于一般的wikitex语法和部分高级样式,都可以通过复制粘贴的形式嵌入,它会解析部分内容,直接渲染出结果,而不必切换到源代码编辑视图下。
分类与页面:
您可以参考我对wiki的文章的管理机制:wiki:SCIO系列站点WIKI章程,您可以先按照自己的思路去维护索引页,让其随着内容的增多而根据需求慢慢的调成,这是一个过程。
不论单独创建一个索引页, 还是把首页当作索引页,亦或者其他方式,我们没必要考虑的太过深远,未来的事谁也说不准,只要它能满足当下的需求,我们都可以慢慢的进行调整。
编辑功能的缺陷:
参考:建站/框架#劣势,了解下编辑的缺陷与应对方案。
不要管功能,去创作:
您是否也有一些系列文章想要编辑,比如您建站的历程?您所喜好的事物?您的待办事项与媒体推荐列表?您的学习笔记?您的心境及想法?这些都是不错的题材,哪怕您目前没有系统的内容可写,就算是一些线索,也总要给其一个机会。这也是系列站点的历程,我也不知道要写什么, 但给自己与线索一些宽容,它们或许会给我们一些惊喜。
Mediawiki有很大的操作空间,但这是我们所需要的吗?不是,只是单纯的用于文字创作,可视化编辑器足矣。我们可以当作那些复杂的功能不存在,先静心于创作,在这个过程中熟悉它所提供的基础功能及界面,当急切的需求某个功能时,再去对症下药。