This page explains how to backup MediaWiki on macOS.

Create backup

I’m backing up to an iCloud folder. My MediaWiki is at /Users/jano/MediaWiki/notes and I’m going to backup to iCloud/storage/backup/localnotes.

#!/bin/bash

Mediawiki folder to backup

SOURCE_DIR=”/Users/jano/MediaWiki/notes” mkdir -p “$SOURCE_DIR”

Target folder where backup are stored

TARGET_DIR=”/Users/jano/Library/Mobile Documents/com~apple~CloudDocs/storage/backup/localnotes” mkdir -p “$TARGET_DIR”

echo “Backing up the website” tar -czf “$TARGET_DIR/web_$(date +%m_%d_%y).tgz” “$SOURCE_DIR”

echo “Backing up the database” mysqldump -u mediawiki –password=YourSecretPassword –single-transaction -B notes | gzip > “$TARGET_DIR/mysql_$(date +%m_%d_%y)_notes.gz”

echo “Finished.” open “$TARGET_DIR” exit 0 There is a way to store the database password outside the script. Create a file ~/.my.cnf with this content:

[client] user=mediawiki password=YourSecretPassword host=localhost Ensure only your user can read it:

chmod 600 ~/.my.cnf In mysqldump replace –password=YourSecretPassword with –defaults-file=~/.my.cnf.

Restore backup Restore the database:

sudo mysql -u root

Restore the database backup. This will create a database called ‘notes’.

SOURCE mysql_09_22_23_notes;

Create a user. This should match the user in LocalSettings.php

CREATE USER ‘mediawiki’@’localhost’ IDENTIFIED BY ‘MySecretPassword’; GRANT ALL PRIVILEGES ON notes.* TO ‘mediawiki’@’localhost’ WITH GRANT OPTION;

EXIT If you have a previous version, copy the whole folder:

rm -rf /Users/jano/MediaWiki/notes/ rsync -av /Users/jano/Developer/backup_rsync/www/notes/ /Users/jano/MediaWiki/notes/ cd /Users/jano/MediaWiki/notes/ Update PHP dependencies using Composer:

cd /Users/jano/MediaWiki/notes/ brew install composer composer update –no-dev Relocate folder If you need to relocate the MediaWiki installation to a different folder, edit the following.

In notes/LocalSettings.php:

$wgDebugLogFile = “/Users/jano/MediaWiki/debug.log”; $wgUploadDirectory = “/Users/jano/MediaWiki/notes/images”; In httpd.conf:

DocumentRoot “/Users/jano/MediaWiki/notes” <Directory “/Users/jano/MediaWiki/notes”> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> Upgrade MediaWiki To upgrade MediaWiki you have to replace the folder with the last version, but first you need to backup the following files:

images/ fonts/ favicon.ico LocalSettings.php After the installation, you need to compare the old LocalSettings.php with the backup version and copy back the customizations. I could move the custom section to an additional file, but I rather review the whole thing.

An improvement would be placing the uploads in a folder outside the MediaWiki installation, but changing the $wgUploadDirectory variable didn’t work. So, relocating this remains pending investigation.

$wgUploadDirectory = “/Users/jano/MediaWiki/notes/images”; For more questions, see also MediaWiki FAQ.