1. 程式人生 > 實用技巧 >信步漫談之Wiki知識庫——搭建mediawiki

信步漫談之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:[email protected] 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 參考資料(感謝)