ubuntu18.04使用docker搭建mediawiki+VisualEditor

jun1159046873發表於2020-12-17

1.安裝docker

sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

2.使用docker拉取映象

# 拉取mysql映象
docker pull mysql:5.7.29

# 拉取mediawiki映象
docker pull mediawiki:1.34

# 拉取parsoid映象
docker pull thenets/parsoid:0.11

3.執行parsoid容器

# --add-host是給容器的/etc/hosts檔案新增ip別名配置 
docker run --name parsoid --add-host mediawiki:172.17.0.4 -p 8000:8000 -e PARSOID_DOMAIN_mediawiki=http://mediawiki/api.php -d thenets/parsoid:0.11

此時在瀏覽器下輸入你的ip地址:8000,應該可以看到如下介面:

如果看不到可以檢查一下埠有沒有開放,或者直接關閉防火牆

4.執行mysql容器

docker run --name mysql -p 3306:3306 -v /data/mediawiki/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=190539 -d mysql:5.7.29

這裡的MYSQL_ROOT_PASSWORD指定的是mysql的root使用者的密碼

啟動完成後可以進入mysql容器:

docker exec -it mysql /bin/bash

輸入命令連線mysql:

mysql -uroot -p123456

連線成功就說明mysql沒有什麼問題

5.啟動mediawiki

docker run --name mediawiki -v /data/mediawiki/html:/var/www/html -v /data/mediawiki/php:/usr/local/etc/php -p 80:80 --link mysql:mysql --link parsoid:parsoid -d mediawiki:1.35

瀏覽器訪問你的ip,正常情況下應該出現以下介面:

6.設定mediawiki

點選上圖中的set up the wiki

前面的頁面直接下一步,到這裡需要修改主機和填寫資料庫密碼,這裡直接填mysql,資料庫密碼是之前啟動mysql設定的密碼

剩下的就沒有什麼重要的了,自己配置就可以了

完成配置之後會自動下載一個LocalSettings.php

需要將這個檔案匯入到mediawiki容器中

docker cp LocalSettings.php mediawiki:/var/www/html/

瀏覽器再訪問ip地址就是mediawiki的首頁了

7.mediawiki檔案上傳配置

首先要進入容器進行:

docker exec -it mediawiki /bin/bash

7.1開啟檔案上傳

LocalSettings.php

#開啟檔案上傳功能
$wgEnableUploads = true;

7.2修改檔案上傳的支援型別

includes/DefaultSettings.php

#修改支援上傳的檔案型別
$wgFileExtensions = [ 'png', 'gif', 'jpg', 'jpeg', 'webp' ];

7.3修改上傳檔案大小限制

7.3.1修改mediawiki的檔案上傳配置

includes/DefaultSettings.php

# 檔案大小超出限制是否給出警告資訊
$wgUploadSizeWarning = false;
# 只能能夠上傳檔案的最大size
$wgMaxUploadSize = 1024 * 1024 * 100; # 100MB

7.3.2修改php的檔案上傳配置

在/var/www/html目錄下建立一個info.php檔案,然後:

echo "<?php phpinfo(); ?>" >> /var/www/html/info.php;

開啟瀏覽器訪問 你的ip/info.php ,在顯示頁面找到如下內容:

第一個是php配置檔案預設載入路徑,第二個是php配置檔案實際載入路徑,因為實際載入路徑為none,所以php使用的是預設載入路勁下的php.ini檔案,進入這個目錄

cd /usr/local/etc/php

我的這個目錄下沒有php.ini檔案

將php.ini-development重新命名為php.ini

mv php.ini-development php.ini

修改php.ini(需要重啟mediawiki容器才能生效)

upload_max_filesize = 8M
post_max_size = 8M

mediawiki會取DefaultSettings.php中的$wgMaxUploadSize、php.ini中的upload_max_filesize和php.ini中的post_max_size的最小值作為最終的上傳檔案大小限制。

8.mediawiki配置視覺化編輯器VisualEditor

8.1 配置parsoid

檢視mediawiki容器的ip:

docker inspect mediawiki

進入parsoid容器:

docker exec -it parsoid /bin/bash

將mediawiki的ip配置別名:

如果parsoid重啟這裡的hosts檔案就會丟失修改,需要重新配置

echo "127.17.0.4 mediawiki" >> /etc/hosts

parsoid服務的配置檔案在/var/lib/parsoid/config.yaml,按照上面的步驟做這裡就不需要修改。

8.2 配置mediawiki

LocalSettings.php

wfLoadExtension( 'VisualEditor' );

// Enable by default for everybody
$wgDefaultUserOptions['visualeditor-enable'] = 1;

// Optional: Set VisualEditor as the default for anonymous users
// otherwise they will have to switch to VE
// $wgDefaultUserOptions['visualeditor-editor'] = "visualeditor";

// Don't allow users to disable it
$wgHiddenPrefs[] = 'visualeditor-enable';

// OPTIONAL: Enable VisualEditor's experimental code features
#$wgDefaultUserOptions['visualeditor-enable-experimental'] = 1;
$wgVirtualRestConfig['modules']['parsoid'] = array(
    // URL to the Parsoid instance
    // Use port 8142 if you use the Debian package
    'url' => 'http://parsoid:8000',
    // Parsoid "domain", see below (optional)
    'domain' => 'mediawiki',
    // Parsoid "prefix", see below (optional)
    'prefix' => 'mediawiki'
);

之後再訪問mediawiki,點選編輯就可以使用VisualEditor編輯了

9.mediawiki新增公式支援

 

10.mediawiki配置視訊播放支援

 

11.修改登陸註冊框的提示語

/var/www/html/languages/i18n/zh-hans.json,在這個檔案裡搜,改相應的文字就好了

12.docker設定自動重啟

docker update --restart=always 容器名

13.設定時間,linux下的時區預設是有問題的

 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相關文章