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。

 

posted @ 2024-12-21 14:03  nerocm  阅读(28)  评论(0编辑  收藏  举报