NNTR = no need to repeat (if done once, should persist on my VM) == Upgrade MediaWiki == === Update PHP (NNTR) === * Assume you are starting with PHP 7.0 (NNTR) * install mbstring with `apt-get install php7.0-mbstring` (NNTR) * restart nginx and php7.0-fpm (NNTR) === Get basic MediaWiki setup in place === * Create folder ~/software/mediawiki/1.29 (NNTR) * Run `wget https://releases.wikimedia.org/mediawiki/1.29/mediawiki-1.29.2.tar.gz` in that folder (NNTR) * Run `tar -xvzf mediawiki-1.29.2.tar.gz` in that folder (NNTR) * Create new copy ~/mediawiki/-new/ with subfolders w/ and logs/ and copy ~/software/mediawiki/1.29/mediawiki-1.29.2/ into the subfolder w/ * Also touch logs/access.log and logs/error.log * Copy over ~/mediawiki//w/LocalSettings.php to ~/mediawiki/-new/w/LocalSettings.php * Copy over ~/mediawiki//w/extensions/ to ~/mediawiki/-new/w/extensions/ * Copy over ~/mediawiki//w/*.inc to ~/mediawiki/-new/w/ * Copy over images if you have any * chmod -R 777 ~/mediawiki/-new/w/images/ * Add the following in ~/mediawiki/-new/w/LocalSettings.php wfLoadSkin( 'CologneBlue' ); wfLoadSkin( 'Modern' ); wfLoadSkin( 'MonoBook' ); wfLoadSkin( 'Vector' ); * Go to ~/mediawiki/-new/w/maintenance and run `php7.0 update.php` * Turn off Semantic MediaWiki (since that needs separate upgrading) === Nginx === * Change / to -new/ in the nginx config * Restart Nginx and PHP7.0-FPM === Scribunto === * Create ~/software/mediawiki/extensions/scribunto/ (NNTR) * In there, run git clone git@github.com:wikimedia/mediawiki-extensions-Scribunto.git (NNTR) * Switch to branch REL1_29 (NNTR) * mkdir ~/mediawiki/-new/w/extensions/Scribunto * In Scribunto, cp -r ~/software/mediawiki/extensions/scribunto/mediawiki-extensions-Scribunto/* ./ * chmod a+x ~/mediawiki/-new/w/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_64_generic/lua * Add these two lines in ~/mediawiki/-new/w/extensionlist.inc require_once("extensions/Scribunto/Scribunto.php"); $wgScribuntoDefaultEngine = 'luastandalone'; * Go check that things are still running === ParserFunctions === * Create ~/software/mediawiki/extensions/ParserFunctions/ (NNTR) * In there, run git clone git@github.com:wikimedia/mediawiki-extensions-ParserFunctions.git (NNTR) * Switch to branch REL1_29 (NNTR) * Empty out if already present ~/mediawiki/-new/w/extensions/ParserFunctions * In ParserFunctions, cp -r ~/software/mediawiki/extensions/ParserFunctions/mediawiki-extensions-ParserFunctions/* ./ * In ~/mediawiki/-new/w/extensionlist.inc, add the line: wfLoadExtension( 'ParserFunctions' ); === Cite === * Create ~/software/mediawiki/extensions/Cite/ (NNTR) * In there, run git clone git@github.com:wikimedia/mediawiki-extensions-Cite.git (NNTR) * Switch to branch REL1_29 (NNTR) * Empty out if already present ~/mediawiki/-new/w/extensions/Cite * In Cite, cp -r ~/software/mediawiki/extensions/Cite/mediawiki-extensions-Cite/* ./ * In ~/mediawiki/-new/w/extensionlist.inc, add the line: wfLoadExtension( 'Cite' ); === MobileFrontend === * Create ~/software/mediawiki/extensions/MobileFrontend/ (NNTR) * In there, run git clone git@github.com:wikimedia/mediawiki-extensions-MobileFrontend.git (NNTR) * Switch to branch REL1_29 (NNTR) * Empty out if already present ~/mediawiki/-new/w/extensions/MobileFrontend * In MobileFrontend, cp -r ~/software/mediawiki/extensions/MobileFrontend/mediawiki-extensions-MobileFrontend/* ./ * In ~/mediawiki/-new/w/extensionlist.inc, add the line: wfLoadExtension( 'MobileFrontend' ); $wgMFAutodetectMobileView = true; === Math === * Create ~/software/mediawiki/extensions/Math/ (NNTR) * In there, run git clone git@github.com:wikimedia/mediawiki-extensions-Math.git (NNTR) * Switch to branch REL1_29 (NNTR) * Make some changes to math/render.ml by converting to absolute paths (NNTR) * Empty out if already present ~/mediawiki/-new/w/extensions/Math * In Math, cp -r ~/software/mediawiki/extensions/Math/mediawiki-extensions-Math/* ./ * Run make * In ~/mediawiki/-new/w/mathsettings.inc, add the line: wfLoadExtension( 'Math' ); and remove the line include_once ... === Other extensions to disable or upgrade === * Password Reset to disable * Quiz to upgrade or disable; upgrade if the extension exists and quiz pages are being used on the site, cp -r ~/software/mediawiki/extensions/Quiz/mediawiki-extensions-Quiz/* ./ === Upgrade Semantic MediaWiki === (Still not done) * wget SMW 1.8.0.5 (NNTR) and put in ~/software/mediawiki/extensions/semanticmediawiki/1.8.0.5/ and rename to something without spaces * `tar -xvzf ` * Delete your old SemanticMediaWiki/ and Validator/ in ~/mediawiki/-new/w/extensions/ and copy the new SemanticMediaWiki/ and Validator/ into that (BREAKS) * Update ~/mediawiki/-new/w/semanticsettings.inc adding the line `$smwgDefaultStore = 'SMWSQLStore2';` as per https://www.semantic-mediawiki.org/wiki/Help:Installation_1.8.0#Upgrading_existing_installations * Go to ~/mediawiki/-new/w/extensions/SemanticMediaWiki/maintenance and run `php7.0 SMW_setup.php -b SMWSQLStore3` * Now run `php7.0 SMW_refreshData.php -v -b SMWSQLStore3 -fp` * Comment out the line `$smwgDefaultStore = 'SMWSQLStore2';` from semanticsettings.inc * Make sure inclusion of semanticsettings.inc is commented out * Download and install Composer (NNTR) apt-get install php7.0-gd cd ~/software php7.0 -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php7.0 -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" mkdir -p composer mkdir -p composer/bin php7.0 composer-setup.php --install-dir=composer/bin --filename=composer cp composer/bin/composer /usr/bin/ php7.0 -r "unlink('composer-setup.php');" * Now install Semantic MediaWiki 2.5 (latest) cd ~/mediawiki/-new/w/ composer require mediawiki/semantic-media-wiki "~2.5" --update-no-dev * Now: php7.0 maintenance/update.php --quick --skip-external-dependencies # For Groupprops or other large wikis: --nopurge * Comment out Semantic MediaWiki and Validator inclusions from semanticsettings.inc, and uncomment inclusion of semanticsettings.inc * Just to double-check, rerun: php7.0 maintenance/update.php --quick --skip-external-dependencies * Finally, we need to rebuild all the data, so run php7.0 extensions/SemanticMediaWiki/maintenance/rebuildData.php