信步漫谈之Wiki知识库——搭建mediawiki


1 目的

  • 使用 LAMP (Linux,Apache,MySQL和PHP)在 CentOS 7 上安装 MediaWiki 的方式和遇到的问题和遇到的问题
  • MediaWiki 的使用方式
  • MediaWiki 词条编写的语法

2 资源

系统:CentOS 7.7.1908-Minimal(本文服务器地址:192.168.64.128)
Mediawiki版本:mediawiki-1.35.0.tar.gz(mediawiki各版本下载地址

3 安装LAMP

  • 关闭防火墙
# systemctl stop firewalld.service
# systemctl disable firewalld.service
  • 启用epel和remi存储库以使用最新的PHP 7.x版本安装LAMP
# yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
# yum install epel-release
  • 禁用安装php5.4以从remi存储库安装php7.3
# yum-config-manager --disable remi-php54
# yum-config-manager --enable remi-php73
  • 继续安装Apache , MariaDB和PHP以及运行MediaWiki所需的必要扩展
# yum -y install httpd
# yum -y install mariadb-server mariadb-client
# yum install php php-mysql php-pdo php-gd php-mbstring php-xml php-intl texlive
  • 启动并启用服务
# systemctl start httpd
# systemctl enable httpd
# systemctl start mariadb
# systemctl enable mariadb
  • 运行 MariaDB 安全配置
# mysql_secure_installation
  • 重新启动Apache Web服务器
# systemctl restart httpd

4 创建数据库

# mysql -u root -p
  • 创建 media_wiki 数据库,如需独立用户访问,则创建用户分配权限,也可直接使用 root 访问
# CREATE DATABASE media_wiki;
# CREATE USER 'wiki'@'localhost' identified by '123456';
# GRANT ALL PRIVILEGES on media_wiki.* to 'wiki’@'%';
# FLUSH PRIVILEGES;
# QUIT;

5 安装 MediaWiki

  • 将下载的安装包上传到 /opt/mediawiki 目录,解压到 /var/www/html 目录下,重命名为 wiki
# cd /opt/mediawiki
# tar -zxvf mediawiki-1.35.0.tar.gz -C /var/www/html
# cd /var/www/html
# mv mediawiki-1.35.0 wiki
  • 重启 httpd 服务
systemctl restart httpd

6 MediaWiki 初始配置

访问 MedisWiki 应用程序(http://192.168.64.128),并根据提示进行安装即可。

  • 选择语言(中文)
  • 配置数据库名称和用户密码
  • 配置管理员账号、密码、邮箱
  • 直到最后一步安装成功,提示下载 LocalSettings.php
  • 将 LocalSettings.php 拷贝至 wiki 的根目录(index.php的同级目录)
  • 完成安装

7 MediaWiki 使用方式

*导航栏名称一
**链接一地址|链接一名称
**链接二地址|链接二名称

*导航栏名称二
**链接一地址|链接一名称
**链接二地址|链接二名称

8 MediaWiki 词条编辑语法

基本编辑语法如下,详细请见 MediaWiki 文档

== Heading Example ==
=== SubHeading 1 ===
==== List Example ====
* List 1
* List 2
* List 3
** List 3.1
** List 3.2
*** List 3.2.1
*** List 3.2.2
==== Number List Example ====
# Number 1
# Number 2
# Number 3
## Number 3.1
### Number 3.1.1
==== Indent Example ====
No Indent!
: Indent 1
:: Indent 2
::: Indent 3
==== List ====
;Item 1 : Description 1
;Item 2 : Description 2
;Item 3 : Description 3
=== SubHeading 2 ===
==== Link Example ====
*[[Link 1]]
*[[Link 2]]
*[[首页]]
*[[#Link|页面锚点]]
*[http://www.google.com Google]
*[mailto:someone@example.com mailto]
*[[media:test.txt]]

==== Font Example ====
*''斜体
*'''黑体
*'''''斜体加黑体
*''''左右各一个单引号''''

=== SubHeading 3 ===
==== 用线分割文本 ====
This is the first line.
----
This is the second line.
==== Text Example ====
<pre>
abcdefg [[main]]
haha
haha
</pre>
==== HTML Example ====
<center>Center Align</center>
==== Table Example ====
{| class="wikitable" border="1"
|-
! header 1
! header 2
! header 3
|-
| row 1, cell 1
| row 1, cell 2
| row 1, cell 3
|-
| row 2, cell 1
| row 2, cell 2
| row 2, cell 3
|}

9 遇到的问题及解决

  • 安装过程提示:yum-config-manager: command not found
    原因:系统默认没有安装这个命令
    解决:这个命令在 yum-utils 包里,通过命令 yum -y install yum-utils 安装即可

10 相关知识

  • 运行 mysql_secure_installation 会执行几个设置
    a)为root用户设置密码
    b)删除匿名账号(生产环境建议删除)
    c)取消root用户远程登录(root 账号是否允许远程登录)
    d)删除test库和对test库的访问权限(是否删除 test 库)
    e)刷新授权表使修改生效(刷新使用修改立即生效)

  • 为什么 MedisWiki 不支持 markdown 语法?(来源于网络)
    作为维基百科的载体,mediawiki 语言的设计有以下两个特点

    • 将页面关联起来,构建一个知识网络。
    • 使用可定制的标记。

    和早年的rtf格式一样,markdown语言实际上只是一种富文本格式,因此markdown不需要考虑各个文档之间的关系,它的链接语法也无法与mediawiki相比,更没有为页面的复用与可定制的链接设计专门的语句。下面的这些语句不可能从mediawiki迁移到markdown:

    • 用于实现页面模板、定制格式的嵌入包含{{}}
    • 用于实现页面分类带多个参数的内部链接[[]]
    • 像“宏”一样在模板内提供基本逻辑功能的解析器函数{{#}}

    因此markdown就无法实现mediawiki 的某些基本功能,难以表达某些复杂格式的文本,纯markdown的wiki即使有也会因为缺少这些功能而难以驾驭数量多、结构复杂的页面。

11 参考资料(感谢)

原文地址:https://www.cnblogs.com/alfredinchange/p/14174786.html