User:Rogerhc/upgrade 1.31.1 LTS to 1.35.1 LTS (2021)

Upgrade of "production".com MW 1.31.1 to MW 1.35.1.

Manual:Upgrading << READ THAT FIRST, INSTEAD and BECAUSE.

https://shorturls.redwerks.org << DO -- Short URL (but root level short URL is not okay with Visual Editor so I will disable Extension:VisualEditor.

The following is a spiderweb intended to catch flys. Ym. Thoughts? No, flys.

First a dev.com wiki
Setup dev.com wiki.

I like to start with a fresh default install of the new MW version, then add the files (images, LocalSettings.php, extensions and configs) that production.com requires, then dump the production database in and test.

PHP version
PHP version of production.com MW1.31.1 is PHP 7.2 but MW1.35.1 requires PHP 7.3 or higher. Well, MW1.31.1 is compatible with PHP 7.3 but not PHP 7.4. So set production.com webhost to PHP 7.3, which both versions are compatible with.

cPanel >> Software >> Select PHP Version (set to PHP 7.3).

Wget MW1.35.1
See Manual:Upgrading

$ cd /path/to/your/new/installation/ $ wget https://releases.wikimedia.org/mediawiki/1.35/mediawiki-1.35.1.tar.gz $ tar -xvzf mediawiki-1.35.1.tar.gz $ rm mediawiki-1.35.1.tar.gz

Test
Test the dev.com wiki.

Vanilla install works okay.

Short URL
Root level short URL as in dev.com/Page_Name

First attempt using .htaccess and LocalSettings.php from production.com failed.

Fixed with .htaccess generated at https://shorturls.redwerks.org/

But that failed Visual Editor test, got error:

Error contacting the Parsoid/RESTBase server (HTTP 404)

Related links:
 * https://www.mediawiki.org/wiki/Topic:W2ahzg3yi27mvp9y -- my notes to Dantman (of MW and Redwerks)
 * https://shorturls.redwerks.org -- Dantman's short URL config tool.
 * https://www.mediawiki.org/w/index.php?title=Topic:Vv35plp6g16qno0s&topic_showPostId=vv4jia2ip0swopod#flow-post-vv4jia2ip0swopod -- magic carpet who knew
 * https://www.mediawiki.org/wiki/VisualEditor/Feedback -- Visual Editor Feedback page
 * Phabricator
 * https://phabricator.wikimedia.org/T270376 VisualeEditor: Error contacting the Parsoid/RESTBase server (HTTP 404)
 * https://phabricator.wikimedia.org/T263928 VisualEditor in 1.35 not working (404 / Permanent Loading)
 * https://phabricator.wikimedia.org/T261921 Visual Editor + Apache bug. Visual Editor not working when editing or creating a page with : or / characters in the Title. e.g. http://localhost/w/index.php/User:John/Newpage

Fixed by adding this to .htaccess:

RewriteCond %{HTTP_USER_AGENT} !^(VisualEditor)

See https://www.mediawiki.org/w/index.php?title=Topic:Vv35plp6g16qno0s&topic_showPostId=vv4jia2ip0swopod#flow-post-vv4jia2ip0swopod

Here's what the https://shorturls.redwerks.org config I'm using + that^ looks like, and it's working! :)

RewriteEngine On RewriteCond %{HTTP_USER_AGENT} !^(VisualEditor) RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/index.php [L]

RewriteCond %{HTTP_USER_AGENT} !^(VisualEditor) RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d RewriteRule ^/?images/thumb/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ %{DOCUMENT_ROOT}/thumb.php?f=$1&width=$2 [L,QSA,B]

RewriteCond %{HTTP_USER_AGENT} !^(VisualEditor) RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d RewriteRule ^/?images/thumb/archive/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ %{DOCUMENT_ROOT}/thumb.php?f=$1&width=$2&archived=1 [L,QSA,B]

My note on MW user:Dantman's talk page: https://www.mediawiki.org/wiki/Topic:W2ahzg3yi27mvp9y

SSL
Dang, above works for http:// but not for https://. When I switch to https:// I get this error when I click the VisualEditor "edit" link on a page:

Error contacting the Parsoid/RESTBase server: (curl error: 60) SSL peer certificate or SSH remote key was not OK

I am using a self-signed SSL certificate on dev.com. Don't know if that is an issue.

Related links

 * https://letsencrypt.org/getting-started/ -- free SSL certificate
 * https://certbot.eff.org/ -- tool to help with SSL certificate authentication

Then the production.com wiki
Do a full backup of production.com wiki (files AND database). Then replace production.com wiki files with the new dev.com wiki files, and update the database (maintenance/update.php). Don't bring the database over from dev.com. We don't want the testing cruft.

Freeze the exp.com wiki
Set no-edit at bottom of LocalSettings.php.

Clear jobs que
see Manual:runJobs.php $ php maintenance/runJobs.php

cp
cp the files to exp.com.MW1.31.1-20210101

dump
dump the database to exp.MW1.31.1-20210101.sql

Update database
maintenance/update.php or something

Unfreeze exp.com
Comment out no-edit lock at bottom of LocalSettings.php.

Test
If all fails, revert to backup of old version (and reset PHP version in cpanel if needed).