MediaWIKI 1.42 教程系列1 — 安装MediaWIKI
背景
对于新手来说,网上多数教程并不完善,也没有针对新版本更新教程。在安装过程中遇到很多类似的问题,也翻阅很多资料才得以解决。为了总结经验,给更多人提供帮助,同时避免走弯路,于是决定编写一篇Mediawiki 系列文章。
前言
1. 选型
开源免费的WIKI,主要有 MediaWiki,Xwiki,WIKI.JS等。如果让小型的主机 (一台普通笔记本)就可以运行起来,提供多人使用,最方便的方式是选择MediaWiki, 其中XWIKI 稍微对中小企业更方便,有独立的权限配置,单独文件管理以及树形文档结构特点,但对系统要求也相对高些,偶尔会在移动端页面出现卡死情况。
总得来说,MediaWiki 历史悠久,性能稳定,适合长期适用。
MediaWiki :PHP, 最新要求PHP 8.1
XWIKI : JAVA, 最新要求 JAVA17
JsWIKI : NodeJS
由于采用普通的小型主机,只提供20人以下使用,通过每个安装体验后,最终决定使用MediaWIKI 作为团体内部及个人使用。在以上系统中,MediaWiki有独立的语法,比其他的WIKI系统显得尤其复杂,需要更多的知识储备。因此本文针对新手,零基础入门教程。
2. 准备
基本如下
主机1台 | 必须 |
普通家用台式机, 或者是公司服务器,或者阿里云/ 腾讯云/ 亚马逊云 VPS VPS安装体验时,内存高于500M, 硬盘不少于40G |
公网IP | 必须 |
一般公司网或者阿里云VPS 都会提供,家庭主机比较麻烦,需要咨询运营商获取 (联通、电信有时也会提供,说明要求家里装监控,云盘,NAS等需求) 如果是团体内部使用,不需要公网IP, 只需要局域网内部IP |
域名 | 可选 | 一般机构或者公司需要申请域名和DNS ,一个内网或者自己用的服务器可以不需要域名。当然,根据自己实际情况需要。 |
操作系统 | Ubuntu 24 |
当前最新的Ubuntu为24.04, 下载ISO 文件后烧录至U盘,然后将主机格式化后安装Ubuntu24 不推荐 Windows 系统 |
安装
1. 安装apache2
Ubuntu 24 自带 apache,可以先检查一遍。 (没有选用 nginx,纯粹因为apache 和 php 搭配更好服务 MediaWiki)
// 1. 检查库中的版本
sudo apt policy apache2
//2. 安装apache2,有些系统已经自带
sudo apt-get install apache2
2. 安装php
// 1. 检查库中的版本
sudo apt policy php
// 注意 :返回信息中要求是8.0 以上
// 旧的Ubuntu集成的是7.4,MediaWIKI 新版已经不支持。否则需要下载8.0以上的数据包,然后手动安装
// 2. 安装
sudo apt-get install php
3. 安装php 相关组件
PHP 是脚本语言,完整的MediaWIKI 需要PHP运行,且需要依赖库,比如解析网页,邮件提醒,上传文件,字符解析等功能,需要额外安装依赖组件。官网提供了如下5个:
intl, mbstring, xml, apcu, curl, 另外官网没有提到php-gd 和 xmlreader,也没有提到git,后面安装时会提醒补充 git.
sudo apt-get install php-intl php-mbstring php-xml php-apcu php-curl php-dom php-xmlreader
// 补充官网没有提到的:
sudo apt-get install php-gd
4. 安装 数据库 MySQL
如今,MySQL 数据库成为主流,官网已经明确指出不再支持 Oracle 和 Microsoft SQL, 可供选择的只有 MySQL 和 PostgreSQL
需要注意的是,2024年10月以后,MySQL 已经不再支持5.7,且数据源已经下架,新系统可选的只有 8.0 以上。
// 1. 检查库中的版本
sudo apt policy mysql-server
// 注意 :要求是5.7以上, 最新是9.0, 自带源支持 8.0
// 2. 安装
sudo apt install mysql-server
5. 配置数据库 MySQL
MySQL 数据库8.0 版本 主要对安全有加强,强烈建议先进行安全配置
命令窗口继续运行:配置向导
> mysql_secure_installation //1. 选择设置验证密码: Y Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No: Y //2. 选择密码长度: 8个长度 LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0 //3. 根账户密码, 要输入两遍 Please set the password for root here. New password: Re-enter new password: //4. 删除一些匿名用户 : Y //5. 删除测试数据库: Y //6. 禁用远程 root 登录:Y //7. 加载这些新规则
配置完成后,此时对数据库已设置了安全权限和 root 账户密码,此时再开始操作数据库基本操作。
另外可选:为防止root 风险,还可以新增一个普通账户给mediawiki 使用。新增的wikiuser 用户并新增一个数据仓 my_wiki, 操作如下:
// 因为MySQL5.7 更高的系统要求身份认证,不是使用密码。
// 安全起见,采用 mysql -u root -p , 而不要sudo mysql
//1. root 管理员方式登陆
mysql -u root -p
// 输入已配置过的8个数长度 的密码
CREATE DATABASE my_wiki;
CREATE USER 'wikiuser'@'localhost' IDENTIFIED BY 'database_password';
GRANT ALL PRIVILEGES ON my_wiki.* TO 'wikiuser'@'localhost' WITH GRANT OPTION;
至此,基本安装完成!
6.检查服务器主机的运行状态
1. 检查3个服务的运行状态, 绿色运行即正常,如果出错,根据错误代码查询排错。
sudo systemctl status mysql
sudo systemctl status php
sudo systemctl status apache2
2.检查网页是否可以本机打开 和 远程是否可以访问
:如果是远程服务器电脑操作,服务器可能需要先开通 80/443 端口, 然后访问服务器指定的IP地址,例如 http://10.112.113.114:80
:如果是本地主机上操作, 可以直接浏览器打开 localhost
3. 关于 修改apache 端口情况
: 根据需要,也可以将端口80改为其他,如8080
重新加载,apache2 默认的模块显示大致如下,空白则配置错误,需要重新检查。
备注:修改端口的方法
a.进入指定的文件夹 cd /etc/apache2 ,编辑 ports.conf 并保存
Listen 80 Listen 8080 <IfModule ssl_module> Listen 443 </IfModule> <IfModule mod_gnutls.c> Listen 443 </IfModule>
即 把80 改成8080,或者新增一条,Listen 8080。
注意:由于所有网页 默认都是 TCP 80端口,可能被其他程序应用占用影响,同时也避免80端口数据流出VPS受到监控,单独改成8080等其他端口更符合实际。
b. 进入文件夹 /etc/apache2/sites-available/, 编辑 000-default.conf 文件 并修改为端口和服务器地址
<VirtualHost *:8080> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com ServerAdmin webmaster@localhost DocumentRoot /var/www/html # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf </VirtualHost>
c. 修改后重启apache 服务
// 修改配置后,需要重启加载新的内容
sudo systemctl restart apache2
一切配置妥当,确认远程和本机都可以访问后继续下篇文章,开始部署MediaWIKI。