MediaWiki maintenance
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.