インストール
Docker Hub公式のDockerイメージが公開されている。
事前準備
docker-compose.yml
version: '3.8'
services:
mediawiki:
image: mediawiki:1.37
restart: always
ports:
- '127.0.0.1:8000:80'
links:
- database
volumes:
- ./app/images:/var/www/html/images
# After initial setup, download LocalSettings.php to the same directory as
# this yaml and uncomment the following line and use compose to restart
# the mediawiki service
# - ./LocalSettings.php:/var/www/html/LocalSettings.php
# - ./app/extensions:/var/www/html/extensions
# This key also defines the name of the database host used during setup instead of the default "localhost"
database:
image: mariadb:10.7
restart: always
volumes:
- database-data:/var/lib/mysql
environment:
# @see https://phabricator.wikimedia.org/source/mediawiki/browse/master/includes/DefaultSettings.php
MYSQL_DATABASE: my_wiki
MYSQL_USER: wikiuser
MYSQL_PASSWORD: example
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
volumes:
database-data:
nginx設定ファイル (/etc/nginx/sites-enabled/wiki.example.com.conf)
server {
server_name wiki.example.com;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# auth_basic "Authentication Required";
# auth_basic_user_file /path/to/.htpasswd;
location / {
proxy_pass http://localhost:8000;
}
}
手順
- docker-compose.yml、nginx設定ファイルを作成
- 必要に応じて
sudo certbot --nginxでHTTPS対応
- 必要に応じて
- 添付ファイルのアップロード先ディレクトリを作成
mkdir -p app/images docker-compose up -dでMediaWikiを起動- 起動時に
wikiexamplecom_mediawiki_1 is up-to-dateのようなログが表示されるので、isより前のMediaWikiコンテナ名を控える
- 起動時に
- ブラウザから初期設定
- 設定ファイル
LocalSettings.phpをコピーsudo docker cp MediaWikiコンテナ名:/var/www/html/LocalSettings.php ./LocalSettings.php
- 拡張機能をコピー
sudo docker cp MediaWikiコンテナ名:/var/www/html/extensions ./app/extensions
- docker-compose.ymlを開き、
./LocalSettings.php、./app/extensionsのコメントアウトを解除 - コンテナを再作成
sudo docker-compose up -d --force-recreate
拡張機能のインストール
インストール手順
- 拡張機能の配布ファイル(tar.gz)をサーバにダウンロード
- 配布ファイルを展開
- 展開した拡張機能ディレクトリを
app/extensions以下にコピー(app/extensions/Mathのように)- Dockerコンテナ内では
/var/www/html/extensions/Mathのように配置される
- Dockerコンテナ内では
LocalSettings.phpにwfLoadExtension( '拡張機能ディレクトリ名' );のように追記wfLoadExtension( 'Math' );wfLoadExtension( 'SyntaxHighlight_GeSHi' );
- 「メンテナンス:再起動」を実行
- 「メンテナンス:データベース構造の更新」を実行
数式(Math)
シンタックスハイライト(SyntaxHighlight)
設定
ロゴを変更
ロゴ変更 LocalSettings.php
## The URL paths to the logo. Make sure you change this from the default,
## or else you'll overwrite your logo when you upgrade!
#$wgLogos = [ '1x' => "$wgResourceBasePath/resources/assets/wiki.png" ];
$wgLogos = [ '1x' => "$wgResourceBasePath/images/logo.png" ];
ロゴ変更 手順
- LocalSettings.phpを編集
- ロゴ画像を
app/images/logo.pngに配置 - 「メンテナンス:再起動」を実行
既定のタイムゾーンを変更
タイムゾーン変更 LocalSettings.php
# Time zone
#$wgLocaltimezone = "UTC";
$wgLocaltimezone = "Asia/Tokyo";
タイムゾーン変更 手順
- LocalSettings.phpを編集
- 「メンテナンス:再起動」を実行
メンテナンス
再起動
sudo docker-compose up -d --force-recreate
データベース構造の更新
sudo docker-compose exec -u 1000 mediawiki php maintenance/update.php