MediaWikiのセットアップ
インストール
Docker Hub公式のDockerイメージが公開されている。
事前準備
docker-compose.yml
version: '3.8'services:mediawiki:image: mediawiki:1.37restart: alwaysports:- '127.0.0.1:8000:80'links:- databasevolumes:- ./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.7restart: alwaysvolumes:- database-data:/var/lib/mysqlenvironment:# @see https://phabricator.wikimedia.org/source/mediawiki/browse/master/includes/DefaultSettings.phpMYSQL_DATABASE: my_wikiMYSQL_USER: wikiuserMYSQL_PASSWORD: exampleMYSQL_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