TEHCC Wiki:Maintenance
Revision as of 07:45, 18 April 2020 by Tim (talk | contribs) (→Upgrade/Reinstall: add copy of composer.local.json)
Note! On the command line, you no longer need to specify the location of the latest version of php. When it calls for php you simply use php.
System Maintenance
Upgrade/Reinstall
Use to upgrade across major versions or to reinstall a borked install
- Get MediaWiki (per MediaWiki site)
- Download desired version MediaWiki Site using wget to the home directory
- Unpack using tar -xvzf (e.g.,
tar -xvzf mediawiki stable release number.tar.gz
) - Delete zipped tarball (e.g.,
rm mediawiki stable release number.tar.gz
)
- Copy customized files to new install (per MediaWiki site)
- Copy Localsettings.php (e.g.,
cp public_html/clubwiki/LocalSettings.php ~/mediawiki stable release number/
) - Copy composer.local.json (e.g.,
cp -R public_html/clubwiki/composer.local.json ~/mediawiki stable release number/
) - Copy kml folder (e.g.,
cp -R public_html/clubwiki/kml/ ~/mediawiki stable release number/
) - Copy Images folder (e.g.,
cp -R public_html/clubwiki/images/ ~/mediawiki stable release number/
)
- Copy Localsettings.php (e.g.,
- Move over to new install (per MediaWiki site)
- Move the existing installation to a temporary backup folder
mv ~/public_html/clubwiki/ ~/OLD.yyyymmdd.clubwiki
- Move the new installation to the public folder
mv ~/mediawiki stable release number ~/public_html/clubwiki
- Move the existing installation to a temporary backup folder
- Install extensions/handlers
- Composer - per Mediawiki site in wiki root folder, run
Web host doesn't like my link to get composer command
thenphp composer.phar self-update
- Add composer based extensions to requirements list, create as needed
vi composer.local.json
- Ensure you specify the most recent/desired versions- Semantic MediaWiki - whole site revolves around it
- Maps - For the embedded interactive maps
- Semantic result formats - permits semantic queries to other formats, I know array type is used by complex templates but I'm sure others have been used as well
- Semantic Compound Queries - permits advanced queries notably used in complex map templates
- Update/install specified extensions using composer
php composer.phar update --no-dev
- NumberFormat - Download extension and extract into the extension directory
tar -xzf extension.tar.gz -C ~/public_html/clubwiki/extensions/
- Page Forms - Download extension and extract into the extension directory
tar -xzf extension.tar.gz -C ~/public_html/clubwiki/extensions/
- Arrays - Simple extension download. Used for array manipulation in templates
- Header Tabs - Allows turning form pages (or really any page) into tabbed pages
- MyVariables - Allows referencing logged in user for form automation
- {https://www.mediawiki.org/wiki/Extension:SimpleTable SimpleTable] - Allows simple table definition, specifically easily working with a CSV list, install by creating file as specified
- Composer - per Mediawiki site in wiki root folder, run
- Run Mediawiki upgrade or command line update (per MediaWiki site)
- Lessons of the past...
- If upgrade stalls to white screen, likely a specified extension is not installed, check list and add as needed
- Lessons of the past...
- Done! (May need to ctrl-shift-R to force reload pages to avoid seeing errors)
Update MediaWiki
Patch - Available for point releases. Details on the MediaWiki site
- Download patch from the dumps site
- cd to
cd ~/public_html/clubwiki/
directory (the one with LocalSettings.php). - Download (wget) the patch file from the dumps site and gunzip it
gunzip mediawiki stable release number.patch.gz
. - Use
patch -p1 --dry-run
to check what will be changed (e.g.,patch -p1 --dry-run -i mediawiki stable release number.patch
) - If all is well, run patch again without
--dry-run
. - Check Special:Version and you should see the new version number in place.
- Delete patch files
rm mediawiki stable release number.patch*
Update extensions
NOTE: I have often got errors or configuration screens from the site after updating extensions. These are typically resolved by running the maintenance routine below. Sometimes a single browser temporarily refused to work, yet a different browser behaved normally.
- Composer based (Semantic MediaWiki, Maps, and Semantic Result Formats)
- cd to
cd ~/public_html/clubwiki/
directory (the one with LocalSettings.php). - Update composer
php composer.phar self-update
- Update using composer
php composer.phar update --no-dev
- cd to
- Composer extensions that need version number updated in composer.local.json
vi composer.local.json
- Semantic MediaWiki
- Maps
- Semantic Result Formats
- Semantic Compound Queries
- Rerun composer update if there were any updates to perform
php composer.phar update --no-dev
- Manual extensions - Go to Special:Version and compare what's shown on extension page
- NumberFormat - Download needed updates and extract into the extension directory
tar -xzf extension.tar.gz -C public_html/clubwiki/extensions/
- Page Forms - Download extension and extract into the extension directory
tar -xzf extension.tar.gz -C public_html/clubwiki/extensions/
- Arrays - Upload new version into extension folder
- Header Tabs - Upload new version into extension folder
- MyVariables - Upload new version into extension folder
- SimpleTable - Upload new version into extension folder
- NumberFormat - Download needed updates and extract into the extension directory
- Remaining extensions are part of MediaWiki and upgraded with it
- Update completion - run maintenance routine from
cd ~/public_html/clubwiki/
directory:php maintenance/update.php
- Finish any residual jobs - run manual maintenance runJobs from
cd ~/public_html/clubwiki/
directory:php maintenance/runJobs.php --maxjobs 1000
Site Maintenance
Cleanup after a spam/vandalism battle
- cd to
cd ~/public_html/clubwiki/
directory (the one with LocalSettings.php) - Delete archived revisions (deleted page revisions)
php maintenance/deleteArchivedRevisions.php
for dry run, then executephp maintenance/deleteArchivedRevisions.php --delete
- Delete users older than 7 days with no edits
php maintenance/removeUnusedAccounts.php --ignore-touched 7
for dry run, then executephp maintenance/removeUnusedAccounts.php --ignore-touched 7 --delete