Maltfield Log/2025 Q1: Difference between revisions
Jump to navigation
Jump to search
(Feb 07) |
(Feb 08) |
||
Line 7: | Line 7: | ||
# [[User:Maltfield]] | # [[User:Maltfield]] | ||
# [[Special:Contributions/Maltfield]] | # [[Special:Contributions/Maltfield]] | ||
=Sat Feb 08, 2025= | |||
# here's tofu 3/3 (ISP, exit in Ecuador) | |||
<pre> | |||
Ecuador | |||
2025-02-08 | |||
INFO: Determining Latest Version of Wordpress Core | |||
INFO: Determining Latest Version of Wordpress Plugins | |||
. . . . | |||
INFO: Determining Latest Version of Wordpress Themes | |||
. . | |||
https://downloads.wordpress.org/release/wordpress-6.7.1.zip | |||
######################################################################### 100.0% | |||
https://downloads.wordpress.org/plugin/polylang.3.6.6.zip | |||
######################################################################### 100.0% | |||
https://downloads.wordpress.org/plugin/translatepress-multilingual.2.9.4.zip | |||
######################################################################### 100.0% | |||
https://downloads.wordpress.org/plugin/google-language-translator.6.0.20.zip | |||
######################################################################### 100.0% | |||
https://downloads.wordpress.org/plugin/gtranslate.3.0.7.zip | |||
######################################################################### 100.0% | |||
https://downloads.wordpress.org/theme/hestia.3.2.8.zip | |||
######################################################################### 100.0% | |||
https://downloads.wordpress.org/theme/neve.4.0.1.zip | |||
######################################################################### 100.0% | |||
2025-02-08 | |||
296K google-language-translator.6.0.20.zip | |||
700K gtranslate.3.0.7.zip | |||
8.0M hestia.3.2.8.zip | |||
7.1M neve.4.0.1.zip | |||
64K plugin.json | |||
592K polylang.3.6.6.zip | |||
2.1M translatepress-multilingual.2.9.4.zip | |||
28M wordpress-6.7.1.zip | |||
01246c9c90f1373ee83d8e5884e5abba264c62e7301d99a468fd8eb95144be05 google-language-translator.6.0.20.zip | |||
171eb362801ea28e74b302cd0fee472dbd5025a89f6c1634b5ca1029362a678c gtranslate.3.0.7.zip | |||
241b8c804ed1af72b1c9aa52f603730a52ebf7850383ac2e4d9dd163f6cfc3ca hestia.3.2.8.zip | |||
2b51e758d61b9d78ebd57d2afd9a967335bcb6866c5bff5a0d7157eecb6ec8cb neve.4.0.1.zip | |||
553e0118251211ef13964a88562bc6b859885f886811164d4a2751d9fe66f5e2 plugin.json | |||
3a4a7f8872d16cb3538e948b4f85acee7d823c04fe8c820259ef6e2735093bbb polylang.3.6.6.zip | |||
16f2e24d14af341c6208fb9cc08d0c4db33bf813a5b1668930e30c6179a1111c translatepress-multilingual.2.9.4.zip | |||
75f4e9cb71e583ca3f8b19691b5754adb9c981580762137f82443e1eec468f9c wordpress-6.7.1.zip | |||
user@disp8537:/tmp/tmp.bSWwWjZNTu$ | |||
</pre> | |||
# cool, all of these files match across all 3 TOFUs this time; I copied them to hetzer3 | |||
# ... | |||
# back on the wiki, it seems that we need to update LocalSettings.php such that: | |||
### the following skins are enabled: Cologne Blue, Modern, MonoBook, Vector | |||
### and the following extensions are enabled: CategoryTree, ConfirmEdit, Confirm User Accounts, ReCaptcha, UserMerge, Widgets | |||
# I used this command to add the skins | |||
<pre> | |||
# add skins (with wfLoadSkin() instead of require_once) | |||
grep 'wfSkinLoad' ${vhostDir}/LocalSettings.php || perl -0777 -pi -e "s/$wgDefaultSkin = 'Vector';/\$wgDefaultSkin = 'Vector';\n\nwfLoadSkin( 'CologneBlue' );\nwfLoadSkin( 'Modern' );\nwfLoadSkin( 'MonoBook' );\nwfLoadSkin( 'Vector' );/igs" ${vhostDir}/LocalSettings.php | grep -C4 wfLoadSkin | |||
</pre> | |||
# and this for the extensions | |||
<pre> | |||
# re-enable CategoryTree extension | |||
grep 'wfLoadExtension.*CategoryTree' ${vhostDir}/LocalSettings.php || perl -0777 -pi -e 's%#require_once\("{\$IP}/extensions/CategoryTree/CategoryTree.php"\);%#require_once("{$IP}/extensions/CategoryTree/CategoryTree.php");\n\nwfLoadExtension( "CategoryTree" );\n%igs' ${vhostDir}/LocalSettings.php | |||
# re-enable ConfirmEdit and switch to hCaptcha | |||
grep 'hCaptcha' ${vhostDir}/LocalSettings.php || perl -0777 -pi -e "s%\\\$wgCaptchaClass = 'SimpleCaptcha';%\#\\\$wgCaptchaClass = 'SimpleCaptcha';\n\nwfLoadExtensions([ 'ConfirmEdit', 'ConfirmEdit/hCaptcha' ]);\n\\\$wgHCaptchaSiteKey = 'your public/site key here';\n\\\$wgHCaptchaSecretKey = 'your private key here';\n%igs" ${vhostDir}/LocalSettings.php | |||
# re-enable ConfirmAccount extension | |||
grep 'wfLoadExtension.*ConfirmAccount' ${vhostDir}/LocalSettings.php || perl -0777 -pi -e 's%#require_once "\$IP/extensions/ConfirmAccount/ConfirmAccount.php";%#require_once "$IP/extensions/ConfirmAccount/ConfirmAccount.php";\n\nwfLoadExtension( "ConfirmAccount" );\n%igs' ${vhostDir}/LocalSettings.php | |||
# re-enable UserMerge extension | |||
sed -i 's%^\(\s*\)#wfLoadExtension\(.*\)UserMerge\(.*\)%\1wfLoadExtension\2UserMerge\3%' ${vhostDir}/LocalSettings.php | |||
# re-enable Widgets extension | |||
grep 'wfLoadExtension.*Widgets' ${vhostDir}/LocalSettings.php || perl -0777 -pi -e 's%#require_once\("\$IP/extensions/Widgets/Widgets.php"\);%#require_once("$IP/extensions/Widgets/Widgets.php");\n\nwfLoadExtension( "Widgets" );\n%igs' ${vhostDir}/LocalSettings.php | |||
</pre> | |||
# I also had an issue with the script to rsync over the extensions, but I fixed that in the CHG commands for migrating the wiki | |||
# curiously the definition for ConfirmEdit also specifies a captcha | |||
<pre> | |||
root@hetzner3 /var/www/html/wiki.opensourceecology.org # grep -iC2 confirmedit LocalSettings.php | |||
# ConfirmEdit | |||
# reCaptcha settings and keys | |||
#wfLoadExtensions([ 'ConfirmEdit', 'ConfirmEdit/ReCaptcha' ]); | |||
#$wgCaptchaClass = 'ReCaptcha'; | |||
$wgCaptchaClass = 'SimpleCaptcha'; | |||
root@hetzner3 /var/www/html/wiki.opensourceecology.org # | |||
<pre> | |||
# looks like we disabled ReCaptcha and swiched to SimpleCaptcha | |||
## the wiki article for this plugin says SimpleCaptcha presents a simple math challenge and isn't very effective https://www.mediawiki.org/wiki/Extension:ConfirmEdit#SimpleCaptcha_(calculation) | |||
<pre> | |||
Note that the display of a trivial maths problem as plaintext yields a captcha which can be trivially solved by automated means; as of 2012, sites using SimpleCaptcha are receiving significant amounts of spam and many automated registrations of spurious new accounts. Wikis currently using this as the default should therefore migrate to one of the other CAPTCHAs. | |||
</pre> | |||
## we should probably switch to hCaptcha, if anything https://www.mediawiki.org/wiki/Extension:ConfirmEdit#hCaptcha | |||
## it does not support mCaptcha | |||
## it does not support friendly captcha | |||
## we do need an API key for hCAPTCHA, but (as far as I can tell) it's free https://www.hcaptcha.com/plans | |||
# I created a new google account for this new service, and added its creds to our ose shared keepass | |||
# I created a new account on the hcaptcha website using ^ that gapps account, and added its creds to our ose shared keepass | |||
# I generated a new set of API keys (niknamed "wiki") and added the public "Site Key" and "Secret Key" to the notes section of the hcaptcha entry of our ose shared keepass | |||
# I granted michael and marcin gapps accounts access to the new hcaptcha-service-specific gapps gmail account, and I set it to forward all its emails to our shared ops google group list per https://wiki.opensourceecology.org/wiki/Google_Workspace#Google_Groups | |||
# ok, after enabling the skins & extensions && adding the hCaptcha creds to LocalSettings && clearing cache, I refreshed the Special:Version page Special:Version | |||
<pre> | |||
Installed software | |||
Product Version | |||
MediaWiki 1.43.0 | |||
PHP 8.2.26 (fpm-fcgi) | |||
ICU 72.1 | |||
MariaDB 10.11.6-MariaDB-0+deb12u1 | |||
Entry point URLs | |||
Entry point URL | |||
Article path /wiki/$1 | |||
Script path / | |||
index.php /index.php | |||
api.php /api.php | |||
rest.php /rest.php | |||
Installed skins | |||
Skin Version License Description Authors | |||
Cologne Blue – (9134d2e) 06:04, 24 December 2024 GPL-2.0-or-later A lightweight skin with minimal formatting Lee Daniel Crocker and others | |||
Modern – (5597681) 12:21, 14 December 2024 GPL-2.0-or-later A blue/gray skin with sidebar and top bar. Derived from MonoBook River Tarnell and others | |||
MonoBook – GPL-2.0-or-later The classic MediaWiki skin since 2004, named after the black-and-white photo of a book in the page background Gabriel Wicke, Isarra Yos and others | |||
Vector 1.0.0 GPL-2.0-or-later | |||
Provides 2 Vector skins: | |||
2011 - The Modern version of MonoBook with fresh look and many usability improvements. | |||
2022 - The Vector built as part of the WMF Desktop Improvements project. | |||
Readers Web Team, Trevor Parscal, Roan Kattouw, Alex Hollender, Bernard Wang, Clare Ming, Jan Drewniak, Jon Robson, Nick Ray, Sam Smith, Stephen Niedzielski and Volker E. | |||
Installed extensions | |||
Special pagesExtension Version License Description Authors | |||
Confirm User Accounts – (bb470fd) 05:57, 31 December 2024 GPL-2.0-or-later Gives bureaucrats the ability to confirm account requests Aaron Schulz | |||
Interwiki 3.2 GPL-2.0-or-later Adds a special page to view and edit the interwiki table Stephanie Amanda Stevens, Alexandre Emsenhuber, Robin Pepermans, Siebrand Mazeland, Platonides, Raimond Spekking, Sam Reed, Jack Phoenix, Calimonius the Estrange and others | |||
Nuke – GPL-2.0-or-later Gives administrators the ability to mass delete pages Brion Vibber and Jeroen De Dauw | |||
Replace Text 1.8 GPL-2.0-or-later Provides a special page to allow administrators to do a global string find-and-replace on all the content pages of a wiki Yaron Koren, Niklas Laxström and others | |||
UserMerge 1.10.2 (f9d2664) 06:00, 31 December 2024 GPL-2.0-or-later Merges references from one user to another user in the wiki database - will also delete old users following merge. Requires usermerge privileges Tim Laqua, Thomas Gries and Matthew April | |||
Parser hooksExtension Version License Description Authors | |||
CategoryTree – GPL-2.0-or-later Dynamically navigate the category structure Daniel Kinzler | |||
Cite – GPL-2.0-or-later Adds <ref> and <references> tags for citations Ævar Arnfjörð Bjarmason, Andrew Garrett, Brion Vibber, Ed Sanders, Marius Hoch, Steve Sanbeg, Trevor Parscal and others | |||
Widgets 1.6.0 (50da5c6) 06:09, 26 November 2024 GPL-2.0-or-later Allows wiki administrators to add free-form widgets to the wiki by editing pages within the Widget namespace. Community-contributed widgets can be found on MediaWikiWidgets.org Sergey Chernyshev, Yaron Koren and others | |||
Spam preventionExtension Version License Description Authors | |||
ConfirmEdit 1.6.0 GPL-2.0-or-later Provides CAPTCHA techniques to protect against spam and password-guessing Brion Vibber, Florian Schmidt, Sam Reed and others | |||
hCaptcha – GPL-2.0-or-later hCaptcha module for Confirm Edit Sam Reed and others | |||
OtherExtension Version License Description Authors | |||
Gadgets – GPL-2.0-or-later Lets users select custom CSS and JavaScript gadgets in their preferences Daniel Kinzler, Max Semenik, Timo Tijhof and Siddharth VP | |||
OATHAuth 0.5.0 GPL-2.0-or-later AND GPL-3.0-or-later Provides authentication support using HMAC based one-time passwords Ryan Lane, Robert Vogel <vogel@hallowelt.com>, Dejan Savuljesku <savuljesku@hallowelt.com> and Taavi Väänänen | |||
Installed libraries | |||
Installed server-side libraries | |||
Library Version License Description Authors | |||
bacon/bacon-qr-code 2.0.8 BSD-2-Clause BaconQrCode is a QR code generator for PHP. Ben Scholzen 'DASPRiD' | |||
christian-riesen/base32 1.6.0 MIT Base32 encoder/decoder according to RFC 4648 Christian Riesen | |||
composer/semver 3.4.3 MIT Semver library that offers utilities, version constraint parsing and validation. Nils Adermann, Jordi Boggiano and Rob Bast | |||
cssjanus/cssjanus 2.3.0 Apache-2.0 Convert CSS stylesheets between left-to-right and right-to-left. Roan Kattouw, Trevor Parscal and Timo Tijhof | |||
dasprid/enum 1.0.5 BSD-2-Clause PHP 7.1 enum implementation Ben Scholzen 'DASPRiD' | |||
endroid/qr-code 4.6.1 MIT Endroid QR Code Jeroen van den Enden | |||
guzzlehttp/guzzle 7.9.2 MIT Guzzle is a PHP HTTP client library Graham Campbell, Michael Dowling, Jeremy Lindblom, George Mponos, Tobias Nyholm, Márk Sági-Kazár and Tobias Schultze | |||
guzzlehttp/promises 2.0.4 MIT Guzzle promises library Graham Campbell, Michael Dowling, Tobias Nyholm and Tobias Schultze | |||
guzzlehttp/psr7 2.7.0 MIT PSR-7 message implementation that also provides common utility methods Graham Campbell, Michael Dowling, George Mponos, Tobias Nyholm, Márk Sági-Kazár, Tobias Schultze and Márk Sági-Kazár | |||
jakobo/hotp-php 2.0.0 BSD-3-Clause HOTP simplifies One Time Password systems for PHP Authentication Jakob Heuser | |||
justinrainbow/json-schema 5.3.0 MIT A library to validate a json schema. Bruno Prieto Reis, Justin Rainbow, Igor Wiedler and Robert Schönthal | |||
liuggio/statsd-php-client 1.0.18 MIT Statsd (Object Oriented) client library for PHP Giulio De Donato | |||
mck89/peast 1.16.3 BSD-3-Clause Peast is PHP library that generates AST for JavaScript code Marco Marchiò | |||
monolog/monolog 2.9.3 MIT Sends your logs to files, sockets, inboxes, databases and various web services Jordi Boggiano | |||
oojs/oojs-ui 0.51.2 MIT Provides library of common widgets, layouts, and windows. Bartosz Dziewoński, Ed Sanders, James D. Forrester, Kirsten Menger-Anderson, Kunal Mehta, Moriel Schottlender, Prateek Saxena, Roan Kattouw, Thiemo Kreuz, Timo Tijhof, Trevor Parscal and Volker E. | |||
pear/console_getopt 1.4.3 BSD-2-Clause More info available on: http://pear.php.net/package/Console_Getopt Andrei Zmievski, Stig Bakken and Greg Beaver | |||
pear/mail 2.0.0 BSD-3-Clause Class that provides multiple interfaces for sending emails. Chuck Hagenbuch, Armin Graefe, Richard Heyes and Aleksander Machniak | |||
pear/mail_mime 1.10.12 BSD-3-Clause Mail_Mime provides classes to create MIME messages Cipriano Groenendal and Aleksander Machniak | |||
pear/net_smtp 1.12.1 BSD-2-Clause An implementation of the SMTP protocol Jon Parise, Chuck Hagenbuch and Armin Graefe | |||
pear/net_socket 1.2.2 PHP License More info available on: http://pear.php.net/package/Net_Socket Chuck Hagenbuch, Aleksander Machniak and Stig Bakken | |||
pear/net_url2 2.2.2 BSD-3-Clause Class for parsing and handling URL. Provides parsing of URLs into their constituent parts (scheme, host, path etc.), URL generation, and resolving of relative URLs. David Coallier, Tom Klingenberg and Christian Schmidt | |||
pear/pear-core-minimal 1.10.15 BSD-3-Clause Minimal set of PEAR core files to be used as composer dependency Christian Weiske | |||
pear/pear_exception 1.0.2 BSD-2-Clause The PEAR Exception base class. Helgi Thormar and Greg Beaver | |||
psr/container 1.1.2 MIT Common Container Interface (PHP FIG PSR-11) PHP-FIG | |||
psr/http-client 1.0.3 MIT Common interface for HTTP clients PHP-FIG | |||
psr/http-factory 1.1.0 MIT PSR-17: Common interfaces for PSR-7 HTTP message factories PHP-FIG | |||
psr/http-message 1.1 MIT Common interface for HTTP messages PHP-FIG | |||
psr/log 1.1.4 MIT Common interface for logging libraries PHP-FIG | |||
ralouphie/getallheaders 3.0.3 MIT A polyfill for getallheaders. Ralph Khattar | |||
smarty/smarty 4.5.5 LGPL-3.0 Smarty - the compiling PHP template engine Monte Ohrt, Uwe Tews, Rodney Rehm and Simon Wisselink | |||
symfony/deprecation-contracts 2.5.3 MIT A generic function and convention to trigger deprecation notices Nicolas Grekas and Symfony Community | |||
symfony/polyfill-php80 1.31.0 MIT Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions Ion Bazan, Nicolas Grekas and Symfony Community | |||
symfony/polyfill-php81 1.31.0 MIT Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions Nicolas Grekas and Symfony Community | |||
symfony/polyfill-php82 1.31.0 MIT Symfony polyfill backporting some PHP 8.2+ features to lower PHP versions Nicolas Grekas and Symfony Community | |||
symfony/polyfill-php83 1.31.0 MIT Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions Nicolas Grekas and Symfony Community | |||
symfony/yaml 5.4.45 MIT Loads and dumps YAML files Fabien Potencier and Symfony Community | |||
wikimedia/assert 0.5.1 MIT Provides runtime assertions Daniel Kinzler and Thiemo Kreuz | |||
wikimedia/at-ease 3.0.0 GPL-2.0-or-later Safe replacement to @ for suppressing warnings. Tim Starling and MediaWiki developers | |||
wikimedia/base-convert 2.0.2 GPL-2.0-or-later Convert an arbitrarily-long string from one numeric base to another, optionally zero-padding to a minimum column width. Brion Vibber and Tyler Romeo | |||
wikimedia/bcp-47-code 2.0.0 GPL-2.0-or-later Simple interface representing languages which have a BCP 47 code C. Scott Ananian | |||
wikimedia/cdb 3.0.0 GPL-2.0-or-later Constant Database (CDB) wrapper library for PHP. Provides pure-PHP fallback when dba_* functions are absent. Tim Starling, Chad Horohoe, Ori Livneh and Daniel Kinzler | |||
wikimedia/cldr-plural-rule-parser 2.0.0 GPL-2.0-or-later Evaluates plural rules specified in the CLDR project notation. Tim Starling and Niklas Laxström | |||
wikimedia/common-passwords 0.5.0 MIT List of the 100,000 most commonly used passwords Sam Reed | |||
wikimedia/composer-merge-plugin 2.1.0 MIT Composer plugin to merge multiple composer.json files Bryan Davis | |||
wikimedia/equivset 1.7.0 GPL-2.0-or-later Visually Equivalent Set of UTF-8 Characters Brooke Vibber, David Barratt, Thiemo Kreuz and Umherirrender | |||
wikimedia/html-formatter 4.1.0 GPL-2.0-or-later Performs transformations of HTML by wrapping around libxml2 and working around its countless bugs. MediaWiki contributors | |||
wikimedia/idle-dom 1.0.0 MIT DOM interfaces automatically generated from WebIDL C. Scott Ananian | |||
wikimedia/ip-utils 5.0.0 GPL-2.0-or-later Parse, match, and analyze IP addresses and CIDR ranges MediaWiki developers | |||
wikimedia/json-codec 3.0.3 GPL-2.0-or-later Interfaces to serialize and deserialize PHP objects to/from JSON Petr Pchelko, Daniel Kinzler and C. Scott Ananian | |||
wikimedia/less.php 5.1.2 Apache-2.0 PHP port of the LESS processor Timo Tijhof, Josh Schmidt, Matt Agar and Martin Jantošovič | |||
wikimedia/minify 2.8.0 Apache-2.0 Minification of JavaScript code and CSS stylesheets. Paul Copperman, Trevor Parscal, Timo Tijhof and Roan Kattouw | |||
wikimedia/normalized-exception 2.0.0 MIT A helper for making exceptions play nice with PSR-3 logging Gergő Tisza | |||
wikimedia/object-factory 5.0.1 GPL-2.0-or-later Construct objects from configuration instructions Bryan Davis | |||
wikimedia/parsoid 0.20.1 GPL-2.0-or-later Parsoid, a bidirectional parser between wikitext and HTML5 Wikimedia Content Transform Team and the broader MediaWiki community | |||
wikimedia/php-session-serializer 3.0.0 GPL-2.0-or-later Provides methods like PHP's session_encode and session_decode that don't mess with $_SESSION Brad Jorsch | |||
wikimedia/purtle 2.0.0 GPL-2.0-or-later Fast streaming RDF serializer Daniel Kinzler, Stanislav Malyshev, Thiemo Kreuz and C. Scott Ananian | |||
wikimedia/relpath 4.0.1 MIT Work with file paths to join or find the relative path Ori Livneh | |||
wikimedia/remex-html 4.1.1 MIT Fast HTML 5 parser Tim Starling | |||
wikimedia/request-timeout 2.0.0 MIT Request timeout library for Excimer with plain PHP fallback Tim Starling | |||
wikimedia/running-stat 2.1.0 GPL-2.0-or-later PHP implementations of online statistical algorithms Ori Livneh | |||
wikimedia/scoped-callback 5.0.0 GPL-2.0-or-later Make a callback run when a dummy object leaves the scope. Aaron Schulz | |||
wikimedia/services 4.0.0 GPL-2.0-or-later Generic service to manage named services using lazy instantiation based on instantiator callback functions Daniel Kinzler | |||
wikimedia/shellbox 4.1.1 MIT Library and server for containerized shell execution Tim Starling, Kunal Mehta and Max Semenik | |||
wikimedia/timestamp 4.1.1 GPL-2.0-or-later Creation, parsing, and conversion of timestamps Tyler Romeo | |||
wikimedia/utfnormal 4.0.0 GPL-2.0-or-later Contains Unicode normalization routines, including both pure PHP implementations and automatic use of the 'intl' PHP extension when present Brion Vibber | |||
wikimedia/wait-condition-loop 2.0.2 GPL-2.0-or-later Wait loop that reaches a condition or times out Aaron Schulz | |||
wikimedia/wikipeg 4.0.0 MIT Parser generator for JavaScript and PHP | |||
wikimedia/wrappedstring 4.0.1 MIT Automatically compact sequentially-outputted strings that share a common prefix / suffix pair. Timo Tijhof | |||
wikimedia/xmp-reader 0.9.4 GPL-2.0-or-later Reader for XMP data containing properties relevant to images Brian Wolff | |||
wikimedia/zest-css 3.0.1 MIT Fast, lightweight, extensible CSS selector engine for PHP Christopher Jeffrey and C. Scott Ananian | |||
zordius/lightncandy 1.2.6 MIT An extremely fast PHP implementation of handlebars ( http://handlebarsjs.com/ ) and mustache ( http://mustache.github.io/ ). Zordius Chen | |||
Installed client-side libraries | |||
Library Version License Authors Source | |||
CLDRPluralRuleParser 1.3.1-0dda851 MIT Santhosh Thottingal MediaWiki | |||
codex-design-tokens 1.14.0 GPL-2.0+ Design System team, Wikimedia Foundation MediaWiki | |||
codex-icons 1.14.0 MIT Design System team, Wikimedia Foundation MediaWiki | |||
codex 1.14.0 GPL-2.0+ Design System team, Wikimedia Foundation MediaWiki | |||
fetch-polyfill 3.6.2 MIT GitHub, Inc. MediaWiki | |||
intersection-observer 0.12.0 Apache-2.0 Philip Walton MediaWiki | |||
jquery.chosen 1.8.2 MIT Patrick Filler for Harvest, Matthew Lettini, Patrick Filler, Ken Earley, Christophe Coevoet, Koen Punt, and T.J. Schuck. MediaWiki | |||
jquery.client 3.0.0 MIT Trevor Parscal, Timo Tijhof, and Roan Kattouw MediaWiki | |||
jquery.i18n 1.0.10 MIT OR GPL-2.0-or-later Language Engineering team, Wikimedia Foundation MediaWiki | |||
jquery.ui 1.9.2 MIT OpenJS Foundation and other contributors MediaWiki | |||
jquery 3.7.1 MIT OpenJS Foundation and other contributors MediaWiki | |||
moment 2.25.2 MIT JS Foundation and other contributors MediaWiki | |||
mustache 4.2.0 MIT Michael Jackson, Jan Lehnardt, Phillip Johnsen, and other contributors MediaWiki | |||
oojs 7.0.1 MIT OOjs Team and other contributors MediaWiki | |||
ooui 0.51.2 MIT OOUI Team and other contributors MediaWiki | |||
pako 2.1.0 MIT AND Zlib Andrei Tuputcyn, Vitaly Puzrin, Friedel Ziegelmayer, Kirill Efimov, Jean-loup Gailly, and Mark Adler MediaWiki | |||
pinia 2.0.16 MIT Eduardo San Martin Morote MediaWiki | |||
qunitjs 2.20.0 MIT OpenJS Foundation and other contributors MediaWiki | |||
sinonjs 1.17.7 BSD-3-Clause Christian Johansen and other contributors MediaWiki | |||
swagger-ui 4.15.5 Apache-2.0 Kyle Shockey, Tony Tam, Vladimír Gorej, and others MediaWiki | |||
url 3.111.0-0ece79ce32 MIT Financial Times MediaWiki | |||
vue-demi 0.14.7 MIT Anthony Fu MediaWiki | |||
vue 3.4.27 MIT Yuxi (Evan) You MediaWiki | |||
vuex 4.0.2 MIT Yuxi (Evan) You MediaWiki | |||
Parser extension tags | |||
<categorytree>, <gallery>, <html>, <indicator>, <langconvert>, <nowiki>, <pre>, <ref> and <references> | |||
Parser function hooks | |||
{{anchorencode}}, {{BASEPAGENAME}}, {{BASEPAGENAMEE}}, {{#bcp47}}, {{bidi}}, {{canonicalurl}}, {{canonicalurle}}, {{CASCADINGSOURCES}}, {{#categorytree}}, {{DEFAULTSORT}}, {{#dir}}, {{DISPLAYTITLE}}, {{filepath}}, {{#FORMAL}}, {{#formatdate}}, {{formatnum}}, {{FULLPAGENAME}}, {{FULLPAGENAMEE}}, {{fullurl}}, {{fullurle}}, {{gender}}, {{grammar}}, {{int}}, {{#language}}, {{lc}}, {{lcfirst}}, {{localurl}}, {{localurle}}, {{NAMESPACE}}, {{NAMESPACEE}}, {{NAMESPACENUMBER}}, {{ns}}, {{nse}}, {{NUMBERINGROUP}}, {{NUMBEROFACTIVEUSERS}}, {{NUMBEROFADMINS}}, {{NUMBEROFARTICLES}}, {{NUMBEROFEDITS}}, {{NUMBEROFFILES}}, {{NUMBEROFPAGES}}, {{NUMBEROFUSERS}}, {{padleft}}, {{padright}}, {{pageid}}, {{PAGENAME}}, {{PAGENAMEE}}, {{PAGESINCATEGORY}}, {{PAGESIZE}}, {{plural}}, {{PROTECTIONEXPIRY}}, {{PROTECTIONLEVEL}}, {{REVISIONDAY}}, {{REVISIONDAY2}}, {{REVISIONID}}, {{REVISIONMONTH}}, {{REVISIONMONTH1}}, {{REVISIONTIMESTAMP}}, {{REVISIONUSER}}, {{REVISIONYEAR}}, {{ROOTPAGENAME}}, {{ROOTPAGENAMEE}}, {{#special}}, {{#speciale}}, {{SUBJECTPAGENAME}}, {{SUBJECTPAGENAMEE}}, {{SUBJECTSPACE}}, {{SUBJECTSPACEE}}, {{SUBPAGENAME}}, {{SUBPAGENAMEE}}, {{#tag}}, {{TALKPAGENAME}}, {{TALKPAGENAMEE}}, {{TALKSPACE}}, {{TALKSPACEE}}, {{uc}}, {{ucfirst}}, {{urlencode}} and {{#widget}} | |||
</pre> | |||
# side-note: the wiki actually looks nice now that the skins are fixed; and there's no error at the top of every page | |||
# diffing that with hetzner2, and looks like we're still missing | |||
## extension: Renameuser | |||
## extension: ParserFunctions | |||
# according to this page, ParserFunctions should be included with MediaWiki core. I guess it just doesn't show up as an "extension" anymore like some of the others that were merged with core https://www.mediawiki.org/wiki/Extension:ParserFunctions | |||
<pre> | |||
This extension comes with MediaWiki 1.18 and above. Thus you do not have to download it again. However, you still need to follow the other instructions provided. | |||
</pre> | |||
# oh, I think I need to activate it with | |||
<pre> | |||
wfLoadExtension( 'ParserFunctions' ); | |||
</pre> | |||
# yeah, I'm missing this | |||
<pre> | |||
root@hetzner3 /var/www/html/wiki.opensourceecology.org # grep -i parser LocalSettings.php | |||
# ParserFunctions | |||
#require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" ); | |||
# Parser Cache should still use the DB per Aaron Schulz | |||
$wgParserCacheType = CACHE_DB; | |||
root@hetzner3 /var/www/html/wiki.opensourceecology.org # | |||
</pre> | |||
# I added it with | |||
<pre> | |||
# re-enable ParserFunctions extension | |||
grep 'wfLoadExtension.*ParserFunctions' ${vhostDir}/LocalSettings.php || perl -0777 -pi -e 's%#require_once\( "\$IP/extensions/ParserFunctions/ParserFunctions.php" \);%#require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" );\n\nwfLoadExtension( "ParserFunctions" );\n%igs' ${vhostDir}/LocalSettings.php | |||
</pre> | |||
# it looks like RenameUser was also merged to core https://www.mediawiki.org/wiki/Manual:Renameuser | |||
# it's not clear if this one requires activation with wfLoadExtension() or not | |||
# the way to check would be to login and go to Special:Renameuser | |||
# well, it looks like the wiki is more broken than I realized | |||
# clicking "Login" redirects to the osemain site for some reason | |||
## http://opensourceecology.org/index.php?title=Special:UserLogin -> | |||
## https://www.opensourceecology.org/ | |||
# and loading the frontpage has an error | |||
<pre> | |||
[Z6gB-0saz-Rit8IwiiNJYQAAAAk] 2025-02-09 01:16:44: Fatal exception of type "RuntimeException" | |||
</pre> | |||
# at the same time, this got spat-out to the apache error log | |||
<pre> | |||
[Sun Feb 09 01:17:04.465571 2025] [proxy_fcgi:error] [pid 2169915:tid 2169915] [client 127.0.0.1:0] AH01071: Got error 'PHP message: PHP Warning: fopen(): open_basedir restriction in effect. File(/var/lib/php/tmp_upload/mw-GlobalIdGenerator-UUID-128) is not within the allowed path(s): (/home/wp/.wp-cli:/usr/share/pear:/var/lib/php/tmp:/var/lib/php/sessions:/var/www/html/www.openbuildinginstitute.org:/var/www/html/staging.openbuildinginstitute.org/:/var/www/html/staging.opensourceecology.org/:/var/www/html/www.opensourceecology.org/:/var/www/html/fef.opensourceecology.org/:/var/www/html/seedhome.openbuildinginstitute.org:/var/www/html/oswh.opensourceecology.org/:/var/www/html/wiki.opensourceecology.org/:/var/www/html/cacti.opensourceecology.org/:/var/www/html/store.opensourceecology.org:/var/www/html/microfactory.opensourceecology.org:/var/www/html/phplist.opensourceecology.org) in /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/uuid/GlobalIdGenerator.php on line 451; PHP message: PHP Warning: fopen(/var/lib/php/tmp_upload/mw-GlobalIdGenerator-UUID-128): Failed to open stream: Operation not permitted in /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/uuid/GlobalIdGenerator.php on line 451', referer: https://wiki.opensourceecology.org/ | |||
</pre> | |||
# yeah, this looks like an error in my php.ini config | |||
# on one hand, I defined 'upload_tmp_dir' to be '/var/lib/php/tmp_upload' | |||
<pre> | |||
user@personal:~/sandbox_local/ansible/hetzner3$ grep upload_tmp_dir roles/maltfield.php/templates/php_8.2.ini.j2 | |||
;upload_tmp_dir = | |||
upload_tmp_dir = /var/lib/php/tmp_upload | |||
user@personal:~/sandbox_local/ansible/hetzner3$ grep basedir roles/maltfield.php/templates/php_8.2.ini.j2 | |||
; open_basedir, if set, limits all file operations to the defined directory | |||
; https://php.net/open-basedir | |||
open_basedir = "/home/wp/.wp-cli:/usr/share/pear:/var/lib/php/tmp:/var/lib/php/sessions:/var/www/html/www.openbuildinginstitute.org:/var/www/html/staging.openbuildinginstitute.org/:/var/www/html/staging.opensourceecology.org/:/var/www/html/www.opensourceecology.org/:/var/www/html/fef.opensourceecology.org/:/var/www/html/seedhome.openbuildinginstitute.org:/var/www/html/oswh.opensourceecology.org/:/var/www/html/wiki.opensourceecology.org/:/var/www/html/cacti.opensourceecology.org/:/var/www/html/store.opensourceecology.org:/var/www/html/microfactory.opensourceecology.org:/var/www/html/phplist.opensourceecology.org" | |||
; Note: if open_basedir is set, the cache is disabled | |||
user@personal:~/sandbox_local/ansible/hetzner3$ | |||
</pre> | |||
# but on another hand, that's not included in the open_basedir var | |||
# I fixed this in ansible https://github.com/OpenSourceEcology/ansible/commit/01d8dd8ea0a49a4306c22d96eb5878907196f3f4 | |||
# I pushed it with ansible and restarted both php and apache | |||
<pre> | |||
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # systemctl restart php8.2-fpm apache2 | |||
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # varnishadm 'ban req.http.host ~ "wiki.opensourceecology.org"' | |||
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # | |||
</pre> | |||
# but I'm still getting an error | |||
<pre> | |||
[Sun Feb 09 07:15:57.201538 2025] [proxy_fcgi:error] [pid 2310677:tid 2310677] [client 127.0.0.1:0] AH01071: Got error 'PHP message: PHP Warning: fopen(): open_basedir restriction in effect. File(/var/lib/php/tmp_upload/mw-GlobalIdGenerator-UUID-128) is not within the allowed path(s): (/home/wp/.wp-cli:/usr/share/pear:/var/lib/php/tmp:/var/lib/php/tmp_upload:/var/lib/php/sessions:/var/www/html/www.openbuildinginstitute.org:/var/www/html/staging.openbuildinginstitute.org/:/var/www/html/staging.opensourceecology.org/:/var/www/html/www.opensourceecology.org/:/var/www/html/fef.opensourceecology.org/:/var/www/html/seedhome.openbuildinginstitute.org:/var/www/html/oswh.opensourceecology.org/:/var/www/html/wiki.opensourceecology.org/:/var/www/html/cacti.opensourceecology.org/:/var/www/html/store.opensourceecology.org:/var/www/html/microfactory.opensourceecology.org:/var/www/html/phplist.opensourceecology.org) in /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/uuid/GlobalIdGenerator.php on line 451; PHP message: PHP Warning: fopen(/var/lib/php/tmp_upload/mw-GlobalIdGenerator-UUID-128): Failed to open stream: Operation not permitted in /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/uuid/GlobalIdGenerator.php on line 451' | |||
</pre> | |||
# it's curious that the diff between those last two error messages now shows that the relevant dir is, in fact, in the open_basedir list. what gives? | |||
# oh, the dir doesn't exist! | |||
<pre> | |||
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # ls -lah /var/lib/php | |||
total 24K | |||
drwxr-xr-x 6 root root 4,0K Sep 25 01:23 . | |||
drwxr-xr-x 36 root root 4,0K Oct 3 04:29 .. | |||
drwxr-xr-x 3 root root 4,0K Sep 25 01:23 modules | |||
drwx-wx-wt 2 root root 4,0K Feb 8 23:39 sessions | |||
drwx------ 2 www-data root 4,0K Sep 25 01:23 soap_cache | |||
drwx------ 2 www-data root 4,0K Jan 30 22:26 tmp | |||
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # | |||
</pre> | |||
# I updated the php role in ansible to create this dir https://github.com/OpenSourceEcology/ansible/commit/66cdaec9f5fcd716f6d97295c946ce90dfb85f1c | |||
# I pushed ansible, restarted apache & php, and cleared varnish | |||
# this time the front page loads. horray! | |||
# I clicked the "login" button, but I'm still being redirected to www.opensourceecology.org for some reason | |||
# yeah, for some reason attempting to load the login page just 301 redirects to osemain | |||
<pre> | |||
user@disp1568:~$ curl -IL "https://opensourceecology.org/index.php?title=Special:UserLogin" | |||
HTTP/1.1 301 Moved Permanently | |||
Server: nginx | |||
Date: Sun, 09 Feb 2025 07:26:09 GMT | |||
Content-Type: text/html | |||
Content-Length: 162 | |||
Connection: keep-alive | |||
Location: https://www.opensourceecology.org/index.php | |||
Strict-Transport-Security: max-age=15552001 | |||
Public-Key-Pins: pin-sha256="UbSbHFsFhuCrSv9GNsqnGv4CbaVh5UV5/zzgjLgHh9c="; pin-sha256="YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg="; pin-sha256="C5+lpZ7tcVwmwQIMcRtPbsQtWLABXhQzejna0wHFr8M="; pin-sha256="Vjs8r4z+80wjNcr1YKepWQboSIRi63WsWXhIMN+eWys="; pin-sha256="lCppFqbkrlJ3EcVFAkeip0+44VaoJUymbnOaEUk7tEU="; pin-sha256="K87oWBWM9UZfyddvDfoxL+8lpNyoUB2ptGtn0fv6G2Q="; pin-sha256="Y9mvm0exBk1JoQ57f9Vm28jKo5lFm/woKcVxrYxu80o="; pin-sha256="EGn6R6CqT4z3ERscrqNl7q7RC//zJmDe9uBhS/rnCHU="; pin-sha256="NIdnza073SiyuN1TUa7DDGjOxc1p0nbfOCfbxPWAZGQ="; pin-sha256="fNZ8JI9p2D/C+bsB3LH3rWejY9BGBDeW0JhMOiMfa7A="; pin-sha256="oyD01TTXvpfBro3QSZc1vIlcMjrdLTiL/M9mLCPX+Zo="; pin-sha256="0cRTd+vc1hjNFlHcLgLCHXUeWqn80bNDH/bs9qMTSPo="; pin-sha256="MDhNnV1cmaPdDDONbiVionUHH2QIf2aHJwq/lshMWfA="; pin-sha256="OIZP7FgTBf7hUpWHIA7OaPVO2WrsGzTl9vdOHLPZmJU="; max-age=3600; includeSubDomains; report-uri="http://opensourceecology.org/hpkp-report" | |||
HTTP/1.1 301 Moved Permanently | |||
Server: nginx | |||
Date: Sun, 09 Feb 2025 07:25:09 GMT | |||
Content-Type: text/html; charset=UTF-8 | |||
Content-Length: 0 | |||
Connection: keep-alive | |||
Location: https://www.opensourceecology.org/ | |||
X-XSS-Protection: 1; mode=block | |||
X-Varnish: 16885187 3647332 | |||
Age: 7994 | |||
Via: 1.1 varnish-v4 | |||
Strict-Transport-Security: max-age=15552001 | |||
Public-Key-Pins: pin-sha256="UbSbHFsFhuCrSv9GNsqnGv4CbaVh5UV5/zzgjLgHh9c="; pin-sha256="YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg="; pin-sha256="C5+lpZ7tcVwmwQIMcRtPbsQtWLABXhQzejna0wHFr8M="; pin-sha256="Vjs8r4z+80wjNcr1YKepWQboSIRi63WsWXhIMN+eWys="; pin-sha256="lCppFqbkrlJ3EcVFAkeip0+44VaoJUymbnOaEUk7tEU="; pin-sha256="K87oWBWM9UZfyddvDfoxL+8lpNyoUB2ptGtn0fv6G2Q="; pin-sha256="Y9mvm0exBk1JoQ57f9Vm28jKo5lFm/woKcVxrYxu80o="; pin-sha256="EGn6R6CqT4z3ERscrqNl7q7RC//zJmDe9uBhS/rnCHU="; pin-sha256="NIdnza073SiyuN1TUa7DDGjOxc1p0nbfOCfbxPWAZGQ="; pin-sha256="fNZ8JI9p2D/C+bsB3LH3rWejY9BGBDeW0JhMOiMfa7A="; pin-sha256="oyD01TTXvpfBro3QSZc1vIlcMjrdLTiL/M9mLCPX+Zo="; pin-sha256="0cRTd+vc1hjNFlHcLgLCHXUeWqn80bNDH/bs9qMTSPo="; pin-sha256="MDhNnV1cmaPdDDONbiVionUHH2QIf2aHJwq/lshMWfA="; pin-sha256="OIZP7FgTBf7hUpWHIA7OaPVO2WrsGzTl9vdOHLPZmJU="; max-age=3600; includeSubDomains; report-uri="http://opensourceecology.org/hpkp-report" | |||
HTTP/1.1 200 OK | |||
Server: nginx | |||
Date: Sun, 09 Feb 2025 07:25:09 GMT | |||
Content-Type: text/html; charset=UTF-8 | |||
Content-Length: 56627 | |||
Connection: keep-alive | |||
Link: <https://www.opensourceecology.org/wp-json/>; rel="https://api.w.org/" | |||
Link: <https://www.opensourceecology.org/>; rel=shortlink | |||
X-XSS-Protection: 1; mode=block | |||
X-Varnish: 16885189 15314564 | |||
Age: 7994 | |||
Via: 1.1 varnish-v4 | |||
Strict-Transport-Security: max-age=15552001 | |||
Public-Key-Pins: pin-sha256="UbSbHFsFhuCrSv9GNsqnGv4CbaVh5UV5/zzgjLgHh9c="; pin-sha256="YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg="; pin-sha256="C5+lpZ7tcVwmwQIMcRtPbsQtWLABXhQzejna0wHFr8M="; pin-sha256="Vjs8r4z+80wjNcr1YKepWQboSIRi63WsWXhIMN+eWys="; pin-sha256="lCppFqbkrlJ3EcVFAkeip0+44VaoJUymbnOaEUk7tEU="; pin-sha256="K87oWBWM9UZfyddvDfoxL+8lpNyoUB2ptGtn0fv6G2Q="; pin-sha256="Y9mvm0exBk1JoQ57f9Vm28jKo5lFm/woKcVxrYxu80o="; pin-sha256="EGn6R6CqT4z3ERscrqNl7q7RC//zJmDe9uBhS/rnCHU="; pin-sha256="NIdnza073SiyuN1TUa7DDGjOxc1p0nbfOCfbxPWAZGQ="; pin-sha256="fNZ8JI9p2D/C+bsB3LH3rWejY9BGBDeW0JhMOiMfa7A="; pin-sha256="oyD01TTXvpfBro3QSZc1vIlcMjrdLTiL/M9mLCPX+Zo="; pin-sha256="0cRTd+vc1hjNFlHcLgLCHXUeWqn80bNDH/bs9qMTSPo="; pin-sha256="MDhNnV1cmaPdDDONbiVionUHH2QIf2aHJwq/lshMWfA="; pin-sha256="OIZP7FgTBf7hUpWHIA7OaPVO2WrsGzTl9vdOHLPZmJU="; max-age=3600; includeSubDomains; report-uri="http://opensourceecology.org/hpkp-report" | |||
user@disp1568:~$ | |||
</pre> | |||
# I tried the "Request Account" page instead. This one works. | |||
## It also has the hCaptcha at the bottom of the page, which is working great too ☺ | |||
# wtf, I found that if I click the "login" link on the "register" page, then I can get the login page! https://wiki.opensourceecology.org/wiki/Special:UserLogin | |||
# ah, duh, I just realized from the curl above that I was loading the naked domain. For some reason the big "log in" link on the top-right of the site is missing the 'wiki.' subdomain. That's the problem. | |||
# when I search the LocalSettings.php file for 'Login', this looks suspicious | |||
<pre> | |||
################### | |||
# FUNCTION HOOKDS # | |||
################### | |||
# See http://www.mediawiki.org/wiki/Manual:Hooks/GetLocalURL | |||
function fnMakeAbsoluteURL( &$title, &$url, $query ) { | |||
global $wgServer; | |||
$indexRe = "/title=Special:.*Login|\/Special:Contact/"; | |||
if ( preg_match( $indexRe, $url ) ) | |||
# $url = preg_replace( $indexRe, "", $url ); | |||
$url = $wgServer . $url; | |||
return true; | |||
} | |||
$wgHooks['GetLocalURL'][] = 'fnMakeAbsoluteURL'; | |||
</pre> | |||
# yeah, if I comment-out that block, then the issue goes away. | |||
# ah, I think the issue here is that $wgServer is actually the naked domain | |||
<pre> | |||
root@hetzner3 /var/www/html/wiki.opensourceecology.org # grep wgServer LocalSettings.php | |||
$wgServer = "http://opensourceecology.org"; | |||
#$wgScriptPath = "$wgServer/w"; | |||
# global $wgServer; | |||
# $url = $wgServer . $url; | |||
root@hetzner3 /var/www/html/wiki.opensourceecology.org # | |||
</pre> | |||
# oh, looks like I introduced this bug because the wiki was totally broken if wgServer wasn't defined, so I had added to the CHG process to uncomment this line | |||
<pre> | |||
# uncomment wgServer (now defaults to 'false') https://www.mediawiki.org/wiki/Manual:$wgServer#Default_value | |||
sed -i 's%^\(\s*\)#$wgServer\(.*\)%\1$wgServer\2%' ${vhostDir}/LocalSettings.php | |||
</pre> | |||
# but that defined it with http and the old naked domain, so I follow that up with this | |||
<pre> | |||
# fix $wgServer | |||
grep '#$wgServer' ${vhostDir}/LocalSettings.php || perl -0777 -pi -e 's%\$wgServer = "http://opensourceecology.org"; | |||
%#\$wgServer = "http://opensourceecology.org";\n\$wgServer = "https://wiki.opensourceecology.org";\n%igs' ${vhostDir}/LocalSettings.php | |||
</pre> | |||
# now I can load the login page. Yay! | |||
=Fri Feb 07, 2025= | =Fri Feb 07, 2025= |
Revision as of 22:43, 12 February 2025
My work log from the first quarter of the year 2025. I intentionally made this verbose to make future admin's work easier when troubleshooting. The more keywords, error messages, etc that are listed in this log, the more helpful it will be for the future OSE Sysadmin.
See Also
Sat Feb 08, 2025
- here's tofu 3/3 (ISP, exit in Ecuador)
Ecuador 2025-02-08 INFO: Determining Latest Version of Wordpress Core INFO: Determining Latest Version of Wordpress Plugins . . . . INFO: Determining Latest Version of Wordpress Themes . . https://downloads.wordpress.org/release/wordpress-6.7.1.zip ######################################################################### 100.0% https://downloads.wordpress.org/plugin/polylang.3.6.6.zip ######################################################################### 100.0% https://downloads.wordpress.org/plugin/translatepress-multilingual.2.9.4.zip ######################################################################### 100.0% https://downloads.wordpress.org/plugin/google-language-translator.6.0.20.zip ######################################################################### 100.0% https://downloads.wordpress.org/plugin/gtranslate.3.0.7.zip ######################################################################### 100.0% https://downloads.wordpress.org/theme/hestia.3.2.8.zip ######################################################################### 100.0% https://downloads.wordpress.org/theme/neve.4.0.1.zip ######################################################################### 100.0% 2025-02-08 296K google-language-translator.6.0.20.zip 700K gtranslate.3.0.7.zip 8.0M hestia.3.2.8.zip 7.1M neve.4.0.1.zip 64K plugin.json 592K polylang.3.6.6.zip 2.1M translatepress-multilingual.2.9.4.zip 28M wordpress-6.7.1.zip 01246c9c90f1373ee83d8e5884e5abba264c62e7301d99a468fd8eb95144be05 google-language-translator.6.0.20.zip 171eb362801ea28e74b302cd0fee472dbd5025a89f6c1634b5ca1029362a678c gtranslate.3.0.7.zip 241b8c804ed1af72b1c9aa52f603730a52ebf7850383ac2e4d9dd163f6cfc3ca hestia.3.2.8.zip 2b51e758d61b9d78ebd57d2afd9a967335bcb6866c5bff5a0d7157eecb6ec8cb neve.4.0.1.zip 553e0118251211ef13964a88562bc6b859885f886811164d4a2751d9fe66f5e2 plugin.json 3a4a7f8872d16cb3538e948b4f85acee7d823c04fe8c820259ef6e2735093bbb polylang.3.6.6.zip 16f2e24d14af341c6208fb9cc08d0c4db33bf813a5b1668930e30c6179a1111c translatepress-multilingual.2.9.4.zip 75f4e9cb71e583ca3f8b19691b5754adb9c981580762137f82443e1eec468f9c wordpress-6.7.1.zip user@disp8537:/tmp/tmp.bSWwWjZNTu$
- cool, all of these files match across all 3 TOFUs this time; I copied them to hetzer3
- ...
- back on the wiki, it seems that we need to update LocalSettings.php such that:
- the following skins are enabled: Cologne Blue, Modern, MonoBook, Vector
- and the following extensions are enabled: CategoryTree, ConfirmEdit, Confirm User Accounts, ReCaptcha, UserMerge, Widgets
- I used this command to add the skins
# add skins (with wfLoadSkin() instead of require_once) grep 'wfSkinLoad' ${vhostDir}/LocalSettings.php || perl -0777 -pi -e "s/$wgDefaultSkin = 'Vector';/\$wgDefaultSkin = 'Vector';\n\nwfLoadSkin( 'CologneBlue' );\nwfLoadSkin( 'Modern' );\nwfLoadSkin( 'MonoBook' );\nwfLoadSkin( 'Vector' );/igs" ${vhostDir}/LocalSettings.php | grep -C4 wfLoadSkin
- and this for the extensions
# re-enable CategoryTree extension grep 'wfLoadExtension.*CategoryTree' ${vhostDir}/LocalSettings.php || perl -0777 -pi -e 's%#require_once\("{\$IP}/extensions/CategoryTree/CategoryTree.php"\);%#require_once("{$IP}/extensions/CategoryTree/CategoryTree.php");\n\nwfLoadExtension( "CategoryTree" );\n%igs' ${vhostDir}/LocalSettings.php # re-enable ConfirmEdit and switch to hCaptcha grep 'hCaptcha' ${vhostDir}/LocalSettings.php || perl -0777 -pi -e "s%\\\$wgCaptchaClass = 'SimpleCaptcha';%\#\\\$wgCaptchaClass = 'SimpleCaptcha';\n\nwfLoadExtensions([ 'ConfirmEdit', 'ConfirmEdit/hCaptcha' ]);\n\\\$wgHCaptchaSiteKey = 'your public/site key here';\n\\\$wgHCaptchaSecretKey = 'your private key here';\n%igs" ${vhostDir}/LocalSettings.php # re-enable ConfirmAccount extension grep 'wfLoadExtension.*ConfirmAccount' ${vhostDir}/LocalSettings.php || perl -0777 -pi -e 's%#require_once "\$IP/extensions/ConfirmAccount/ConfirmAccount.php";%#require_once "$IP/extensions/ConfirmAccount/ConfirmAccount.php";\n\nwfLoadExtension( "ConfirmAccount" );\n%igs' ${vhostDir}/LocalSettings.php # re-enable UserMerge extension sed -i 's%^\(\s*\)#wfLoadExtension\(.*\)UserMerge\(.*\)%\1wfLoadExtension\2UserMerge\3%' ${vhostDir}/LocalSettings.php # re-enable Widgets extension grep 'wfLoadExtension.*Widgets' ${vhostDir}/LocalSettings.php || perl -0777 -pi -e 's%#require_once\("\$IP/extensions/Widgets/Widgets.php"\);%#require_once("$IP/extensions/Widgets/Widgets.php");\n\nwfLoadExtension( "Widgets" );\n%igs' ${vhostDir}/LocalSettings.php
- I also had an issue with the script to rsync over the extensions, but I fixed that in the CHG commands for migrating the wiki
- curiously the definition for ConfirmEdit also specifies a captcha
root@hetzner3 /var/www/html/wiki.opensourceecology.org # grep -iC2 confirmedit LocalSettings.php # ConfirmEdit # reCaptcha settings and keys #wfLoadExtensions([ 'ConfirmEdit', 'ConfirmEdit/ReCaptcha' ]); #$wgCaptchaClass = 'ReCaptcha'; $wgCaptchaClass = 'SimpleCaptcha'; root@hetzner3 /var/www/html/wiki.opensourceecology.org # <pre> # looks like we disabled ReCaptcha and swiched to SimpleCaptcha ## the wiki article for this plugin says SimpleCaptcha presents a simple math challenge and isn't very effective https://www.mediawiki.org/wiki/Extension:ConfirmEdit#SimpleCaptcha_(calculation) <pre> Note that the display of a trivial maths problem as plaintext yields a captcha which can be trivially solved by automated means; as of 2012, sites using SimpleCaptcha are receiving significant amounts of spam and many automated registrations of spurious new accounts. Wikis currently using this as the default should therefore migrate to one of the other CAPTCHAs.
- we should probably switch to hCaptcha, if anything https://www.mediawiki.org/wiki/Extension:ConfirmEdit#hCaptcha
- it does not support mCaptcha
- it does not support friendly captcha
- we do need an API key for hCAPTCHA, but (as far as I can tell) it's free https://www.hcaptcha.com/plans
- I created a new google account for this new service, and added its creds to our ose shared keepass
- I created a new account on the hcaptcha website using ^ that gapps account, and added its creds to our ose shared keepass
- I generated a new set of API keys (niknamed "wiki") and added the public "Site Key" and "Secret Key" to the notes section of the hcaptcha entry of our ose shared keepass
- I granted michael and marcin gapps accounts access to the new hcaptcha-service-specific gapps gmail account, and I set it to forward all its emails to our shared ops google group list per https://wiki.opensourceecology.org/wiki/Google_Workspace#Google_Groups
- ok, after enabling the skins & extensions && adding the hCaptcha creds to LocalSettings && clearing cache, I refreshed the Special:Version page Special:Version
Installed software Product Version MediaWiki 1.43.0 PHP 8.2.26 (fpm-fcgi) ICU 72.1 MariaDB 10.11.6-MariaDB-0+deb12u1 Entry point URLs Entry point URL Article path /wiki/$1 Script path / index.php /index.php api.php /api.php rest.php /rest.php Installed skins Skin Version License Description Authors Cologne Blue – (9134d2e) 06:04, 24 December 2024 GPL-2.0-or-later A lightweight skin with minimal formatting Lee Daniel Crocker and others Modern – (5597681) 12:21, 14 December 2024 GPL-2.0-or-later A blue/gray skin with sidebar and top bar. Derived from MonoBook River Tarnell and others MonoBook – GPL-2.0-or-later The classic MediaWiki skin since 2004, named after the black-and-white photo of a book in the page background Gabriel Wicke, Isarra Yos and others Vector 1.0.0 GPL-2.0-or-later Provides 2 Vector skins: 2011 - The Modern version of MonoBook with fresh look and many usability improvements. 2022 - The Vector built as part of the WMF Desktop Improvements project. Readers Web Team, Trevor Parscal, Roan Kattouw, Alex Hollender, Bernard Wang, Clare Ming, Jan Drewniak, Jon Robson, Nick Ray, Sam Smith, Stephen Niedzielski and Volker E. Installed extensions Special pagesExtension Version License Description Authors Confirm User Accounts – (bb470fd) 05:57, 31 December 2024 GPL-2.0-or-later Gives bureaucrats the ability to confirm account requests Aaron Schulz Interwiki 3.2 GPL-2.0-or-later Adds a special page to view and edit the interwiki table Stephanie Amanda Stevens, Alexandre Emsenhuber, Robin Pepermans, Siebrand Mazeland, Platonides, Raimond Spekking, Sam Reed, Jack Phoenix, Calimonius the Estrange and others Nuke – GPL-2.0-or-later Gives administrators the ability to mass delete pages Brion Vibber and Jeroen De Dauw Replace Text 1.8 GPL-2.0-or-later Provides a special page to allow administrators to do a global string find-and-replace on all the content pages of a wiki Yaron Koren, Niklas Laxström and others UserMerge 1.10.2 (f9d2664) 06:00, 31 December 2024 GPL-2.0-or-later Merges references from one user to another user in the wiki database - will also delete old users following merge. Requires usermerge privileges Tim Laqua, Thomas Gries and Matthew April Parser hooksExtension Version License Description Authors CategoryTree – GPL-2.0-or-later Dynamically navigate the category structure Daniel Kinzler Cite – GPL-2.0-or-later Adds <ref> and <references> tags for citations Ævar Arnfjörð Bjarmason, Andrew Garrett, Brion Vibber, Ed Sanders, Marius Hoch, Steve Sanbeg, Trevor Parscal and others Widgets 1.6.0 (50da5c6) 06:09, 26 November 2024 GPL-2.0-or-later Allows wiki administrators to add free-form widgets to the wiki by editing pages within the Widget namespace. Community-contributed widgets can be found on MediaWikiWidgets.org Sergey Chernyshev, Yaron Koren and others Spam preventionExtension Version License Description Authors ConfirmEdit 1.6.0 GPL-2.0-or-later Provides CAPTCHA techniques to protect against spam and password-guessing Brion Vibber, Florian Schmidt, Sam Reed and others hCaptcha – GPL-2.0-or-later hCaptcha module for Confirm Edit Sam Reed and others OtherExtension Version License Description Authors Gadgets – GPL-2.0-or-later Lets users select custom CSS and JavaScript gadgets in their preferences Daniel Kinzler, Max Semenik, Timo Tijhof and Siddharth VP OATHAuth 0.5.0 GPL-2.0-or-later AND GPL-3.0-or-later Provides authentication support using HMAC based one-time passwords Ryan Lane, Robert Vogel <vogel@hallowelt.com>, Dejan Savuljesku <savuljesku@hallowelt.com> and Taavi Väänänen Installed libraries Installed server-side libraries Library Version License Description Authors bacon/bacon-qr-code 2.0.8 BSD-2-Clause BaconQrCode is a QR code generator for PHP. Ben Scholzen 'DASPRiD' christian-riesen/base32 1.6.0 MIT Base32 encoder/decoder according to RFC 4648 Christian Riesen composer/semver 3.4.3 MIT Semver library that offers utilities, version constraint parsing and validation. Nils Adermann, Jordi Boggiano and Rob Bast cssjanus/cssjanus 2.3.0 Apache-2.0 Convert CSS stylesheets between left-to-right and right-to-left. Roan Kattouw, Trevor Parscal and Timo Tijhof dasprid/enum 1.0.5 BSD-2-Clause PHP 7.1 enum implementation Ben Scholzen 'DASPRiD' endroid/qr-code 4.6.1 MIT Endroid QR Code Jeroen van den Enden guzzlehttp/guzzle 7.9.2 MIT Guzzle is a PHP HTTP client library Graham Campbell, Michael Dowling, Jeremy Lindblom, George Mponos, Tobias Nyholm, Márk Sági-Kazár and Tobias Schultze guzzlehttp/promises 2.0.4 MIT Guzzle promises library Graham Campbell, Michael Dowling, Tobias Nyholm and Tobias Schultze guzzlehttp/psr7 2.7.0 MIT PSR-7 message implementation that also provides common utility methods Graham Campbell, Michael Dowling, George Mponos, Tobias Nyholm, Márk Sági-Kazár, Tobias Schultze and Márk Sági-Kazár jakobo/hotp-php 2.0.0 BSD-3-Clause HOTP simplifies One Time Password systems for PHP Authentication Jakob Heuser justinrainbow/json-schema 5.3.0 MIT A library to validate a json schema. Bruno Prieto Reis, Justin Rainbow, Igor Wiedler and Robert Schönthal liuggio/statsd-php-client 1.0.18 MIT Statsd (Object Oriented) client library for PHP Giulio De Donato mck89/peast 1.16.3 BSD-3-Clause Peast is PHP library that generates AST for JavaScript code Marco Marchiò monolog/monolog 2.9.3 MIT Sends your logs to files, sockets, inboxes, databases and various web services Jordi Boggiano oojs/oojs-ui 0.51.2 MIT Provides library of common widgets, layouts, and windows. Bartosz Dziewoński, Ed Sanders, James D. Forrester, Kirsten Menger-Anderson, Kunal Mehta, Moriel Schottlender, Prateek Saxena, Roan Kattouw, Thiemo Kreuz, Timo Tijhof, Trevor Parscal and Volker E. pear/console_getopt 1.4.3 BSD-2-Clause More info available on: http://pear.php.net/package/Console_Getopt Andrei Zmievski, Stig Bakken and Greg Beaver pear/mail 2.0.0 BSD-3-Clause Class that provides multiple interfaces for sending emails. Chuck Hagenbuch, Armin Graefe, Richard Heyes and Aleksander Machniak pear/mail_mime 1.10.12 BSD-3-Clause Mail_Mime provides classes to create MIME messages Cipriano Groenendal and Aleksander Machniak pear/net_smtp 1.12.1 BSD-2-Clause An implementation of the SMTP protocol Jon Parise, Chuck Hagenbuch and Armin Graefe pear/net_socket 1.2.2 PHP License More info available on: http://pear.php.net/package/Net_Socket Chuck Hagenbuch, Aleksander Machniak and Stig Bakken pear/net_url2 2.2.2 BSD-3-Clause Class for parsing and handling URL. Provides parsing of URLs into their constituent parts (scheme, host, path etc.), URL generation, and resolving of relative URLs. David Coallier, Tom Klingenberg and Christian Schmidt pear/pear-core-minimal 1.10.15 BSD-3-Clause Minimal set of PEAR core files to be used as composer dependency Christian Weiske pear/pear_exception 1.0.2 BSD-2-Clause The PEAR Exception base class. Helgi Thormar and Greg Beaver psr/container 1.1.2 MIT Common Container Interface (PHP FIG PSR-11) PHP-FIG psr/http-client 1.0.3 MIT Common interface for HTTP clients PHP-FIG psr/http-factory 1.1.0 MIT PSR-17: Common interfaces for PSR-7 HTTP message factories PHP-FIG psr/http-message 1.1 MIT Common interface for HTTP messages PHP-FIG psr/log 1.1.4 MIT Common interface for logging libraries PHP-FIG ralouphie/getallheaders 3.0.3 MIT A polyfill for getallheaders. Ralph Khattar smarty/smarty 4.5.5 LGPL-3.0 Smarty - the compiling PHP template engine Monte Ohrt, Uwe Tews, Rodney Rehm and Simon Wisselink symfony/deprecation-contracts 2.5.3 MIT A generic function and convention to trigger deprecation notices Nicolas Grekas and Symfony Community symfony/polyfill-php80 1.31.0 MIT Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions Ion Bazan, Nicolas Grekas and Symfony Community symfony/polyfill-php81 1.31.0 MIT Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions Nicolas Grekas and Symfony Community symfony/polyfill-php82 1.31.0 MIT Symfony polyfill backporting some PHP 8.2+ features to lower PHP versions Nicolas Grekas and Symfony Community symfony/polyfill-php83 1.31.0 MIT Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions Nicolas Grekas and Symfony Community symfony/yaml 5.4.45 MIT Loads and dumps YAML files Fabien Potencier and Symfony Community wikimedia/assert 0.5.1 MIT Provides runtime assertions Daniel Kinzler and Thiemo Kreuz wikimedia/at-ease 3.0.0 GPL-2.0-or-later Safe replacement to @ for suppressing warnings. Tim Starling and MediaWiki developers wikimedia/base-convert 2.0.2 GPL-2.0-or-later Convert an arbitrarily-long string from one numeric base to another, optionally zero-padding to a minimum column width. Brion Vibber and Tyler Romeo wikimedia/bcp-47-code 2.0.0 GPL-2.0-or-later Simple interface representing languages which have a BCP 47 code C. Scott Ananian wikimedia/cdb 3.0.0 GPL-2.0-or-later Constant Database (CDB) wrapper library for PHP. Provides pure-PHP fallback when dba_* functions are absent. Tim Starling, Chad Horohoe, Ori Livneh and Daniel Kinzler wikimedia/cldr-plural-rule-parser 2.0.0 GPL-2.0-or-later Evaluates plural rules specified in the CLDR project notation. Tim Starling and Niklas Laxström wikimedia/common-passwords 0.5.0 MIT List of the 100,000 most commonly used passwords Sam Reed wikimedia/composer-merge-plugin 2.1.0 MIT Composer plugin to merge multiple composer.json files Bryan Davis wikimedia/equivset 1.7.0 GPL-2.0-or-later Visually Equivalent Set of UTF-8 Characters Brooke Vibber, David Barratt, Thiemo Kreuz and Umherirrender wikimedia/html-formatter 4.1.0 GPL-2.0-or-later Performs transformations of HTML by wrapping around libxml2 and working around its countless bugs. MediaWiki contributors wikimedia/idle-dom 1.0.0 MIT DOM interfaces automatically generated from WebIDL C. Scott Ananian wikimedia/ip-utils 5.0.0 GPL-2.0-or-later Parse, match, and analyze IP addresses and CIDR ranges MediaWiki developers wikimedia/json-codec 3.0.3 GPL-2.0-or-later Interfaces to serialize and deserialize PHP objects to/from JSON Petr Pchelko, Daniel Kinzler and C. Scott Ananian wikimedia/less.php 5.1.2 Apache-2.0 PHP port of the LESS processor Timo Tijhof, Josh Schmidt, Matt Agar and Martin Jantošovič wikimedia/minify 2.8.0 Apache-2.0 Minification of JavaScript code and CSS stylesheets. Paul Copperman, Trevor Parscal, Timo Tijhof and Roan Kattouw wikimedia/normalized-exception 2.0.0 MIT A helper for making exceptions play nice with PSR-3 logging Gergő Tisza wikimedia/object-factory 5.0.1 GPL-2.0-or-later Construct objects from configuration instructions Bryan Davis wikimedia/parsoid 0.20.1 GPL-2.0-or-later Parsoid, a bidirectional parser between wikitext and HTML5 Wikimedia Content Transform Team and the broader MediaWiki community wikimedia/php-session-serializer 3.0.0 GPL-2.0-or-later Provides methods like PHP's session_encode and session_decode that don't mess with $_SESSION Brad Jorsch wikimedia/purtle 2.0.0 GPL-2.0-or-later Fast streaming RDF serializer Daniel Kinzler, Stanislav Malyshev, Thiemo Kreuz and C. Scott Ananian wikimedia/relpath 4.0.1 MIT Work with file paths to join or find the relative path Ori Livneh wikimedia/remex-html 4.1.1 MIT Fast HTML 5 parser Tim Starling wikimedia/request-timeout 2.0.0 MIT Request timeout library for Excimer with plain PHP fallback Tim Starling wikimedia/running-stat 2.1.0 GPL-2.0-or-later PHP implementations of online statistical algorithms Ori Livneh wikimedia/scoped-callback 5.0.0 GPL-2.0-or-later Make a callback run when a dummy object leaves the scope. Aaron Schulz wikimedia/services 4.0.0 GPL-2.0-or-later Generic service to manage named services using lazy instantiation based on instantiator callback functions Daniel Kinzler wikimedia/shellbox 4.1.1 MIT Library and server for containerized shell execution Tim Starling, Kunal Mehta and Max Semenik wikimedia/timestamp 4.1.1 GPL-2.0-or-later Creation, parsing, and conversion of timestamps Tyler Romeo wikimedia/utfnormal 4.0.0 GPL-2.0-or-later Contains Unicode normalization routines, including both pure PHP implementations and automatic use of the 'intl' PHP extension when present Brion Vibber wikimedia/wait-condition-loop 2.0.2 GPL-2.0-or-later Wait loop that reaches a condition or times out Aaron Schulz wikimedia/wikipeg 4.0.0 MIT Parser generator for JavaScript and PHP wikimedia/wrappedstring 4.0.1 MIT Automatically compact sequentially-outputted strings that share a common prefix / suffix pair. Timo Tijhof wikimedia/xmp-reader 0.9.4 GPL-2.0-or-later Reader for XMP data containing properties relevant to images Brian Wolff wikimedia/zest-css 3.0.1 MIT Fast, lightweight, extensible CSS selector engine for PHP Christopher Jeffrey and C. Scott Ananian zordius/lightncandy 1.2.6 MIT An extremely fast PHP implementation of handlebars ( http://handlebarsjs.com/ ) and mustache ( http://mustache.github.io/ ). Zordius Chen Installed client-side libraries Library Version License Authors Source CLDRPluralRuleParser 1.3.1-0dda851 MIT Santhosh Thottingal MediaWiki codex-design-tokens 1.14.0 GPL-2.0+ Design System team, Wikimedia Foundation MediaWiki codex-icons 1.14.0 MIT Design System team, Wikimedia Foundation MediaWiki codex 1.14.0 GPL-2.0+ Design System team, Wikimedia Foundation MediaWiki fetch-polyfill 3.6.2 MIT GitHub, Inc. MediaWiki intersection-observer 0.12.0 Apache-2.0 Philip Walton MediaWiki jquery.chosen 1.8.2 MIT Patrick Filler for Harvest, Matthew Lettini, Patrick Filler, Ken Earley, Christophe Coevoet, Koen Punt, and T.J. Schuck. MediaWiki jquery.client 3.0.0 MIT Trevor Parscal, Timo Tijhof, and Roan Kattouw MediaWiki jquery.i18n 1.0.10 MIT OR GPL-2.0-or-later Language Engineering team, Wikimedia Foundation MediaWiki jquery.ui 1.9.2 MIT OpenJS Foundation and other contributors MediaWiki jquery 3.7.1 MIT OpenJS Foundation and other contributors MediaWiki moment 2.25.2 MIT JS Foundation and other contributors MediaWiki mustache 4.2.0 MIT Michael Jackson, Jan Lehnardt, Phillip Johnsen, and other contributors MediaWiki oojs 7.0.1 MIT OOjs Team and other contributors MediaWiki ooui 0.51.2 MIT OOUI Team and other contributors MediaWiki pako 2.1.0 MIT AND Zlib Andrei Tuputcyn, Vitaly Puzrin, Friedel Ziegelmayer, Kirill Efimov, Jean-loup Gailly, and Mark Adler MediaWiki pinia 2.0.16 MIT Eduardo San Martin Morote MediaWiki qunitjs 2.20.0 MIT OpenJS Foundation and other contributors MediaWiki sinonjs 1.17.7 BSD-3-Clause Christian Johansen and other contributors MediaWiki swagger-ui 4.15.5 Apache-2.0 Kyle Shockey, Tony Tam, Vladimír Gorej, and others MediaWiki url 3.111.0-0ece79ce32 MIT Financial Times MediaWiki vue-demi 0.14.7 MIT Anthony Fu MediaWiki vue 3.4.27 MIT Yuxi (Evan) You MediaWiki vuex 4.0.2 MIT Yuxi (Evan) You MediaWiki Parser extension tags <categorytree>, <gallery>, <html>, <indicator>, <langconvert>, <nowiki>, <pre>, <ref> and <references> Parser function hooks {{anchorencode}}, {{BASEPAGENAME}}, {{BASEPAGENAMEE}}, {{#bcp47}}, {{bidi}}, {{canonicalurl}}, {{canonicalurle}}, {{CASCADINGSOURCES}}, {{#categorytree}}, {{DEFAULTSORT}}, {{#dir}}, {{DISPLAYTITLE}}, {{filepath}}, {{#FORMAL}}, {{#formatdate}}, {{formatnum}}, {{FULLPAGENAME}}, {{FULLPAGENAMEE}}, {{fullurl}}, {{fullurle}}, {{gender}}, {{grammar}}, {{int}}, {{#language}}, {{lc}}, {{lcfirst}}, {{localurl}}, {{localurle}}, {{NAMESPACE}}, {{NAMESPACEE}}, {{NAMESPACENUMBER}}, {{ns}}, {{nse}}, {{NUMBERINGROUP}}, {{NUMBEROFACTIVEUSERS}}, {{NUMBEROFADMINS}}, {{NUMBEROFARTICLES}}, {{NUMBEROFEDITS}}, {{NUMBEROFFILES}}, {{NUMBEROFPAGES}}, {{NUMBEROFUSERS}}, {{padleft}}, {{padright}}, {{pageid}}, {{PAGENAME}}, {{PAGENAMEE}}, {{PAGESINCATEGORY}}, {{PAGESIZE}}, {{plural}}, {{PROTECTIONEXPIRY}}, {{PROTECTIONLEVEL}}, {{REVISIONDAY}}, {{REVISIONDAY2}}, {{REVISIONID}}, {{REVISIONMONTH}}, {{REVISIONMONTH1}}, {{REVISIONTIMESTAMP}}, {{REVISIONUSER}}, {{REVISIONYEAR}}, {{ROOTPAGENAME}}, {{ROOTPAGENAMEE}}, {{#special}}, {{#speciale}}, {{SUBJECTPAGENAME}}, {{SUBJECTPAGENAMEE}}, {{SUBJECTSPACE}}, {{SUBJECTSPACEE}}, {{SUBPAGENAME}}, {{SUBPAGENAMEE}}, {{#tag}}, {{TALKPAGENAME}}, {{TALKPAGENAMEE}}, {{TALKSPACE}}, {{TALKSPACEE}}, {{uc}}, {{ucfirst}}, {{urlencode}} and {{#widget}}
- side-note: the wiki actually looks nice now that the skins are fixed; and there's no error at the top of every page
- diffing that with hetzner2, and looks like we're still missing
- extension: Renameuser
- extension: ParserFunctions
- according to this page, ParserFunctions should be included with MediaWiki core. I guess it just doesn't show up as an "extension" anymore like some of the others that were merged with core https://www.mediawiki.org/wiki/Extension:ParserFunctions
This extension comes with MediaWiki 1.18 and above. Thus you do not have to download it again. However, you still need to follow the other instructions provided.
- oh, I think I need to activate it with
wfLoadExtension( 'ParserFunctions' );
- yeah, I'm missing this
root@hetzner3 /var/www/html/wiki.opensourceecology.org # grep -i parser LocalSettings.php # ParserFunctions #require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" ); # Parser Cache should still use the DB per Aaron Schulz $wgParserCacheType = CACHE_DB; root@hetzner3 /var/www/html/wiki.opensourceecology.org #
- I added it with
# re-enable ParserFunctions extension grep 'wfLoadExtension.*ParserFunctions' ${vhostDir}/LocalSettings.php || perl -0777 -pi -e 's%#require_once\( "\$IP/extensions/ParserFunctions/ParserFunctions.php" \);%#require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" );\n\nwfLoadExtension( "ParserFunctions" );\n%igs' ${vhostDir}/LocalSettings.php
- it looks like RenameUser was also merged to core https://www.mediawiki.org/wiki/Manual:Renameuser
- it's not clear if this one requires activation with wfLoadExtension() or not
- the way to check would be to login and go to Special:Renameuser
- well, it looks like the wiki is more broken than I realized
- clicking "Login" redirects to the osemain site for some reason
- and loading the frontpage has an error
[Z6gB-0saz-Rit8IwiiNJYQAAAAk] 2025-02-09 01:16:44: Fatal exception of type "RuntimeException"
- at the same time, this got spat-out to the apache error log
[Sun Feb 09 01:17:04.465571 2025] [proxy_fcgi:error] [pid 2169915:tid 2169915] [client 127.0.0.1:0] AH01071: Got error 'PHP message: PHP Warning: fopen(): open_basedir restriction in effect. File(/var/lib/php/tmp_upload/mw-GlobalIdGenerator-UUID-128) is not within the allowed path(s): (/home/wp/.wp-cli:/usr/share/pear:/var/lib/php/tmp:/var/lib/php/sessions:/var/www/html/www.openbuildinginstitute.org:/var/www/html/staging.openbuildinginstitute.org/:/var/www/html/staging.opensourceecology.org/:/var/www/html/www.opensourceecology.org/:/var/www/html/fef.opensourceecology.org/:/var/www/html/seedhome.openbuildinginstitute.org:/var/www/html/oswh.opensourceecology.org/:/var/www/html/wiki.opensourceecology.org/:/var/www/html/cacti.opensourceecology.org/:/var/www/html/store.opensourceecology.org:/var/www/html/microfactory.opensourceecology.org:/var/www/html/phplist.opensourceecology.org) in /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/uuid/GlobalIdGenerator.php on line 451; PHP message: PHP Warning: fopen(/var/lib/php/tmp_upload/mw-GlobalIdGenerator-UUID-128): Failed to open stream: Operation not permitted in /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/uuid/GlobalIdGenerator.php on line 451', referer: https://wiki.opensourceecology.org/
- yeah, this looks like an error in my php.ini config
- on one hand, I defined 'upload_tmp_dir' to be '/var/lib/php/tmp_upload'
user@personal:~/sandbox_local/ansible/hetzner3$ grep upload_tmp_dir roles/maltfield.php/templates/php_8.2.ini.j2 ;upload_tmp_dir = upload_tmp_dir = /var/lib/php/tmp_upload user@personal:~/sandbox_local/ansible/hetzner3$ grep basedir roles/maltfield.php/templates/php_8.2.ini.j2 ; open_basedir, if set, limits all file operations to the defined directory ; https://php.net/open-basedir open_basedir = "/home/wp/.wp-cli:/usr/share/pear:/var/lib/php/tmp:/var/lib/php/sessions:/var/www/html/www.openbuildinginstitute.org:/var/www/html/staging.openbuildinginstitute.org/:/var/www/html/staging.opensourceecology.org/:/var/www/html/www.opensourceecology.org/:/var/www/html/fef.opensourceecology.org/:/var/www/html/seedhome.openbuildinginstitute.org:/var/www/html/oswh.opensourceecology.org/:/var/www/html/wiki.opensourceecology.org/:/var/www/html/cacti.opensourceecology.org/:/var/www/html/store.opensourceecology.org:/var/www/html/microfactory.opensourceecology.org:/var/www/html/phplist.opensourceecology.org" ; Note: if open_basedir is set, the cache is disabled user@personal:~/sandbox_local/ansible/hetzner3$
- but on another hand, that's not included in the open_basedir var
- I fixed this in ansible https://github.com/OpenSourceEcology/ansible/commit/01d8dd8ea0a49a4306c22d96eb5878907196f3f4
- I pushed it with ansible and restarted both php and apache
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # systemctl restart php8.2-fpm apache2 root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # varnishadm 'ban req.http.host ~ "wiki.opensourceecology.org"' root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- but I'm still getting an error
[Sun Feb 09 07:15:57.201538 2025] [proxy_fcgi:error] [pid 2310677:tid 2310677] [client 127.0.0.1:0] AH01071: Got error 'PHP message: PHP Warning: fopen(): open_basedir restriction in effect. File(/var/lib/php/tmp_upload/mw-GlobalIdGenerator-UUID-128) is not within the allowed path(s): (/home/wp/.wp-cli:/usr/share/pear:/var/lib/php/tmp:/var/lib/php/tmp_upload:/var/lib/php/sessions:/var/www/html/www.openbuildinginstitute.org:/var/www/html/staging.openbuildinginstitute.org/:/var/www/html/staging.opensourceecology.org/:/var/www/html/www.opensourceecology.org/:/var/www/html/fef.opensourceecology.org/:/var/www/html/seedhome.openbuildinginstitute.org:/var/www/html/oswh.opensourceecology.org/:/var/www/html/wiki.opensourceecology.org/:/var/www/html/cacti.opensourceecology.org/:/var/www/html/store.opensourceecology.org:/var/www/html/microfactory.opensourceecology.org:/var/www/html/phplist.opensourceecology.org) in /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/uuid/GlobalIdGenerator.php on line 451; PHP message: PHP Warning: fopen(/var/lib/php/tmp_upload/mw-GlobalIdGenerator-UUID-128): Failed to open stream: Operation not permitted in /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/uuid/GlobalIdGenerator.php on line 451'
- it's curious that the diff between those last two error messages now shows that the relevant dir is, in fact, in the open_basedir list. what gives?
- oh, the dir doesn't exist!
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # ls -lah /var/lib/php total 24K drwxr-xr-x 6 root root 4,0K Sep 25 01:23 . drwxr-xr-x 36 root root 4,0K Oct 3 04:29 .. drwxr-xr-x 3 root root 4,0K Sep 25 01:23 modules drwx-wx-wt 2 root root 4,0K Feb 8 23:39 sessions drwx------ 2 www-data root 4,0K Sep 25 01:23 soap_cache drwx------ 2 www-data root 4,0K Jan 30 22:26 tmp root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- I updated the php role in ansible to create this dir https://github.com/OpenSourceEcology/ansible/commit/66cdaec9f5fcd716f6d97295c946ce90dfb85f1c
- I pushed ansible, restarted apache & php, and cleared varnish
- this time the front page loads. horray!
- I clicked the "login" button, but I'm still being redirected to www.opensourceecology.org for some reason
- yeah, for some reason attempting to load the login page just 301 redirects to osemain
user@disp1568:~$ curl -IL "https://opensourceecology.org/index.php?title=Special:UserLogin" HTTP/1.1 301 Moved Permanently Server: nginx Date: Sun, 09 Feb 2025 07:26:09 GMT Content-Type: text/html Content-Length: 162 Connection: keep-alive Location: https://www.opensourceecology.org/index.php Strict-Transport-Security: max-age=15552001 Public-Key-Pins: pin-sha256="UbSbHFsFhuCrSv9GNsqnGv4CbaVh5UV5/zzgjLgHh9c="; pin-sha256="YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg="; pin-sha256="C5+lpZ7tcVwmwQIMcRtPbsQtWLABXhQzejna0wHFr8M="; pin-sha256="Vjs8r4z+80wjNcr1YKepWQboSIRi63WsWXhIMN+eWys="; pin-sha256="lCppFqbkrlJ3EcVFAkeip0+44VaoJUymbnOaEUk7tEU="; pin-sha256="K87oWBWM9UZfyddvDfoxL+8lpNyoUB2ptGtn0fv6G2Q="; pin-sha256="Y9mvm0exBk1JoQ57f9Vm28jKo5lFm/woKcVxrYxu80o="; pin-sha256="EGn6R6CqT4z3ERscrqNl7q7RC//zJmDe9uBhS/rnCHU="; pin-sha256="NIdnza073SiyuN1TUa7DDGjOxc1p0nbfOCfbxPWAZGQ="; pin-sha256="fNZ8JI9p2D/C+bsB3LH3rWejY9BGBDeW0JhMOiMfa7A="; pin-sha256="oyD01TTXvpfBro3QSZc1vIlcMjrdLTiL/M9mLCPX+Zo="; pin-sha256="0cRTd+vc1hjNFlHcLgLCHXUeWqn80bNDH/bs9qMTSPo="; pin-sha256="MDhNnV1cmaPdDDONbiVionUHH2QIf2aHJwq/lshMWfA="; pin-sha256="OIZP7FgTBf7hUpWHIA7OaPVO2WrsGzTl9vdOHLPZmJU="; max-age=3600; includeSubDomains; report-uri="http://opensourceecology.org/hpkp-report" HTTP/1.1 301 Moved Permanently Server: nginx Date: Sun, 09 Feb 2025 07:25:09 GMT Content-Type: text/html; charset=UTF-8 Content-Length: 0 Connection: keep-alive Location: https://www.opensourceecology.org/ X-XSS-Protection: 1; mode=block X-Varnish: 16885187 3647332 Age: 7994 Via: 1.1 varnish-v4 Strict-Transport-Security: max-age=15552001 Public-Key-Pins: pin-sha256="UbSbHFsFhuCrSv9GNsqnGv4CbaVh5UV5/zzgjLgHh9c="; pin-sha256="YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg="; pin-sha256="C5+lpZ7tcVwmwQIMcRtPbsQtWLABXhQzejna0wHFr8M="; pin-sha256="Vjs8r4z+80wjNcr1YKepWQboSIRi63WsWXhIMN+eWys="; pin-sha256="lCppFqbkrlJ3EcVFAkeip0+44VaoJUymbnOaEUk7tEU="; pin-sha256="K87oWBWM9UZfyddvDfoxL+8lpNyoUB2ptGtn0fv6G2Q="; pin-sha256="Y9mvm0exBk1JoQ57f9Vm28jKo5lFm/woKcVxrYxu80o="; pin-sha256="EGn6R6CqT4z3ERscrqNl7q7RC//zJmDe9uBhS/rnCHU="; pin-sha256="NIdnza073SiyuN1TUa7DDGjOxc1p0nbfOCfbxPWAZGQ="; pin-sha256="fNZ8JI9p2D/C+bsB3LH3rWejY9BGBDeW0JhMOiMfa7A="; pin-sha256="oyD01TTXvpfBro3QSZc1vIlcMjrdLTiL/M9mLCPX+Zo="; pin-sha256="0cRTd+vc1hjNFlHcLgLCHXUeWqn80bNDH/bs9qMTSPo="; pin-sha256="MDhNnV1cmaPdDDONbiVionUHH2QIf2aHJwq/lshMWfA="; pin-sha256="OIZP7FgTBf7hUpWHIA7OaPVO2WrsGzTl9vdOHLPZmJU="; max-age=3600; includeSubDomains; report-uri="http://opensourceecology.org/hpkp-report" HTTP/1.1 200 OK Server: nginx Date: Sun, 09 Feb 2025 07:25:09 GMT Content-Type: text/html; charset=UTF-8 Content-Length: 56627 Connection: keep-alive Link: <https://www.opensourceecology.org/wp-json/>; rel="https://api.w.org/" Link: <https://www.opensourceecology.org/>; rel=shortlink X-XSS-Protection: 1; mode=block X-Varnish: 16885189 15314564 Age: 7994 Via: 1.1 varnish-v4 Strict-Transport-Security: max-age=15552001 Public-Key-Pins: pin-sha256="UbSbHFsFhuCrSv9GNsqnGv4CbaVh5UV5/zzgjLgHh9c="; pin-sha256="YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg="; pin-sha256="C5+lpZ7tcVwmwQIMcRtPbsQtWLABXhQzejna0wHFr8M="; pin-sha256="Vjs8r4z+80wjNcr1YKepWQboSIRi63WsWXhIMN+eWys="; pin-sha256="lCppFqbkrlJ3EcVFAkeip0+44VaoJUymbnOaEUk7tEU="; pin-sha256="K87oWBWM9UZfyddvDfoxL+8lpNyoUB2ptGtn0fv6G2Q="; pin-sha256="Y9mvm0exBk1JoQ57f9Vm28jKo5lFm/woKcVxrYxu80o="; pin-sha256="EGn6R6CqT4z3ERscrqNl7q7RC//zJmDe9uBhS/rnCHU="; pin-sha256="NIdnza073SiyuN1TUa7DDGjOxc1p0nbfOCfbxPWAZGQ="; pin-sha256="fNZ8JI9p2D/C+bsB3LH3rWejY9BGBDeW0JhMOiMfa7A="; pin-sha256="oyD01TTXvpfBro3QSZc1vIlcMjrdLTiL/M9mLCPX+Zo="; pin-sha256="0cRTd+vc1hjNFlHcLgLCHXUeWqn80bNDH/bs9qMTSPo="; pin-sha256="MDhNnV1cmaPdDDONbiVionUHH2QIf2aHJwq/lshMWfA="; pin-sha256="OIZP7FgTBf7hUpWHIA7OaPVO2WrsGzTl9vdOHLPZmJU="; max-age=3600; includeSubDomains; report-uri="http://opensourceecology.org/hpkp-report" user@disp1568:~$
- I tried the "Request Account" page instead. This one works.
- It also has the hCaptcha at the bottom of the page, which is working great too ☺
- wtf, I found that if I click the "login" link on the "register" page, then I can get the login page! https://wiki.opensourceecology.org/wiki/Special:UserLogin
- ah, duh, I just realized from the curl above that I was loading the naked domain. For some reason the big "log in" link on the top-right of the site is missing the 'wiki.' subdomain. That's the problem.
- when I search the LocalSettings.php file for 'Login', this looks suspicious
################### # FUNCTION HOOKDS # ################### # See http://www.mediawiki.org/wiki/Manual:Hooks/GetLocalURL function fnMakeAbsoluteURL( &$title, &$url, $query ) { global $wgServer; $indexRe = "/title=Special:.*Login|\/Special:Contact/"; if ( preg_match( $indexRe, $url ) ) # $url = preg_replace( $indexRe, "", $url ); $url = $wgServer . $url; return true; } $wgHooks['GetLocalURL'][] = 'fnMakeAbsoluteURL';
- yeah, if I comment-out that block, then the issue goes away.
- ah, I think the issue here is that $wgServer is actually the naked domain
root@hetzner3 /var/www/html/wiki.opensourceecology.org # grep wgServer LocalSettings.php $wgServer = "http://opensourceecology.org"; #$wgScriptPath = "$wgServer/w"; # global $wgServer; # $url = $wgServer . $url; root@hetzner3 /var/www/html/wiki.opensourceecology.org #
- oh, looks like I introduced this bug because the wiki was totally broken if wgServer wasn't defined, so I had added to the CHG process to uncomment this line
# uncomment wgServer (now defaults to 'false') https://www.mediawiki.org/wiki/Manual:$wgServer#Default_value sed -i 's%^\(\s*\)#$wgServer\(.*\)%\1$wgServer\2%' ${vhostDir}/LocalSettings.php
- but that defined it with http and the old naked domain, so I follow that up with this
# fix $wgServer grep '#$wgServer' ${vhostDir}/LocalSettings.php || perl -0777 -pi -e 's%\$wgServer = "http://opensourceecology.org"; %#\$wgServer = "http://opensourceecology.org";\n\$wgServer = "https://wiki.opensourceecology.org";\n%igs' ${vhostDir}/LocalSettings.php
- now I can load the login page. Yay!
Fri Feb 07, 2025
- here's tofu 2/3 (VPN, exit in Hungary)
Hungary 2025-02-07 INFO: Determining Latest Version of Wordpress Core INFO: Determining Latest Version of Wordpress Plugins . . . . INFO: Determining Latest Version of Wordpress Themes . . https://downloads.wordpress.org/release/wordpress-6.7.1.zip ######################################################################### 100.0% https://downloads.wordpress.org/plugin/polylang.3.6.6.zip ######################################################################### 100.0% https://downloads.wordpress.org/plugin/translatepress-multilingual.2.9.4.zip ######################################################################### 100.0% https://downloads.wordpress.org/plugin/google-language-translator.6.0.20.zip ######################################################################### 100.0% https://downloads.wordpress.org/plugin/gtranslate.3.0.7.zip ######################################################################### 100.0% https://downloads.wordpress.org/theme/hestia.3.2.8.zip ######################################################################### 100.0% https://downloads.wordpress.org/theme/neve.4.0.1.zip ######################################################################### 100.0% 2025-02-07 296K google-language-translator.6.0.20.zip 700K gtranslate.3.0.7.zip 8.0M hestia.3.2.8.zip 7.1M neve.4.0.1.zip 64K plugin.json 592K polylang.3.6.6.zip 2.1M translatepress-multilingual.2.9.4.zip 28M wordpress-6.7.1.zip 01246c9c90f1373ee83d8e5884e5abba264c62e7301d99a468fd8eb95144be05 google-language-translator.6.0.20.zip 171eb362801ea28e74b302cd0fee472dbd5025a89f6c1634b5ca1029362a678c gtranslate.3.0.7.zip 241b8c804ed1af72b1c9aa52f603730a52ebf7850383ac2e4d9dd163f6cfc3ca hestia.3.2.8.zip 2b51e758d61b9d78ebd57d2afd9a967335bcb6866c5bff5a0d7157eecb6ec8cb neve.4.0.1.zip 002bb1e14326a02cf2a8e06a0f3e0ca2326256fd9a5941a659b5f4bf9341ed78 plugin.json 3a4a7f8872d16cb3538e948b4f85acee7d823c04fe8c820259ef6e2735093bbb polylang.3.6.6.zip 16f2e24d14af341c6208fb9cc08d0c4db33bf813a5b1668930e30c6179a1111c translatepress-multilingual.2.9.4.zip 75f4e9cb71e583ca3f8b19691b5754adb9c981580762137f82443e1eec468f9c wordpress-6.7.1.zip user@disp8772:/tmp/tmp.7XNQH4tjs9$
- ...
- back to the wiki
- yesterday I was finally able to confirm the upgrade to 1.35.0 on Special:Version https://wiki.opensourceecology.org/wiki/Special:Version
- the fix was to do a double-tap: first run the update script, then run the populateContentTables script, then run the update script again
- today I'll try to see if I can finally do the second upgrade from 1.35 to 1.43
- well, after installing the files and fixing permissions, second upgrade fails with error
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # cat /var/tmp/CHG_20241228_wiki_1.35-to-1.43/update-to-v1.43.log PHP Warning: Undefined array key "HTTP_USER_AGENT" in /var/www/html/wiki.opensourceecology.org/LocalSettings.php on line 23 PHP Deprecated: DefaultSettings.php is deprecated and will be removed. Use MainConfigSchema::listDefaultValues() or MainConfigSchema::getDefaultValue() instead. [Called from require_once in /var/www/html/wiki.opensourceecology.org/LocalSettings.php at line 49] in /var/www/html/wiki.opensourceecology.org/htdocs/includes/debug/MWDebug.php on line 385 Error: The Cite extension cannot be loaded. Check that all of its files are installed properly. #0 /var/www/html/wiki.opensourceecology.org/htdocs/includes/GlobalFunctions.php(57): MediaWiki\Registration\ExtensionRegistry->queue() #1 /var/www/html/wiki.opensourceecology.org/LocalSettings.php(282): wfLoadExtension() #2 /var/www/html/wiki.opensourceecology.org/htdocs/LocalSettings.php(8): require_once('...') #3 /var/www/html/wiki.opensourceecology.org/htdocs/includes/Setup.php(220): require_once('...') #4 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/run.php(49): require_once('...') #5 {main} PHP Fatal error: Error Loading extension. Unable to open file /Cite/extension.json: filemtime(): stat failed for /Cite/extension.json in /var/www/html/wiki.opensourceecology.org/htdocs/includes/registration/MissingExtensionException.php on line 102 root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- yeah, I think somehow I copied-in an old LocalSettings.php file, but I don't understand how. I'll have to investigate this further with a future/fresh snapshot.
- For now I'm just going to manually copy these
root@hetzner3 /var/www/html/wiki.opensourceecology.org # ls /var/tmp/CHG_20241228_wiki_1.35-to-1.43/pre/wiki.opensourceecology.org.20241228 cache htdocs LocalSettings.php wiki.opensourceecology.org root@hetzner3 /var/www/html/wiki.opensourceecology.org # root@hetzner3 /var/www/html/wiki.opensourceecology.org # ls /var/tmp/CHG_20241228_wiki_1.35-to-1.43/pre/wiki.opensourceecology.org.20241228/wiki.opensourceecology.org/ cache htdocs LocalSettings.20250206_220118.php LocalSettings.php root@hetzner3 /var/www/html/wiki.opensourceecology.org # root@hetzner3 /var/www/html/wiki.opensourceecology.org # rsync -av --progress /var/tmp/CHG_20241228_wiki_1.35-to-1.43/pre/wiki.opensourceecology.org.20241228/wiki.opensourceecology.org/LocalSettings.* /var/www/html/wiki.opensourceecology.org/ sending incremental file list LocalSettings.20250206_220118.php 17.440 100% 0,00kB/s 0:00:00 (xfr#1, to-chk=1/2) LocalSettings.php 17.946 100% 17,11MB/s 0:00:00 (xfr#2, to-chk=0/2) sent 35.604 bytes received 54 bytes 71.316,00 bytes/sec total size is 35.386 speedup is 0,99 root@hetzner3 /var/www/html/wiki.opensourceecology.org #
- ok, that fixed that error
- after this upgrade is finished, I need to enumerate all of the skins and extensions that are currently active, diff that with the same output from hetzner2, and then update the LocalSettings.php file as-needed
- geez, it took 52 minutes for that upgrade to run, and it exited with an error
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # time nice sudo -u www-data php "${docrootDir}/maintenance/run.php" "${docrootDir}/maintenance/update.php" &> ${chg_dir}/update-to-v1.43.log real 52m7,118s user 0m0,004s sys 0m0,004s root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # <pre> # here's the tail of the update log <pre> root@hetzner3 /var/www/html/wiki.opensourceecology.org # tail -n30 /var/tmp/CHG_20241228_wiki_1.35-to-1.43/update-to-v1.43.log Table pagelinks contains pl_title field. Dropping...done. Modifying page_links_updated field of table page...done. Changing table options of 'searchindex'. ...migrating searchindex table...done. Running MediaWiki\Extension\OATHAuth\Maintenance\UpdateTOTPScratchTokensToArray... Done. done. Running MediaWiki\Extension\OATHAuth\Maintenance\UpdateForMultipleDevicesSupport... Wikimedia\Rdbms\DBQueryError from line 1198 of /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/rdbms/database/Database.php: Error 1146: Table 'osewiki_db.wiki_oathauth_types' doesn't exist Function: MediaWiki\Extension\OATHAuth\OATHAuthModuleRegistry::getModuleIdsFromDatabase Query: SELECT oat_id,oat_name FROM `wiki_oathauth_types` #0 /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/rdbms/database/Database.php(1182): Wikimedia\Rdbms\Database->getQueryException() #1 /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/rdbms/database/Database.php(1156): Wikimedia\Rdbms\Database->getQueryExceptionAndLog() #2 /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/rdbms/database/Database.php(647): Wikimedia\Rdbms\Database->reportQueryError() #3 /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/rdbms/database/Database.php(1345): Wikimedia\Rdbms\Database->query() #4 /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/rdbms/database/DBConnRef.php(127): Wikimedia\Rdbms\Database->select() #5 /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/rdbms/database/DBConnRef.php(351): Wikimedia\Rdbms\DBConnRef->__call() #6 /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/rdbms/querybuilder/SelectQueryBuilder.php(744): Wikimedia\Rdbms\DBConnRef->select() #7 /var/www/html/wiki.opensourceecology.org/htdocs/extensions/OATHAuth/src/OATHAuthModuleRegistry.php(132): Wikimedia\Rdbms\SelectQueryBuilder->fetchResultSet() #8 /var/www/html/wiki.opensourceecology.org/htdocs/extensions/OATHAuth/src/OATHAuthModuleRegistry.php(93): MediaWiki\Extension\OATHAuth\OATHAuthModuleRegistry->getModuleIdsFromDatabase() #9 /var/www/html/wiki.opensourceecology.org/htdocs/extensions/OATHAuth/maintenance/UpdateForMultipleDevicesSupport.php(56): MediaWiki\Extension\OATHAuth\OATHAuthModuleRegistry->getModuleIds() #10 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/includes/LoggedUpdateMaintenance.php(51): MediaWiki\Extension\OATHAuth\Maintenance\UpdateForMultipleDevicesSupport->doDBUpdates() #11 /var/www/html/wiki.opensourceecology.org/htdocs/includes/installer/DatabaseUpdater.php(1140): MediaWiki\Maintenance\LoggedUpdateMaintenance->execute() #12 /var/www/html/wiki.opensourceecology.org/htdocs/includes/installer/DatabaseUpdater.php(595): MediaWiki\Installer\DatabaseUpdater->runMaintenance() #13 /var/www/html/wiki.opensourceecology.org/htdocs/includes/installer/DatabaseUpdater.php(552): MediaWiki\Installer\DatabaseUpdater->runUpdates() #14 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/update.php(195): MediaWiki\Installer\DatabaseUpdater->doUpdates() #15 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/includes/MaintenanceRunner.php(703): UpdateMediaWiki->execute() #16 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/run.php(51): MediaWiki\Maintenance\MaintenanceRunner->run() #17 {main} root@hetzner3 /var/www/html/wiki.opensourceecology.org #
- The internet suggests that we should disable the 'oatuh' extension, but apparently that's required for 2fa – which we want https://www.mediawiki.org/wiki/Topic:Yakailc03f0u43c0
- looks like this OATHAuth is part of core
root@hetzner3 /var/tmp/mediawiki # ls mediawiki-1.43.0/extensions/ AbuseFilter CodeEditor Gadgets Linter Nuke PdfHandler Scribunto TemplateData VisualEditor CategoryTree ConfirmEdit ImageMap LoginNotify OATHAuth Poem SecureLinkFixer TextExtracts WikiEditor Cite DiscussionTools InputBox Math PageImages README SpamBlacklist Thanks CiteThisPage Echo Interwiki MultimediaViewer ParserFunctions ReplaceText SyntaxHighlight_GeSHi TitleBlacklist root@hetzner3 /var/tmp/mediawiki # root@hetzner3 /var/tmp/mediawiki # ls mediawiki-1.43.0/extensions/OATHAuth/ CODE_OF_CONDUCT.md composer.json COPYING extension.json i18n maintenance modules OATHAuth.alias.php ServiceWiring.php sql src tests root@hetzner3 /var/tmp/mediawiki #
- one person in ^ that thread suggests they had to update to v1.41 before upgrading to 1.43. So I may have to do three updates :(
- actually, it reads like you can just do the second upgrade with the version of this one extension from 1.41 and then run the update script. So core doesn't need to be updated with 3 different versions, at least
- a couple people said you can get around this by running "(wiki folder)/extensions/OATHAuth/sql/sqlite/tables-generated.sql"
- this isn't a script; it's just an sql file
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # cat $docrootDir/extensions/OATHAuth/sql/sqlite/tables-generated.sql -- This file is automatically generated using maintenance/generateSchemaSql.php. -- Source: sql/tables.json -- Do not modify this file directly. -- See https://www.mediawiki.org/wiki/Manual:Schema_changes CREATE TABLE /*_*/oathauth_types ( oat_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, oat_name BLOB NOT NULL ); CREATE UNIQUE INDEX oat_name ON /*_*/oathauth_types (oat_name); CREATE TABLE /*_*/oathauth_devices ( oad_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, oad_user INTEGER NOT NULL, oad_type INTEGER NOT NULL, oad_name BLOB DEFAULT NULL, oad_created BLOB DEFAULT NULL, oad_data BLOB DEFAULT NULL ); CREATE INDEX oad_user ON /*_*/oathauth_devices (oad_user); root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- I tried running this using `mysql`, but it failed
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # mysql -u $dbUser -p${dbPass} $dbName < ${docrootDir}/extensions/OATHAuth/sql/sqlite/tables-generated.sql ERROR 1064 (42000) at line 5: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'NOT NULL, oat_name BLOB NOT NULL )' at line 2 root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # cat ${docrootDir}/extensions/OATHAuth/sql/sqlite/tables-generated.sql | mysql -u $dbUser -p${dbPass} $dbName ERROR 1064 (42000) at line 5: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'NOT NULL, oat_name BLOB NOT NULL )' at line 2 root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- I tried pasting it manually into the command-line, and I got the same result
Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 1081219 Server version: 10.11.6-MariaDB-0+deb12u1 Debian 12 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [osewiki_db]> CREATE TABLE /*_*/oathauth_types ( -> oat_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, -> oat_name BLOB NOT NULL -> ); ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'NOT NULL, oat_name BLOB NOT NULL )' at line 2 MariaDB [osewiki_db]>
- after several trial-and-errors, I got this to work
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # mysql -u $dbUser -p${dbPass} $dbName Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 1081332 Server version: 10.11.6-MariaDB-0+deb12u1 Debian 12 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [osewiki_db]> CREATE TABLE wiki_oathauth_types ( -> oat_id INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL, -> oat_name BLOB NOT NULL -> ); Query OK, 0 rows affected (0,028 sec) MariaDB [osewiki_db]>
- I tried many things, but I think what worked was changing AUTOINCREMENT to AUTO_INCREMENT, per https://mariadb.com/kb/en/create-table/#column-definitions
- I tried again, this time doing a sed substitue for AUTOINCREMENT to AUTO_INCREMENT, and this time I had no errors
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # cat $docrootDir/extensions/OATHAuth/sql/sqlite/tables-generated.sql | sed 's/AUTOINCREMENT/AUTO_INCREMENT/g' | mysql -u $dbUser -p${dbPass} $dbName root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- after this, I tried to run the upgrade scripts again, but it failed in 5 seconds with this error
root@hetzner3 /var/www/html/wiki.opensourceecology.org # tail -n30 /var/tmp/CHG_20241228_wiki_1.35-to-1.43/update-to-v1.43.log ...ipblocks doesn't exist. ...pagelinks table does not contain pl_title field. ...page_links_updated in table page already modified by patch patch-page-page_links_updated-noinfinite.sql. ...searchindex table has already been migrated. Running MediaWiki\Extension\OATHAuth\Maintenance\UpdateTOTPScratchTokensToArray... ...Update 'MediaWiki\Extension\OATHAuth\Maintenance\UpdateTOTPScratchTokensToArray' already logged as completed. Use --force to run it again. done. Running MediaWiki\Extension\OATHAuth\Maintenance\UpdateForMultipleDevicesSupport... Wikimedia\Rdbms\DBQueryError from line 1198 of /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/rdbms/database/Database.php: Error 1146: Table 'osewiki_db.wiki_oathauth_types' doesn't exist Function: MediaWiki\Extension\OATHAuth\OATHAuthModuleRegistry::getModuleIdsFromDatabase Query: SELECT oat_id,oat_name FROM `wiki_oathauth_types` #0 /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/rdbms/database/Database.php(1182): Wikimedia\Rdbms\Database->getQueryException() #1 /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/rdbms/database/Database.php(1156): Wikimedia\Rdbms\Database->getQueryExceptionAndLog() #2 /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/rdbms/database/Database.php(647): Wikimedia\Rdbms\Database->reportQueryError() #3 /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/rdbms/database/Database.php(1345): Wikimedia\Rdbms\Database->query() #4 /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/rdbms/database/DBConnRef.php(127): Wikimedia\Rdbms\Database->select() #5 /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/rdbms/database/DBConnRef.php(351): Wikimedia\Rdbms\DBConnRef->__call() #6 /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/rdbms/querybuilder/SelectQueryBuilder.php(744): Wikimedia\Rdbms\DBConnRef->select() #7 /var/www/html/wiki.opensourceecology.org/htdocs/extensions/OATHAuth/src/OATHAuthModuleRegistry.php(132): Wikimedia\Rdbms\SelectQueryBuilder->fetchResultSet() #8 /var/www/html/wiki.opensourceecology.org/htdocs/extensions/OATHAuth/src/OATHAuthModuleRegistry.php(93): MediaWiki\Extension\OATHAuth\OATHAuthModuleRegistry->getModuleIdsFromDatabase() #9 /var/www/html/wiki.opensourceecology.org/htdocs/extensions/OATHAuth/maintenance/UpdateForMultipleDevicesSupport.php(56): MediaWiki\Extension\OATHAuth\OATHAuthModuleRegistry->getModuleIds() #10 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/includes/LoggedUpdateMaintenance.php(51): MediaWiki\Extension\OATHAuth\Maintenance\UpdateForMultipleDevicesSupport->doDBUpdates() #11 /var/www/html/wiki.opensourceecology.org/htdocs/includes/installer/DatabaseUpdater.php(1140): MediaWiki\Maintenance\LoggedUpdateMaintenance->execute() #12 /var/www/html/wiki.opensourceecology.org/htdocs/includes/installer/DatabaseUpdater.php(595): MediaWiki\Installer\DatabaseUpdater->runMaintenance() #13 /var/www/html/wiki.opensourceecology.org/htdocs/includes/installer/DatabaseUpdater.php(552): MediaWiki\Installer\DatabaseUpdater->runUpdates() #14 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/update.php(195): MediaWiki\Installer\DatabaseUpdater->doUpdates() #15 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/includes/MaintenanceRunner.php(703): UpdateMediaWiki->execute() #16 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/run.php(51): MediaWiki\Maintenance\MaintenanceRunner->run() #17 {main} root@hetzner3 /var/www/html/wiki.opensourceecology.org #
- I checked the db, and I see the tables it created are missing the 'wiki_' prefix. I guess that's what the '/*_*/' was for? not sure how that's *supposed* to work
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # mysql -u $dbUser -p${dbPass} $dbName Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 1081392 Server version: 10.11.6-MariaDB-0+deb12u1 Debian 12 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [osewiki_db]> show tables limit 5; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'limit 5' at line 1 MariaDB [osewiki_db]> show tables; +-----------------------------+ | Tables_in_osewiki_db | +-----------------------------+ | oathauth_devices | | oathauth_types | | wiki_account_credentials | | wiki_account_requests | ...
- a second sed to fix that
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # cat $docrootDir/extensions/OATHAuth/sql/sqlite/tables-generated.sql | sed 's/AUTOINCREMENT/AUTO_INCREMENT/g' | sed 's%/\*_\*/%wiki_%g' -- This file is automatically generated using maintenance/generateSchemaSql.php. -- Source: sql/tables.json -- Do not modify this file directly. -- See https://www.mediawiki.org/wiki/Manual:Schema_changes CREATE TABLE wiki_oathauth_types ( oat_id INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL, oat_name BLOB NOT NULL ); CREATE UNIQUE INDEX oat_name ON wiki_oathauth_types (oat_name); CREATE TABLE wiki_oathauth_devices ( oad_id INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL, oad_user INTEGER NOT NULL, oad_type INTEGER NOT NULL, oad_name BLOB DEFAULT NULL, oad_created BLOB DEFAULT NULL, oad_data BLOB DEFAULT NULL ); CREATE INDEX oad_user ON wiki_oathauth_devices (oad_user); root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- and we run it to add the DBs
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # cat $docrootDir/extensions/OATHAuth/sql/sqlite/tables-generated.sql | sed 's/AUTOINCREMENT/AUTO_INCREMENT/g' | sed 's%/\*_\*/%wiki_%g' | mysql -u $dbUser -p${dbPass} $dbName root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- it ran in 5 seconds again, but this time it exited with "Done" – no errors
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # time nice sudo -u www-data php "${docrootDir}/maintenance/run.php" "${docrootDir}/maintenance/update.php" &> ${chg_dir}/update-to-v1.43.log real 0m5,290s user 0m0,005s sys 0m0,004s root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- here's the run log output
root@hetzner3 /var/www/html/wiki.opensourceecology.org # tail -n30 /var/tmp/CHG_20241228_wiki_1.35-to-1.43/update-to-v1.43.log done. ...ipblocks doesn't exist. ...pagelinks table does not contain pl_title field. ...page_links_updated in table page already modified by patch patch-page-page_links_updated-noinfinite.sql. ...searchindex table has already been migrated. Running MediaWiki\Extension\OATHAuth\Maintenance\UpdateTOTPScratchTokensToArray... ...Update 'MediaWiki\Extension\OATHAuth\Maintenance\UpdateTOTPScratchTokensToArray' already logged as completed. Use --force to run it again. done. Running MediaWiki\Extension\OATHAuth\Maintenance\UpdateForMultipleDevicesSupport... Now processing rows with id between 0 and 500... (updated 0 users so far) Now processing rows with id between 500 and 1000... (updated 0 users so far) Now processing rows with id between 1000 and 1500... (updated 0 users so far) Now processing rows with id between 1500 and 2000... (updated 0 users so far) Now processing rows with id between 2000 and 2500... (updated 0 users so far) Now processing rows with id between 2500 and 3000... (updated 0 users so far) Now processing rows with id between 3000 and 3500... (updated 0 users so far) Now processing rows with id between 3500 and 4000... (updated 0 users so far) Done, updated data for 1 users. done. ...oathauth_types table already exists. Dropping table oathauth_users ...done. ...site_stats is populated...done. ...Update 'cleanup empty categories' already logged as completed. Use --force to run it again. Fixing log entries with log_title starting with 'User:#' ...Processing unblock rows with IDs 16061 to 110080 done. Set the local repo temp zone container to be private. Purging caches...done. Done in 0.1 s. root@hetzner3 /var/www/html/wiki.opensourceecology.org #
- I tried to update the thread with this https://www.mediawiki.org/wiki/Topic:Yakailc03f0u43c0
> I've probably found solution about this. (maybe?) Before run update.php, run <code>(wiki folder)/extensions/OATHAuth/sql/sqlite/tables-generated.sql</code> manually fwiw, we found that the sql file had errors <pre> ERROR 1064 (42000) at line 5: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'NOT NULL, oat_name BLOB NOT NULL )' at line 2
The solution was to replace "AUTOINCREMENT" with "AUTO_INCREMENT".
And we also had to replace "/*_*/" with our actual table prefix "wiki_".
Running this command before the upgrade works for us
cat $docrootDir/extensions/OATHAuth/sql/sqlite/tables-generated.sql | sed 's/AUTOINCREMENT/AUTO_INCREMENT/g' | sed 's%/\*_\*/%wiki_%g' | mysql -u $dbUser -p${dbPass} $dbName
- ...but I got an error
'Your IP address is in a range that has been [[m:Special:MyLanguage/Global blocks|blocked on all Wikimedia Foundation wikis]].' The block was made by JJMC89. The reason given is [[m:Special:MyLanguage/NOP|Open proxy/Webhost]]: See the [[m:WM:OP/H|help page]] if you are affected . * Start of block: 01:01, 3 July 2024 * Expiry of block: 01:01, 3 July 2027 Your current IP address is REDACTED. The blocked range is REDACTED/20. Please include all above details in any queries you make. If you believe you were blocked by mistake, you can find additional information and instructions in the No open proxies global policy. Otherwise, to discuss the block please post a request for review on Meta-Wiki. You could also send an email to the stewards VRT queue at "stewards@wikimedia.org" including all above details.
- I tried to load the Special:Version, but it still says it's running v1.35.0 https://wiki.opensourceecology.org/wiki/Special:Version
- oh, I cleared the varnish cache, refreshed, and now it's saying it's v1.43.0. Great!
- ok, here's the contents of the version page now
Installed software Product Version MediaWiki 1.43.0 PHP 8.2.26 (fpm-fcgi) ICU 72.1 MariaDB 10.11.6-MariaDB-0+deb12u1 Entry point URLs Entry point URL Article path /wiki/$1 Script path / index.php /index.php api.php /api.php rest.php /rest.php Installed skins No skins currently installed. Installed extensions Special pagesExtension Version License Description Authors Interwiki 3.2 GPL-2.0-or-later Adds a special page to view and edit the interwiki table Stephanie Amanda Stevens, Alexandre Emsenhuber, Robin Pepermans, Siebrand Mazeland, Platonides, Raimond Spekking, Sam Reed, Jack Phoenix, Calimonius the Estrange and others Nuke – GPL-2.0-or-later Gives administrators the ability to mass delete pages Brion Vibber and Jeroen De Dauw Replace Text 1.8 GPL-2.0-or-later Provides a special page to allow administrators to do a global string find-and-replace on all the content pages of a wiki Yaron Koren, Niklas Laxström and others Parser hooksExtension Version License Description Authors Cite – GPL-2.0-or-later Adds <ref> and <references> tags for citations Ævar Arnfjörð Bjarmason, Andrew Garrett, Brion Vibber, Ed Sanders, Marius Hoch, Steve Sanbeg, Trevor Parscal and others OtherExtension Version License Description Authors Gadgets – GPL-2.0-or-later Lets users select custom CSS and JavaScript gadgets in their preferences Daniel Kinzler, Max Semenik, Timo Tijhof and Siddharth VP OATHAuth 0.5.0 GPL-2.0-or-later AND GPL-3.0-or-later Provides authentication support using HMAC based one-time passwords Ryan Lane, Robert Vogel <vogel@hallowelt.com>, Dejan Savuljesku <savuljesku@hallowelt.com> and Taavi Väänänen Installed libraries Installed server-side libraries Library Version License Description Authors bacon/bacon-qr-code 2.0.8 BSD-2-Clause BaconQrCode is a QR code generator for PHP. Ben Scholzen 'DASPRiD' christian-riesen/base32 1.6.0 MIT Base32 encoder/decoder according to RFC 4648 Christian Riesen composer/semver 3.4.3 MIT Semver library that offers utilities, version constraint parsing and validation. Nils Adermann, Jordi Boggiano and Rob Bast cssjanus/cssjanus 2.3.0 Apache-2.0 Convert CSS stylesheets between left-to-right and right-to-left. Roan Kattouw, Trevor Parscal and Timo Tijhof dasprid/enum 1.0.5 BSD-2-Clause PHP 7.1 enum implementation Ben Scholzen 'DASPRiD' endroid/qr-code 4.6.1 MIT Endroid QR Code Jeroen van den Enden guzzlehttp/guzzle 7.9.2 MIT Guzzle is a PHP HTTP client library Graham Campbell, Michael Dowling, Jeremy Lindblom, George Mponos, Tobias Nyholm, Márk Sági-Kazár and Tobias Schultze guzzlehttp/promises 2.0.4 MIT Guzzle promises library Graham Campbell, Michael Dowling, Tobias Nyholm and Tobias Schultze guzzlehttp/psr7 2.7.0 MIT PSR-7 message implementation that also provides common utility methods Graham Campbell, Michael Dowling, George Mponos, Tobias Nyholm, Márk Sági-Kazár, Tobias Schultze and Márk Sági-Kazár jakobo/hotp-php 2.0.0 BSD-3-Clause HOTP simplifies One Time Password systems for PHP Authentication Jakob Heuser justinrainbow/json-schema 5.3.0 MIT A library to validate a json schema. Bruno Prieto Reis, Justin Rainbow, Igor Wiedler and Robert Schönthal liuggio/statsd-php-client 1.0.18 MIT Statsd (Object Oriented) client library for PHP Giulio De Donato mck89/peast 1.16.3 BSD-3-Clause Peast is PHP library that generates AST for JavaScript code Marco Marchiò monolog/monolog 2.9.3 MIT Sends your logs to files, sockets, inboxes, databases and various web services Jordi Boggiano oojs/oojs-ui 0.51.2 MIT Provides library of common widgets, layouts, and windows. Bartosz Dziewoński, Ed Sanders, James D. Forrester, Kirsten Menger-Anderson, Kunal Mehta, Moriel Schottlender, Prateek Saxena, Roan Kattouw, Thiemo Kreuz, Timo Tijhof, Trevor Parscal and Volker E. pear/console_getopt 1.4.3 BSD-2-Clause More info available on: http://pear.php.net/package/Console_Getopt Andrei Zmievski, Stig Bakken and Greg Beaver pear/mail 2.0.0 BSD-3-Clause Class that provides multiple interfaces for sending emails. Chuck Hagenbuch, Armin Graefe, Richard Heyes and Aleksander Machniak pear/mail_mime 1.10.12 BSD-3-Clause Mail_Mime provides classes to create MIME messages Cipriano Groenendal and Aleksander Machniak pear/net_smtp 1.12.1 BSD-2-Clause An implementation of the SMTP protocol Jon Parise, Chuck Hagenbuch and Armin Graefe pear/net_socket 1.2.2 PHP License More info available on: http://pear.php.net/package/Net_Socket Chuck Hagenbuch, Aleksander Machniak and Stig Bakken pear/net_url2 2.2.2 BSD-3-Clause Class for parsing and handling URL. Provides parsing of URLs into their constituent parts (scheme, host, path etc.), URL generation, and resolving of relative URLs. David Coallier, Tom Klingenberg and Christian Schmidt pear/pear-core-minimal 1.10.15 BSD-3-Clause Minimal set of PEAR core files to be used as composer dependency Christian Weiske pear/pear_exception 1.0.2 BSD-2-Clause The PEAR Exception base class. Helgi Thormar and Greg Beaver psr/container 1.1.2 MIT Common Container Interface (PHP FIG PSR-11) PHP-FIG psr/http-client 1.0.3 MIT Common interface for HTTP clients PHP-FIG psr/http-factory 1.1.0 MIT PSR-17: Common interfaces for PSR-7 HTTP message factories PHP-FIG psr/http-message 1.1 MIT Common interface for HTTP messages PHP-FIG psr/log 1.1.4 MIT Common interface for logging libraries PHP-FIG ralouphie/getallheaders 3.0.3 MIT A polyfill for getallheaders. Ralph Khattar symfony/deprecation-contracts 2.5.3 MIT A generic function and convention to trigger deprecation notices Nicolas Grekas and Symfony Community symfony/polyfill-php80 1.31.0 MIT Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions Ion Bazan, Nicolas Grekas and Symfony Community symfony/polyfill-php81 1.31.0 MIT Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions Nicolas Grekas and Symfony Community symfony/polyfill-php82 1.31.0 MIT Symfony polyfill backporting some PHP 8.2+ features to lower PHP versions Nicolas Grekas and Symfony Community symfony/polyfill-php83 1.31.0 MIT Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions Nicolas Grekas and Symfony Community symfony/yaml 5.4.45 MIT Loads and dumps YAML files Fabien Potencier and Symfony Community wikimedia/assert 0.5.1 MIT Provides runtime assertions Daniel Kinzler and Thiemo Kreuz wikimedia/at-ease 3.0.0 GPL-2.0-or-later Safe replacement to @ for suppressing warnings. Tim Starling and MediaWiki developers wikimedia/base-convert 2.0.2 GPL-2.0-or-later Convert an arbitrarily-long string from one numeric base to another, optionally zero-padding to a minimum column width. Brion Vibber and Tyler Romeo wikimedia/bcp-47-code 2.0.0 GPL-2.0-or-later Simple interface representing languages which have a BCP 47 code C. Scott Ananian wikimedia/cdb 3.0.0 GPL-2.0-or-later Constant Database (CDB) wrapper library for PHP. Provides pure-PHP fallback when dba_* functions are absent. Tim Starling, Chad Horohoe, Ori Livneh and Daniel Kinzler wikimedia/cldr-plural-rule-parser 2.0.0 GPL-2.0-or-later Evaluates plural rules specified in the CLDR project notation. Tim Starling and Niklas Laxström wikimedia/common-passwords 0.5.0 MIT List of the 100,000 most commonly used passwords Sam Reed wikimedia/composer-merge-plugin 2.1.0 MIT Composer plugin to merge multiple composer.json files Bryan Davis wikimedia/equivset 1.7.0 GPL-2.0-or-later Visually Equivalent Set of UTF-8 Characters Brooke Vibber, David Barratt, Thiemo Kreuz and Umherirrender wikimedia/html-formatter 4.1.0 GPL-2.0-or-later Performs transformations of HTML by wrapping around libxml2 and working around its countless bugs. MediaWiki contributors wikimedia/idle-dom 1.0.0 MIT DOM interfaces automatically generated from WebIDL C. Scott Ananian wikimedia/ip-utils 5.0.0 GPL-2.0-or-later Parse, match, and analyze IP addresses and CIDR ranges MediaWiki developers wikimedia/json-codec 3.0.3 GPL-2.0-or-later Interfaces to serialize and deserialize PHP objects to/from JSON Petr Pchelko, Daniel Kinzler and C. Scott Ananian wikimedia/less.php 5.1.2 Apache-2.0 PHP port of the LESS processor Timo Tijhof, Josh Schmidt, Matt Agar and Martin Jantošovič wikimedia/minify 2.8.0 Apache-2.0 Minification of JavaScript code and CSS stylesheets. Paul Copperman, Trevor Parscal, Timo Tijhof and Roan Kattouw wikimedia/normalized-exception 2.0.0 MIT A helper for making exceptions play nice with PSR-3 logging Gergő Tisza wikimedia/object-factory 5.0.1 GPL-2.0-or-later Construct objects from configuration instructions Bryan Davis wikimedia/parsoid 0.20.1 GPL-2.0-or-later Parsoid, a bidirectional parser between wikitext and HTML5 Wikimedia Content Transform Team and the broader MediaWiki community wikimedia/php-session-serializer 3.0.0 GPL-2.0-or-later Provides methods like PHP's session_encode and session_decode that don't mess with $_SESSION Brad Jorsch wikimedia/purtle 2.0.0 GPL-2.0-or-later Fast streaming RDF serializer Daniel Kinzler, Stanislav Malyshev, Thiemo Kreuz and C. Scott Ananian wikimedia/relpath 4.0.1 MIT Work with file paths to join or find the relative path Ori Livneh wikimedia/remex-html 4.1.1 MIT Fast HTML 5 parser Tim Starling wikimedia/request-timeout 2.0.0 MIT Request timeout library for Excimer with plain PHP fallback Tim Starling wikimedia/running-stat 2.1.0 GPL-2.0-or-later PHP implementations of online statistical algorithms Ori Livneh wikimedia/scoped-callback 5.0.0 GPL-2.0-or-later Make a callback run when a dummy object leaves the scope. Aaron Schulz wikimedia/services 4.0.0 GPL-2.0-or-later Generic service to manage named services using lazy instantiation based on instantiator callback functions Daniel Kinzler wikimedia/shellbox 4.1.1 MIT Library and server for containerized shell execution Tim Starling, Kunal Mehta and Max Semenik wikimedia/timestamp 4.1.1 GPL-2.0-or-later Creation, parsing, and conversion of timestamps Tyler Romeo wikimedia/utfnormal 4.0.0 GPL-2.0-or-later Contains Unicode normalization routines, including both pure PHP implementations and automatic use of the 'intl' PHP extension when present Brion Vibber wikimedia/wait-condition-loop 2.0.2 GPL-2.0-or-later Wait loop that reaches a condition or times out Aaron Schulz wikimedia/wikipeg 4.0.0 MIT Parser generator for JavaScript and PHP wikimedia/wrappedstring 4.0.1 MIT Automatically compact sequentially-outputted strings that share a common prefix / suffix pair. Timo Tijhof wikimedia/xmp-reader 0.9.4 GPL-2.0-or-later Reader for XMP data containing properties relevant to images Brian Wolff wikimedia/zest-css 3.0.1 MIT Fast, lightweight, extensible CSS selector engine for PHP Christopher Jeffrey and C. Scott Ananian zordius/lightncandy 1.2.6 MIT An extremely fast PHP implementation of handlebars ( http://handlebarsjs.com/ ) and mustache ( http://mustache.github.io/ ). Zordius Chen Installed client-side libraries Library Version License Authors Source CLDRPluralRuleParser 1.3.1-0dda851 MIT Santhosh Thottingal MediaWiki codex-design-tokens 1.14.0 GPL-2.0+ Design System team, Wikimedia Foundation MediaWiki codex-icons 1.14.0 MIT Design System team, Wikimedia Foundation MediaWiki codex 1.14.0 GPL-2.0+ Design System team, Wikimedia Foundation MediaWiki fetch-polyfill 3.6.2 MIT GitHub, Inc. MediaWiki intersection-observer 0.12.0 Apache-2.0 Philip Walton MediaWiki jquery.chosen 1.8.2 MIT Patrick Filler for Harvest, Matthew Lettini, Patrick Filler, Ken Earley, Christophe Coevoet, Koen Punt, and T.J. Schuck. MediaWiki jquery.client 3.0.0 MIT Trevor Parscal, Timo Tijhof, and Roan Kattouw MediaWiki jquery.i18n 1.0.10 MIT OR GPL-2.0-or-later Language Engineering team, Wikimedia Foundation MediaWiki jquery.ui 1.9.2 MIT OpenJS Foundation and other contributors MediaWiki jquery 3.7.1 MIT OpenJS Foundation and other contributors MediaWiki moment 2.25.2 MIT JS Foundation and other contributors MediaWiki mustache 4.2.0 MIT Michael Jackson, Jan Lehnardt, Phillip Johnsen, and other contributors MediaWiki oojs 7.0.1 MIT OOjs Team and other contributors MediaWiki ooui 0.51.2 MIT OOUI Team and other contributors MediaWiki pako 2.1.0 MIT AND Zlib Andrei Tuputcyn, Vitaly Puzrin, Friedel Ziegelmayer, Kirill Efimov, Jean-loup Gailly, and Mark Adler MediaWiki pinia 2.0.16 MIT Eduardo San Martin Morote MediaWiki qunitjs 2.20.0 MIT OpenJS Foundation and other contributors MediaWiki sinonjs 1.17.7 BSD-3-Clause Christian Johansen and other contributors MediaWiki swagger-ui 4.15.5 Apache-2.0 Kyle Shockey, Tony Tam, Vladimír Gorej, and others MediaWiki url 3.111.0-0ece79ce32 MIT Financial Times MediaWiki vue-demi 0.14.7 MIT Anthony Fu MediaWiki vue 3.4.27 MIT Yuxi (Evan) You MediaWiki vuex 4.0.2 MIT Yuxi (Evan) You MediaWiki Parser extension tags <gallery>, <html>, <indicator>, <langconvert>, <nowiki>, <pre>, <ref> and <references> Parser function hooks {{anchorencode}}, {{BASEPAGENAME}}, {{BASEPAGENAMEE}}, {{#bcp47}}, {{bidi}}, {{canonicalurl}}, {{canonicalurle}}, {{CASCADINGSOURCES}}, {{DEFAULTSORT}}, {{#dir}}, {{DISPLAYTITLE}}, {{filepath}}, {{#FORMAL}}, {{#formatdate}}, {{formatnum}}, {{FULLPAGENAME}}, {{FULLPAGENAMEE}}, {{fullurl}}, {{fullurle}}, {{gender}}, {{grammar}}, {{int}}, {{#language}}, {{lc}}, {{lcfirst}}, {{localurl}}, {{localurle}}, {{NAMESPACE}}, {{NAMESPACEE}}, {{NAMESPACENUMBER}}, {{ns}}, {{nse}}, {{NUMBERINGROUP}}, {{NUMBEROFACTIVEUSERS}}, {{NUMBEROFADMINS}}, {{NUMBEROFARTICLES}}, {{NUMBEROFEDITS}}, {{NUMBEROFFILES}}, {{NUMBEROFPAGES}}, {{NUMBEROFUSERS}}, {{padleft}}, {{padright}}, {{pageid}}, {{PAGENAME}}, {{PAGENAMEE}}, {{PAGESINCATEGORY}}, {{PAGESIZE}}, {{plural}}, {{PROTECTIONEXPIRY}}, {{PROTECTIONLEVEL}}, {{REVISIONDAY}}, {{REVISIONDAY2}}, {{REVISIONID}}, {{REVISIONMONTH}}, {{REVISIONMONTH1}}, {{REVISIONTIMESTAMP}}, {{REVISIONUSER}}, {{REVISIONYEAR}}, {{ROOTPAGENAME}}, {{ROOTPAGENAMEE}}, {{#special}}, {{#speciale}}, {{SUBJECTPAGENAME}}, {{SUBJECTPAGENAMEE}}, {{SUBJECTSPACE}}, {{SUBJECTSPACEE}}, {{SUBPAGENAME}}, {{SUBPAGENAMEE}}, {{#tag}}, {{TALKPAGENAME}}, {{TALKPAGENAMEE}}, {{TALKSPACE}}, {{TALKSPACEE}}, {{uc}}, {{ucfirst}} and {{urlencode}}
- important differences from above:
- skins
- hetzner2 lists the following skins: Cologne Blue, Modern, MonoBook, Vector
- hetzner3 lists 0 skins
- extensions
- hetzner2 lists CategoryTree, Cite, ConfirmEdit, Confirm User Accounts, Gadgets, Interwiki, Nuke, OATHAuth, ReCaptcha, Replace Text, UserMerge, Widgets
- hetzner3 lists Cite, Gadgets, Interwiki, Nuke, OATHAuth, and Replace Text
- therefore, we need to add the following missing extensions to hetzner3: CategoryTree, ConfirmEdit, Confirm User Accounts, ReCaptcha, UserMerge, Widgets
- but I also might want to look into seeing if I can find some extension that serves as a replacement for ReCaptcha, such as hCaptcha or mCaptcha or friendlycaptcha
- skins
- I still get an error at the top of the page complaining about the skin "Vector" not being installed; let's do that
# UPDATE SKINS rsync -av --progress /var/tmp/mediawiki/themes/CologneBlue ${docrootDir}/skins/ rsync -av --progress /var/tmp/mediawiki/themes/Modern ${docrootDir}/skins/ # UPDATE EXTENSIONS extensions="ConfirmAccount UserMerge Widgets" for extension in ${extensions}; do extension_path="${docrootDir}/extensions/${extension}" source_path="/var/tmp/wordpress/extensions/${extensions}" if [ -d "${source_path}" ]; then echo "${extension}" rsync -a ${source_path}/ "${extension_path}/" fi done # FIX PERMISSIONS time /usr/local/bin/fix_web_permissions.sh # clear varnish cache again varnishadm 'ban req.http.host ~ "wiki.opensourceecology.org"'
- after that, I refreshed the wiki and I still have the error.
- here's the error
Whoops! The default skin for your wiki, defined in $wgDefaultSkin as Vector, is not available. Your installation seems to include the following skins. See Manual: Skin configuration for information how to enable them and choose the default. cologneblue / CologneBlue (disabled) minervaneue / MinervaNeue (disabled) modern / Modern (disabled) monobook / MonoBook (disabled) timeless / Timeless (disabled) vector / Vector (disabled) If you have just installed MediaWiki You probably installed from git, or directly from the source code using some other method. This is expected. Try installing some skins from mediawiki.org's skin directory, by: Downloading the tarball installer, which comes with several skins and extensions. You can copy and paste the skins/ directory from it. Downloading individual skin tarballs from mediawiki.org. Using Git to download skins. Doing this should not interfere with your git repository if you're a MediaWiki developer. If you have just upgraded MediaWiki MediaWiki 1.24 and newer no longer automatically enables installed skins (see Manual: Skin autodiscovery). You can paste the following lines into LocalSettings.php to enable all installed skins: wfLoadSkin( 'CologneBlue' ); wfLoadSkin( 'MinervaNeue' ); wfLoadSkin( 'Modern' ); wfLoadSkin( 'MonoBook' ); wfLoadSkin( 'Timeless' ); wfLoadSkin( 'Vector' ); If you have just modified LocalSettings.php Double-check the skin names for typos.
- so it looks like installing the theme isn't enough, I have to activate it in LocalSettings.php
Thr Feb 06, 2025
- Here's TOFU 3/3 (ISP, exit in Ecuador)
Ecuador 2025-02-06 INFO: Determining Latest Version of Wordpress Core INFO: Determining Latest Version of Wordpress Plugins . INFO: Determining Latest Version of Wordpress Themes . . . . . https://altushost-swe.dl.sourceforge.net/project/phplist/phplist/3.6.15/phplist-3.6.15.tgz ######################################################################### 100.0%######################################################################### 100.0% https://netix.dl.sourceforge.net/project/phplist/phplist/3.6.15/phplist-3.6.15.zip ######################################################################### 100.0%######################################################################### 100.0% https://github.com/phpList/phplist3/archive/refs/tags/v3.6.15.zip -=O=- # # ## https://github.com/phpList/phplist3/archive/refs/tags/v3.6.15.tar.gz -=O=- # # # # https://downloads.wordpress.org/release/wordpress-6.7.1.zip ######################################################################### 100.0% https://downloads.wordpress.org/plugin/woocommerce-gateway-stripe.9.1.1.zip ######################################################################### 100.0% https://downloads.wordpress.org/theme/astra.4.8.11.zip ######################################################################### 100.0% https://downloads.wordpress.org/theme/generatepress.3.5.1.zip ######################################################################### 100.0% https://downloads.wordpress.org/theme/hestia.3.2.8.zip ######################################################################### 100.0% https://downloads.wordpress.org/theme/neve.4.0.1.zip ######################################################################### 100.0% https://downloads.wordpress.org/theme/oceanwp.4.0.5.zip ######################################################################### 100.0% 2025-02-06 5.9M astra.4.8.11.zip 1.1M generatepress.3.5.1.zip 8.0M hestia.3.2.8.zip 7.1M neve.4.0.1.zip 6.0M oceanwp.4.0.5.zip 21M phplist-3.6.15.tgz 29M phplist-3.6.15.zip 32K plugin.json 4.6M v3.6.15.tar.gz 5.0M v3.6.15.zip 1.4M woocommerce-gateway-stripe.9.1.1.zip 28M wordpress-6.7.1.zip 0e106338e48c9d4d023a46a368f0069b807ce2118a9bf51ddf04c76070867aba astra.4.8.11.zip a5e1d7478cce21b7bbef511bbea44156f59acd40cc7e51ad469c403013ba29f5 generatepress.3.5.1.zip 241b8c804ed1af72b1c9aa52f603730a52ebf7850383ac2e4d9dd163f6cfc3ca hestia.3.2.8.zip 2b51e758d61b9d78ebd57d2afd9a967335bcb6866c5bff5a0d7157eecb6ec8cb neve.4.0.1.zip d1392dbe5f729178c968f5551855a412b41866e876dcf2a79ffd4e07298c4d13 oceanwp.4.0.5.zip dfe441583f7f72b116c2f7db24821259df4fdc991ab52a7078ba3293729d71b9 phplist-3.6.15.tgz fcbe14b2770832d2788f3a8a5c9c6c18b178bf069559ca30c947bac78ca51e19 phplist-3.6.15.zip 69708af323f3bad6654dd7b52bd385df4f0fa600d79261b608626ce7109136ef plugin.json 31e4a733aa481fe483f5513931d04607b14243b7f2cc2c3c210a6abe508e3265 v3.6.15.tar.gz 16c3bc98c6d4acd52478042b733c90ac8d64d31762b884856e6cf3c620b4b82e v3.6.15.zip 2a958f50e458b900d8cd2d7b980e93e37ca720eebf3c7b4a5f94ed5d9d167079 woocommerce-gateway-stripe.9.1.1.zip 75f4e9cb71e583ca3f8b19691b5754adb9c981580762137f82443e1eec468f9c wordpress-6.7.1.zip user@disp4288:/tmp/tmp.aqIzX10FIC$
- meld diff of these 3 TOFUs had two issues
- hestia changed from v3.2.7 to v3.2.8
- neve changed from v4.0.0 to v4.0.1
- well that sucks; neve was the most important reason we were doing this.
- so let's do this again. And this time I'm adding some translation plugins.
- I recently did a ton of research (for my personal sites) for the best free wordpress i18nl plugins, and narrowed it down to 4, which I need to play-with
- so I'm mostly doing this TOFU for my own benefit, but I'll do the comparison for free and I'll probably install the winner (but not activate it) on all of OSE's wordpress sites, in-case they want to have posts or pages in >1 language in the future (useful when doing collaboration with German, Italian, Spanish, etc-speaking orgs)
- the most important result of this last 3TOFU is that we now finally have our phpList releases
- unfortunately, there's 4 files and they all differ
user@ose:~/tmp/hetzner3/3tofu3$ sha256sum */*.zip fcbe14b2770832d2788f3a8a5c9c6c18b178bf069559ca30c947bac78ca51e19 phplist-3.6.15-zip/phplist-3.6.15.zip 16c3bc98c6d4acd52478042b733c90ac8d64d31762b884856e6cf3c620b4b82e v3.6.15-zip/v3.6.15.zip user@ose:~/tmp/hetzner3/3tofu3$ sha256sum */*.tar.gz 31e4a733aa481fe483f5513931d04607b14243b7f2cc2c3c210a6abe508e3265 v3.6.15-tar-gz/v3.6.15.tar.gz user@ose:~/tmp/hetzner3/3tofu3$ sha256sum */*.tgz dfe441583f7f72b116c2f7db24821259df4fdc991ab52a7078ba3293729d71b9 phplist-3.6.15-tgz/phplist-3.6.15.tgz user@ose:~/tmp/hetzner3/3tofu3$
- this is somewhat expected, especially from the compression algorithms of the archives being totally distinct
- I confirmed that he actual contents of phplist-3.6.15.zip and phplist-3.6.15.tgz are identical
user@ose:~/tmp/hetzner3/3tofu3$ diff -r phplist-3.6.15-zip/phplist-3.6.15 phplist-3.6.15-tgz/phplist-3.6.15 user@ose:~/tmp/hetzner3/3tofu3$
- and I also confirmed that the contents of the other set of files (I think these ones came from github -- as opposed to sourceforge) were also identical
user@ose:~/tmp/hetzner3/3tofu3$ diff -r v3.6.15-zip/phplist3-3.6.15/ v3.6.15-tar-gz/phplist3-3.6.15/ user@ose:~/tmp/hetzner3/3tofu3$
- but it looks like there's lots of differences between the ones named 'phplist-3.6.15' and the ones named 'v3.6.15'
user@ose:~/tmp/hetzner3/3tofu3$ diff -r phplist-3.6.15-zip/phplist-3.6.15 v3.6.15-zip/phplist3-3.6.15/ Only in v3.6.15-zip/phplist3-3.6.15/bin: fake-sendmail.sh Only in v3.6.15-zip/phplist3-3.6.15/bin: imgur-uploader.sh Only in v3.6.15-zip/phplist3-3.6.15/bin: start-selenium Only in v3.6.15-zip/phplist3-3.6.15/: composer.json Only in v3.6.15-zip/phplist3-3.6.15/: composer.lock Only in v3.6.15-zip/phplist3-3.6.15/: default.behat.yml Only in v3.6.15-zip/phplist3-3.6.15/: .dotgitlab-ci.yml Only in v3.6.15-zip/phplist3-3.6.15/: .github Only in v3.6.15-zip/phplist3-3.6.15/: .gitignore Only in v3.6.15-zip/phplist3-3.6.15/: .gitmodules Only in v3.6.15-zip/phplist3-3.6.15/: .gitsvnextmodules Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin: help Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin: info diff -r phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin/init.php v3.6.15-zip/phplist3-3.6.15/public_html/lists/admin/init.php 11c11,44 < define("VERSION","3.6.15"); --- > //## remove on rollout ### > if (is_file(dirname(__FILE__).'/../../../VERSION')) { > $fd = fopen(dirname(__FILE__).'/../../../VERSION', 'r'); > while ($line = fscanf($fd, '%[a-zA-Z0-9,. ]=%[a-zA-Z0-9,. ]')) { > list($key, $val) = $line; > if ($key == 'VERSION') { > $version = $val; > } > } > fclose($fd); > } else { > $version = 'dev'; > } > > if (!defined('VERSION')) { > if (!ini_get('open_basedir') && is_dir(dirname(__FILE__).'/../../../.git')) { > define('VERSION', $version.'-dev'); > define('DEVVERSION', true); > } else { > define('VERSION', $version); > define('DEVVERSION', false); > } > } else { > define('DEVVERSION', false); > } > > if (empty($GLOBALS['commandline']) && isset($GLOBALS['developer_email']) && $_SERVER['HTTP_HOST'] != 'dev.phplist.com' && !empty($GLOBALS['show_dev_errors'])) { > error_reporting(E_ALL); > ini_set('display_errors', 1); > foreach ($_REQUEST as $key => $val) { > unset($$key); > } > } > //## end remove on rollout ### Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin/plugins: campaignslicer.php Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin/plugins: CaptchaPlugin Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin/plugins: CaptchaPlugin.php Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin/plugins: CKEditorPlugin Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin/plugins: CKEditorPlugin.php Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin/plugins: Common Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin/plugins: CommonPlugin Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin/plugins: CommonPlugin.php Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin/plugins: COPYING.txt Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin/plugins: dateplaceholder.php Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin/plugins: disposablemailblock.php Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin/plugins: domainthrottlemap.php Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin/plugins: embedremoteimages.php Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin/plugins: inviteplugin.php Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin/plugins: SegmentPlugin Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin/plugins: SegmentPlugin.php Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin/plugins: subjectLinePlaceholdersPlugin.php Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin/plugins: UpdaterPlugin Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin/plugins: UpdaterPlugin.php diff -r phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin/structure.php v3.6.15-zip/phplist3-3.6.15/public_html/lists/admin/structure.php 16c16 < define('STRUCTUREVERSION',"3.6.15"); --- > define('STRUCTUREVERSION', 'dev'); Only in v3.6.15-zip/phplist3-3.6.15/public_html/lists/admin: tests Only in v3.6.15-zip/phplist3-3.6.15/public_html/lists/admin/ui: default Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/admin/ui: phplist-ui-bootlist Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists: base diff -r phplist-3.6.15-zip/phplist-3.6.15/public_html/lists/config/config.php v3.6.15-zip/phplist3-3.6.15/public_html/lists/config/config.php 35,38c35 < define('PHPMAILERHOST', 'localhost'); < define('PHPMAILERPORT',2500); < define('PHPMAILER_SECURE',false); < --- > define('PHPMAILERHOST', ''); 44c41 < define('TEST', 0); --- > define('TEST', 1); Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists: texts Only in phplist-3.6.15-zip/phplist-3.6.15/public_html/lists: updater Only in v3.6.15-zip/phplist3-3.6.15/: scripts Only in v3.6.15-zip/phplist3-3.6.15/: TESTING.md Only in v3.6.15-zip/phplist3-3.6.15/: tests Only in v3.6.15-zip/phplist3-3.6.15/: Vagrantfile user@ose:~/tmp/hetzner3/3tofu3$
- I asked the community which release we should use. I'm thinking sourceforge, but I want to be sure
- at first I'd think "don't use the one that has 'TEST' set to '1'), which is the sourceforge one
- but then there's the code block that says "remove on rollout", which also is in the sourceforge one.
- so basically there's a couple signs that say I should use one instead of the other and other signs that say I should use the other instead of one
- I'll wait to hear back from the phpList team before proceeding
- anyway, we do have all the files we need. 3TOFU is done for phpList
- ...
- here's our new 3TOFU script
################################################################################ # File: 3tofu.sh # Purpose: Execute these commands on 3 distinct machines (or VMs) on 3 distinct # days using 3 distinct networks exiting from 3 distinct countries # # For more info on 3TOFU (and why this is important), see: # * https://tech.michaelaltfied.net/3tofu # # Authors: Michael Altfield <michael@michaelaltfield.net> # Created: 2025-01-01 21:21:18+00:00 ################################################################################ JQ=$(which jq) || (echo "ERROR: Cannot find 'jq'"; exit 1) CURL="$(which curl) --location --retry 5 --retry-all-errors" || (echo "ERROR: Cannot find 'curl'"; exit 1) GREP=$(which grep) || (echo "ERROR: Cannot find 'grep'"; exit 1) REMOTE_FILES="" WARNINGS="" # in tails, we must torify if [[ "`whoami`" == "amnesia" ]] ; then CURL="/usr/bin/torify ${CURL}" PYTHON="/usr/bin/torify ${PYTHON}" fi tmpDir=`mktemp -d` pushd "${tmpDir}" # first get some info about our internet connection ${CURL} -s https://ifconfig.co/country | head -n1 ${CURL} -s https://check.torproject.org | grep Congratulations | head -n1 # and today's date date -u +"%Y-%m-%d" echo "INFO: Determining Latest Version of Wordpress Core" json=$($CURL -s "https://api.wordpress.org/core/version-check/1.7/") REMOTE_FILES="${REMOTE_FILES} $(echo "${json}" | $JQ -r '[.offers[]|select(.response=="upgrade")][0].download')" plugins='polylang translatepress-multilingual google-language-translator gtranslate' echo -ne "INFO: Determining Latest Version of Wordpress Plugins \n\t" for plugin in $plugins; do echo -n '. ' json=$(curl -so plugin.json https://api.wordpress.org/plugins/info/1.0/${plugin}.json) latest_version=$(cat plugin.json | jq -r .version) url=$(cat plugin.json | jq -r ".versions.\"${latest_version}\"") if [ "${url}" = "null" ]; then error=$(cat plugin.json | jq -r .error); description=$(cat plugin.json | jq -r .description); WARNINGS="${WARNINGS}\n\nWARNING: Failed to download plugin ${plugin}" WARNINGS="${WARNINGS}\n\t$error" WARNINGS="${WARNINGS}\n\t$description" else REMOTE_FILES="${REMOTE_FILES} ${url}" fi done echo themes='hestia neve' echo -ne "INFO: Determining Latest Version of Wordpress Themes \n\t" for theme in $themes; do echo -n '. ' json=$($CURL -s "https://api.wordpress.org/themes/info/1.2/?action=theme_information&slug=${theme}") latest_version=$(echo $json | $JQ -r .version) if [ "${latest_version}" = "null" ]; then error=$(echo $json | $JQ -r .error); description=$(echo $json | $JQ -r .description); WARNINGS="${WARNINGS}\n\nWARNING: Failed to download theme ${theme}" WARNINGS="${WARNINGS}\n\t$error" WARNINGS="${WARNINGS}\n\t$description" else REMOTE_FILES="${REMOTE_FILES} $(echo $json | $JQ -r ".download_link")" fi done echo echo -e "${WARNINGS}" echo # get the file for file in ${REMOTE_FILES}; do echo "${file}" ${CURL} --progress-bar -O "${file}" done # checksum date -u +"%Y-%m-%d" du -sh * sha256sum *
- and here's TOFU 1/3 (Tor, exit in Poland)
Congratulations. This browser is configured to use Tor. 2025-02-06 INFO: Determining Latest Version of Wordpress Core INFO: Determining Latest Version of Wordpress Plugins . . . . INFO: Determining Latest Version of Wordpress Themes . . https://downloads.wordpress.org/release/wordpress-6.7.1.zip ######################################################################### 100.0% https://downloads.wordpress.org/plugin/polylang.3.6.6.zip ######################################################################### 100.0% https://downloads.wordpress.org/plugin/translatepress-multilingual.2.9.4.zip ######################################################################### 100.0% https://downloads.wordpress.org/plugin/google-language-translator.6.0.20.zip ######################################################################### 100.0% https://downloads.wordpress.org/plugin/gtranslate.3.0.7.zip ######################################################################### 100.0% https://downloads.wordpress.org/theme/hestia.3.2.8.zip ######################################################################### 100.0% https://downloads.wordpress.org/theme/neve.4.0.1.zip ######################################################################### 100.0% 2025-02-06 296K google-language-translator.6.0.20.zip 700K gtranslate.3.0.7.zip 8.0M hestia.3.2.8.zip 7.1M neve.4.0.1.zip 64K plugin.json 592K polylang.3.6.6.zip 2.1M translatepress-multilingual.2.9.4.zip 28M wordpress-6.7.1.zip 01246c9c90f1373ee83d8e5884e5abba264c62e7301d99a468fd8eb95144be05 google-language-translator.6.0.20.zip 171eb362801ea28e74b302cd0fee472dbd5025a89f6c1634b5ca1029362a678c gtranslate.3.0.7.zip 241b8c804ed1af72b1c9aa52f603730a52ebf7850383ac2e4d9dd163f6cfc3ca hestia.3.2.8.zip 2b51e758d61b9d78ebd57d2afd9a967335bcb6866c5bff5a0d7157eecb6ec8cb neve.4.0.1.zip 4a87243dd3afb7c15bc8e1c51df6f63604996110691caa0d80d2119ccc59057a plugin.json 3a4a7f8872d16cb3538e948b4f85acee7d823c04fe8c820259ef6e2735093bbb polylang.3.6.6.zip 16f2e24d14af341c6208fb9cc08d0c4db33bf813a5b1668930e30c6179a1111c translatepress-multilingual.2.9.4.zip 75f4e9cb71e583ca3f8b19691b5754adb9c981580762137f82443e1eec468f9c wordpress-6.7.1.zip user@host:/tmp/user/1000/tmp.JC5exXrKLS$
- ...
- I was supposed to have a meeting with Marcin & Catarina today, but they asked to reschedule
- so I'm blocked on phplist, obi, and osemain
- let's continue with the wiki!
- ok, here's the last error we got (when trying to do the second upgrade)
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # time nice sudo -u www-data php "${docrootDir}/maintenance/run.php" "${docrootDir}/maintenance/update.php" PHP Warning: Undefined array key "HTTP_USER_AGENT" in /var/www/html/wiki.opensourceecology.org/LocalSettings.php on line 23 PHP Deprecated: DefaultSettings.php is deprecated and will be removed. Use MainConfigSchema::listDefaultValues() or MainConfigSchema::getDefaultValue() instead. [Called from require_once in /var/www/html/wiki.opensourceecology.org/LocalSettings.php at line 49] in /var/www/html/wiki.opensourceecology.org/htdocs/includes/debug/MWDebug.php on line 385 Error: The Cite extension cannot be loaded. Check that all of its files are installed properly. #0 /var/www/html/wiki.opensourceecology.org/htdocs/includes/GlobalFunctions.php(57): MediaWiki\Registration\ExtensionRegistry->queue() #1 /var/www/html/wiki.opensourceecology.org/LocalSettings.php(282): wfLoadExtension() #2 /var/www/html/wiki.opensourceecology.org/htdocs/LocalSettings.php(8): require_once('...') #3 /var/www/html/wiki.opensourceecology.org/htdocs/includes/Setup.php(220): require_once('...') #4 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/run.php(49): require_once('...') #5 {main} PHP Fatal error: Error Loading extension. Unable to open file /Cite/extension.json: filemtime(): stat failed for /Cite/extension.json in /var/www/html/wiki.opensourceecology.org/htdocs/includes/registration/MissingExtensionException.php on line 102 real 0m0,077s user 0m0,002s sys 0m0,005s root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- I fixed this with
# don't yet load Cite (until after upgrades) sed -i 's%^\(\s*\)[^#]*wfLoadExtension\(.*\)Cite\(.*\)%\1#wfLoadExtension\2Cite\3%' ${vhostDir}/LocalSettings.php
- subsequent upgrade attempts resulted in an error with the interwiki extension
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # time nice sudo -u www-data php "${docrootDir}/maintenance/run.php" "${docrootDir}/maintenance/update.php" PHP Warning: Undefined array key "HTTP_USER_AGENT" in /var/www/html/wiki.opensourceecology.org/LocalSettings.php on line 23 PHP Deprecated: DefaultSettings.php is deprecated and will be removed. Use MainConfigSchema::listDefaultValues() or MainConfigSchema::getDefaultValue() instead. [Called from require_once in /var/www/html/wiki.opensourceecology.org/LocalSettings.php at line 49] in /var/www/html/wiki.opensourceecology.org/htdocs/includes/debug/MWDebug.php on line 385 Error: The Interwiki extension cannot be loaded. Check that all of its files are installed properly. #0 /var/www/html/wiki.opensourceecology.org/htdocs/includes/GlobalFunctions.php(57): MediaWiki\Registration\ExtensionRegistry->queue() #1 /var/www/html/wiki.opensourceecology.org/LocalSettings.php(289): wfLoadExtension() #2 /var/www/html/wiki.opensourceecology.org/htdocs/LocalSettings.php(8): require_once('...') #3 /var/www/html/wiki.opensourceecology.org/htdocs/includes/Setup.php(220): require_once('...') #4 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/run.php(49): require_once('...') #5 {main} PHP Fatal error: Error Loading extension. Unable to open file /Interwiki/extension.json: filemtime(): stat failed for /Interwiki/extension.json in /var/www/html/wiki.opensourceecology.org/htdocs/includes/registration/MissingExtensionException.php on line 102 real 0m0,052s user 0m0,008s sys 0m0,000s root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- fixed with
# don't yet load Interwiki (until after upgrades) sed -i 's%^\(\s*\)[^#]*wfLoadExtension\(.*\)Interwiki\(.*\)%\1#wfLoadExtension\2Interwiki\3%' ${vhostDir}/LocalSettings.php
- then it complains about Gadgets
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # time nice sudo -u www-data php "${docrootDir}/maintenance/run.php" "${docrootDir}/maintenance/update.php" PHP Warning: Undefined array key "HTTP_USER_AGENT" in /var/www/html/wiki.opensourceecology.org/LocalSettings.php on line 23 PHP Deprecated: DefaultSettings.php is deprecated and will be removed. Use MainConfigSchema::listDefaultValues() or MainConfigSchema::getDefaultValue() instead. [Called from require_once in /var/www/html/wiki.opensourceecology.org/LocalSettings.php at line 49] in /var/www/html/wiki.opensourceecology.org/htdocs/includes/debug/MWDebug.php on line 385 Error: The Gadgets extension cannot be loaded. Check that all of its files are installed properly. #0 /var/www/html/wiki.opensourceecology.org/htdocs/includes/GlobalFunctions.php(57): MediaWiki\Registration\ExtensionRegistry->queue() #1 /var/www/html/wiki.opensourceecology.org/LocalSettings.php(308): wfLoadExtension() #2 /var/www/html/wiki.opensourceecology.org/htdocs/LocalSettings.php(8): require_once('...') #3 /var/www/html/wiki.opensourceecology.org/htdocs/includes/Setup.php(220): require_once('...') #4 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/run.php(49): require_once('...') #5 {main} PHP Fatal error: Error Loading extension. Unable to open file /Gadgets/extension.json: filemtime(): stat failed for /Gadgets/extension.json in /var/www/html/wiki.opensourceecology.org/htdocs/includes/registration/MissingExtensionException.php on line 102 real 0m0,051s user 0m0,004s sys 0m0,004s root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- fixed with
# don't yet load Gadgets (until after upgrades) sed -i 's%^\(\s*\)[^#]*wfLoadExtension\(.*\)Gadgets\(.*\)%\1#wfLoadExtension\2Gadgets\3%' ${vhostDir}/LocalSettings.php
- then ReplaceText
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # time nice sudo -u www-data php "${docrootDir}/maintenance/run.php" "${docrootDir}/maintenance/update.php" PHP Warning: Undefined array key "HTTP_USER_AGENT" in /var/www/html/wiki.opensourceecology.org/LocalSettings.php on line 23 PHP Deprecated: DefaultSettings.php is deprecated and will be removed. Use MainConfigSchema::listDefaultValues() or MainConfigSchema::getDefaultValue() instead. [Called from require_once in /var/www/html/wiki.opensourceecology.org/LocalSettings.php at line 49] in /var/www/html/wiki.opensourceecology.org/htdocs/includes/debug/MWDebug.php on line 385 Error: The ReplaceText extension cannot be loaded. Check that all of its files are installed properly. #0 /var/www/html/wiki.opensourceecology.org/htdocs/includes/GlobalFunctions.php(57): MediaWiki\Registration\ExtensionRegistry->queue() #1 /var/www/html/wiki.opensourceecology.org/LocalSettings.php(311): wfLoadExtension() #2 /var/www/html/wiki.opensourceecology.org/htdocs/LocalSettings.php(8): require_once('...') #3 /var/www/html/wiki.opensourceecology.org/htdocs/includes/Setup.php(220): require_once('...') #4 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/run.php(49): require_once('...') #5 {main} PHP Fatal error: Error Loading extension. Unable to open file /ReplaceText/extension.json: filemtime(): stat failed for /ReplaceText/extension.json in /var/www/html/wiki.opensourceecology.org/htdocs/includes/registration/MissingExtensionException.php on line 102 real 0m0,053s user 0m0,002s sys 0m0,007s root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- fixed with
# don't yet load ReplaceText (until after upgrades) sed -i 's%^\(\s*\)[^#]*wfLoadExtension\(.*\)ReplaceText\(.*\)%\1#wfLoadExtension\2ReplaceText\3%' ${vhostDir}/LocalSettings.php
- then RenameUser
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # time nice sudo -u www-data php "${docrootDir}/maintenance/run.php" "${docrootDir}/maintenance/update.php" PHP Warning: Undefined array key "HTTP_USER_AGENT" in /var/www/html/wiki.opensourceecology.org/LocalSettings.php on line 23 PHP Deprecated: DefaultSettings.php is deprecated and will be removed. Use MainConfigSchema::listDefaultValues() or MainConfigSchema::getDefaultValue() instead. [Called from require_once in /var/www/html/wiki.opensourceecology.org/LocalSettings.php at line 49] in /var/www/html/wiki.opensourceecology.org/htdocs/includes/debug/MWDebug.php on line 385 Error: The Renameuser extension cannot be loaded. Check that all of its files are installed properly. #0 /var/www/html/wiki.opensourceecology.org/htdocs/includes/GlobalFunctions.php(57): MediaWiki\Registration\ExtensionRegistry->queue() #1 /var/www/html/wiki.opensourceecology.org/LocalSettings.php(314): wfLoadExtension() #2 /var/www/html/wiki.opensourceecology.org/htdocs/LocalSettings.php(8): require_once('...') #3 /var/www/html/wiki.opensourceecology.org/htdocs/includes/Setup.php(220): require_once('...') #4 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/run.php(49): require_once('...') #5 {main} PHP Fatal error: Error Loading extension. Unable to open file /Renameuser/extension.json: filemtime(): stat failed for /Renameuser/extension.json in /var/www/html/wiki.opensourceecology.org/htdocs/includes/registration/MissingExtensionException.php on line 102 real 0m0,052s user 0m0,004s sys 0m0,004s root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- fixed with
# don't yet load Renameuser (until after upgrades) sed -i 's%^\(\s*\)[^#]*wfLoadExtension\(.*\)Renameuser\(.*\)%\1#wfLoadExtension\2Renameuser\3%' ${vhostDir}/LocalSettings.php
- tried again, and it complained about Nuke
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # time nice sudo -u www-data php "${docrootDir}/maintenance/run.php" "${docrootDir}/maintenance/update.php" PHP Warning: Undefined array key "HTTP_USER_AGENT" in /var/www/html/wiki.opensourceecology.org/LocalSettings.php on line 23 PHP Deprecated: DefaultSettings.php is deprecated and will be removed. Use MainConfigSchema::listDefaultValues() or MainConfigSchema::getDefaultValue() instead. [Called from require_once in /var/www/html/wiki.opensourceecology.org/LocalSettings.php at line 49] in /var/www/html/wiki.opensourceecology.org/htdocs/includes/debug/MWDebug.php on line 385 Error: The Nuke extension cannot be loaded. Check that all of its files are installed properly. #0 /var/www/html/wiki.opensourceecology.org/htdocs/includes/GlobalFunctions.php(57): MediaWiki\Registration\ExtensionRegistry->queue() #1 /var/www/html/wiki.opensourceecology.org/LocalSettings.php(326): wfLoadExtension() #2 /var/www/html/wiki.opensourceecology.org/htdocs/LocalSettings.php(8): require_once('...') #3 /var/www/html/wiki.opensourceecology.org/htdocs/includes/Setup.php(220): require_once('...') #4 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/run.php(49): require_once('...') #5 {main} PHP Fatal error: Error Loading extension. Unable to open file /Nuke/extension.json: filemtime(): stat failed for /Nuke/extension.json in /var/www/html/wiki.opensourceecology.org/htdocs/includes/registration/MissingExtensionException.php on line 102 real 0m0,053s user 0m0,003s sys 0m0,005s root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- this seems a bit excessive; these dirs are in-place
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # ls -lah ${vhostDir}/htdocs/extensions total 144K d---r-x--- 35 not-apache www-data 4,0K Dec 29 18:14 . d---r-x--- 14 not-apache www-data 4,0K Feb 2 00:39 .. d---r-x--- 8 not-apache www-data 4,0K Dec 29 18:14 AbuseFilter d---r-x--- 6 not-apache www-data 4,0K Dec 29 18:14 CategoryTree d---r-x--- 6 not-apache www-data 4,0K Dec 29 18:14 Cite d---r-x--- 5 not-apache www-data 4,0K Dec 29 18:14 CiteThisPage d---r-x--- 6 not-apache www-data 4,0K Dec 29 18:14 CodeEditor d---r-x--- 13 not-apache www-data 4,0K Dec 29 18:14 ConfirmEdit d---r-x--- 9 not-apache www-data 4,0K Dec 29 18:14 DiscussionTools d---r-x--- 10 not-apache www-data 4,0K Dec 29 18:14 Echo d---r-x--- 5 not-apache www-data 4,0K Dec 29 18:14 Gadgets d---r-x--- 6 not-apache www-data 4,0K Dec 29 18:14 ImageMap d---r-x--- 6 not-apache www-data 4,0K Dec 29 18:14 InputBox d---r-x--- 5 not-apache www-data 4,0K Dec 29 18:14 Interwiki d---r-x--- 8 not-apache www-data 4,0K Dec 29 18:14 Linter d---r-x--- 7 not-apache www-data 4,0K Dec 29 18:14 LoginNotify d---r-x--- 8 not-apache www-data 4,0K Dec 29 18:14 Math d---r-x--- 6 not-apache www-data 4,0K Dec 29 18:14 MultimediaViewer d---r-x--- 6 not-apache www-data 4,0K Dec 29 18:14 Nuke d---r-x--- 8 not-apache www-data 4,0K Dec 29 18:14 OATHAuth d---r-x--- 6 not-apache www-data 4,0K Dec 29 18:14 PageImages d---r-x--- 5 not-apache www-data 4,0K Dec 29 18:14 ParserFunctions d---r-x--- 5 not-apache www-data 4,0K Dec 29 18:14 PdfHandler d---r-x--- 5 not-apache www-data 4,0K Dec 29 18:14 Poem ----r----- 1 not-apache www-data 1,1K Dec 5 15:41 README d---r-x--- 7 not-apache www-data 4,0K Dec 29 18:14 ReplaceText d---r-x--- 6 not-apache www-data 4,0K Dec 29 18:14 Scribunto d---r-x--- 6 not-apache www-data 4,0K Dec 29 18:14 SecureLinkFixer d---r-x--- 7 not-apache www-data 4,0K Dec 29 18:14 SpamBlacklist d---r-x--- 8 not-apache www-data 4,0K Dec 29 18:14 SyntaxHighlight_GeSHi d---r-x--- 8 not-apache www-data 4,0K Dec 29 18:14 TemplateData d---r-x--- 5 not-apache www-data 4,0K Dec 29 18:14 TextExtracts d---r-x--- 7 not-apache www-data 4,0K Dec 29 18:14 Thanks d---r-x--- 6 not-apache www-data 4,0K Dec 29 18:14 TitleBlacklist d---r-x--- 12 not-apache www-data 4,0K Dec 29 18:14 VisualEditor d---r-x--- 6 not-apache www-data 4,0K Dec 29 18:14 WikiEditor root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- I thought maybe there was another issue with the path to the 'extensions' dir itself, but that looks like I put that in-place already
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # grep wgExtensionsDirectory ${vhostDir}/LocalSettings.php $wgExtensionsDirectory = "$IP/extensions"; root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- ah, crap, I just realized the var name according to the wiki is wgExtensionDirectory, not wgExtensionsDirectory https://www.mediawiki.org/wiki/Manual:$wgExtensionDirectory
- I updated this, and now I get a new error
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # time nice sudo -u www-data php "${docrootDir}/maintenance/run.php" "${docrootDir}/maintenance/update.php" PHP Warning: Undefined array key "HTTP_USER_AGENT" in /var/www/html/wiki.opensourceecology.org/LocalSettings.php on line 23 PHP Deprecated: DefaultSettings.php is deprecated and will be removed. Use MainConfigSchema::listDefaultValues() or MainConfigSchema::getDefaultValue() instead. [Called from require_once in /var/www/html/wiki.opensourceecology.org/LocalSettings.php at line 49] in /var/www/html/wiki.opensourceecology.org/htdocs/includes/debug/MWDebug.php on line 385 PHP Fatal error: Uncaught FatalError: $wgBaseDirectory must not be modified in settings files! Use the MW_INSTALL_PATH environment variable to override the installation root directory. in /var/www/html/wiki.opensourceecology.org/htdocs/includes/Setup.php:274 Stack trace: #0 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/run.php(49): require_once() #1 {main} thrown in /var/www/html/wiki.opensourceecology.org/htdocs/includes/Setup.php on line 274 real 0m0,053s user 0m0,008s sys 0m0,000s root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- ok, I don't understand this error; we are *not* using that var
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # grep wgBaseDirectory ${vhostDir}/LocalSettings.php root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- here's where the error came-from
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # grep -C4 wgBaseDirectory ${vhostDir}/htdocs/includes/Setup.php * from executing. * * This file does: * - run-time environment checks, * - define MW_INSTALL_PATH, $IP, and $wgBaseDirectory, * - load autoloaders, constants, default settings, and global functions, * - load the site configuration (e.g. LocalSettings.php), * - load the enabled extensions (via ExtensionRegistry), * - trivial expansion of site configuration defaults and shortcuts -- if ( defined( 'MW_AUTOLOAD_TEST_CLASSES' ) ) { require_once __DIR__ . '/../tests/common/TestsAutoLoader.php'; } if ( $wgBaseDirectory !== MW_INSTALL_PATH ) { throw new FatalError( '$wgBaseDirectory must not be modified in settings files! ' . 'Use the MW_INSTALL_PATH environment variable to override the installation root directory.' ); } root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- we didn't modify that file; it's identical to the file as included in the release of mediawiki-1.43.0
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # diff ${vhostDir}/htdocs/includes/Setup.php /var/tmp/mediawiki/mediawiki-1.43.0/includes/Setup.php root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- ok, looks like we do try to set the "IP" dir
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # grep -C4 MW_INSTALL_PATH ${vhostDir}/LocalSettings.php # http://www.mediawiki.org/wiki/Manual:Configuration_settings # If you customize your file layout, set $IP to the directory that contains # the other MediaWiki files. It will be used as a base to locate files. if( defined( 'MW_INSTALL_PATH' ) ) { $IP = MW_INSTALL_PATH; } else { $IP = dirname( __FILE__ ) . "/htdocs" ; } root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- the docs on the IP var suggest that you used to be able to update it, but that won't work since Mediawiki >=v1.18
- let's see what happens if we comment-out all these lines. if it still has issues, I guess we should set 'MW_INSTALL_PATH' to `dirname( __FILE__ ) . "/htdocs"` instead
- well, after commenting them out, I *still* have an error complaining about this setting
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # time nice sudo -u www-data php "${docrootDir}/maintenance/run.php" "${docrootDir}/maintenance/update.php" PHP Warning: Undefined array key "HTTP_USER_AGENT" in /var/www/html/wiki.opensourceecology.org/LocalSettings.php on line 23 PHP Deprecated: DefaultSettings.php is deprecated and will be removed. Use MainConfigSchema::listDefaultValues() or MainConfigSchema::getDefaultValue() instead. [Called from require_once in /var/www/html/wiki.opensourceecology.org/LocalSettings.php at line 49] in /var/www/html/wiki.opensourceecology.org/htdocs/includes/debug/MWDebug.php on line 385 PHP Fatal error: Uncaught FatalError: $wgBaseDirectory must not be modified in settings files! Use the MW_INSTALL_PATH environment variable to override the installation root directory. in /var/www/html/wiki.opensourceecology.org/htdocs/includes/Setup.php:274 Stack trace: #0 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/run.php(49): require_once() #1 {main} thrown in /var/www/html/wiki.opensourceecology.org/htdocs/includes/Setup.php on line 274 real 0m0,055s user 0m0,004s sys 0m0,004s root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- looking at the error above it, I wonder if it's possible that the issue is coming from here
root@hetzner3 /var/www/html/wiki.opensourceecology.org # grep 'DefaultSettings.php' LocalSettings.php # See includes/DefaultSettings.php for all configurable settings require_once( "$IP/includes/DefaultSettings.php" ); root@hetzner3 /var/www/html/wiki.opensourceecology.org #
- nah, looks like this file is present both in our docroot *and* in the release dir. And they're identical
root@hetzner3 /var/www/html/wiki.opensourceecology.org # ls htdocs/includes/DefaultSettings.php htdocs/includes/DefaultSettings.php root@hetzner3 /var/www/html/wiki.opensourceecology.org # ls /var/tmp/mediawiki/mediawiki-1.43.0/includes/DefaultSettings.php /var/tmp/mediawiki/mediawiki-1.43.0/includes/DefaultSettings.php root@hetzner3 /var/www/html/wiki.opensourceecology.org # diff htdocs/includes/DefaultSettings.php /var/tmp/mediawiki/mediawiki-1.43.0/includes/DefaultSettings.php root@hetzner3 /var/www/html/wiki.opensourceecology.org #
- ok, yeah, the only thing in this file is the error about using this file
root@hetzner3 /var/www/html/wiki.opensourceecology.org # cat htdocs/includes/DefaultSettings.php <?php /** * THIS IS A DEPRECATED STUB FILE! * * Default settings are now defined in the MainConfigSchema class. * * To get default values for configuration variables, use MainConfigSchema::listDefaultValues() * or MainConfigSchema::getDefaultValue(). * * @file * @deprecated since 1.39 */ use MediaWiki\MainConfigSchema; if ( function_exists( 'wfDeprecatedMsg' ) ) { wfDeprecatedMsg( 'DefaultSettings.php is deprecated and will be removed. ' . 'Use MainConfigSchema::listDefaultValues() or MainConfigSchema::getDefaultValue() instead.', '1.39' ); } // Extract the defaults into the current scope foreach ( MainConfigSchema::listDefaultValues( 'wg' ) as $defaultSettingsVar => $defaultSettingsValue ) { $$defaultSettingsVar = $defaultSettingsValue; } unset( $defaultSettingsVar ); unset( $defaultSettingsValue ); root@hetzner3 /var/www/html/wiki.opensourceecology.org #
- oh, actually there is some stuff at the end
- yeah, that *was* it. If I comment-out that line, then it continues
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # time nice sudo -u www-data php "${docrootDir}/maintenance/run.php" "${docrootDir}/maintenance/update.php" PHP Warning: Undefined array key "HTTP_USER_AGENT" in /var/www/html/wiki.opensourceecology.org/LocalSettings.php on line 23 MediaWiki 1.43.0 Updater Your composer.lock file is up to date with current dependencies! Going to run database updates for osewiki_db-wiki_ Depending on the size of your database this may take a while! Abort with control-c in the next five seconds (skip this countdown with --quick) ...0 Can not upgrade from versions older than 1.35, please upgrade to that version or later first. real 0m5,144s user 0m0,004s sys 0m0,004s root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- but, crap, this is the same problem we had before. It claims we didn't upgrade yet. Even though we did!
- maybe the update failed somewhere in the middle because of this same error about DefaultSettings.php
- I updated the wiki CHG to store all the output from the upgrade runs to log files in the $chg_dir so we can review it after it runs
- I'm also pretty annoyed about these huge permissions commands being stored in all the CHG files separately; I'm just going to create a script in /usr/local/bin/ for this
- ok, let's restore to our snapshot and try the whole process again
- ugh, for some reason I got a new error this time
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # cat $chg_dir/update-to-v1.35.log PHP Warning: Undefined array key "HTTP_USER_AGENT" in /var/www/html/wiki.opensourceecology.org/LocalSettings.php on line 23 PHP Fatal error: Uncaught Exception: Unable to open file /var/www/html/wiki.opensourceecology.org/htdocs/extensions/ConfirmEdit/ReCaptcha/extension.json: filemtime(): stat failed for /var/www/html/wiki.opensourceecology.org/htdocs/extensions/ConfirmEdit/ReCaptcha/extension.json in /var/www/html/wiki.opensourceecology.org/htdocs/includes/registration/ExtensionRegistry.php:177 Stack trace: #0 /var/www/html/wiki.opensourceecology.org/htdocs/includes/GlobalFunctions.php(71): ExtensionRegistry->queue() #1 /var/www/html/wiki.opensourceecology.org/LocalSettings.php(257): wfLoadExtensions() #2 /var/www/html/wiki.opensourceecology.org/htdocs/LocalSettings.php(8): require_once('...') #3 /var/www/html/wiki.opensourceecology.org/htdocs/includes/Setup.php(143): require_once('...') #4 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/doMaintenance.php(91): require_once('...') #5 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/update.php(253): require_once('...') #6 {main} thrown in /var/www/html/wiki.opensourceecology.org/htdocs/includes/registration/ExtensionRegistry.php on line 177 PHP Fatal error: Uncaught Error: Class "WebRequest" not found in /var/www/html/wiki.opensourceecology.org/htdocs/includes/HeaderCallback.php:63 Stack trace: #0 [internal function]: MediaWiki\HeaderCallback::callback() #1 {main} thrown in /var/www/html/wiki.opensourceecology.org/htdocs/includes/HeaderCallback.php on line 63 root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- curiously, the path to the ReCaptcha plugin is present; just the ReCaptcha dir is missing
- I hate ReCaptcha, and I noticed there's a dir for hCaptcha instead
root@hetzner3 /var/www/html/wiki.opensourceecology.org # ls -lah /var/www/html/wiki.opensourceecology.org/htdocs/extensions/ConfirmEdit/ReCaptcha ls: cannot access '/var/www/html/wiki.opensourceecology.org/htdocs/extensions/ConfirmEdit/ReCaptcha': No such file or directory root@hetzner3 /var/www/html/wiki.opensourceecology.org # ls -lah /var/www/html/wiki.opensourceecology.org/htdocs/extensions/ConfirmEdit total 140K d---r-x--- 13 not-apache www-data 4,0K Dec 26 23:53 . d---r-x--- 30 not-apache www-data 4,0K Dec 26 23:53 .. ----r----- 1 not-apache www-data 3,1K Jun 7 2019 AUTHORS.txt ----r----- 1 not-apache www-data 510 Sep 25 2020 blacklist ----r----- 1 not-apache www-data 9,8K Sep 24 2020 captcha-old.py ----r----- 1 not-apache www-data 11K Sep 24 2020 captcha.py ----r----- 1 not-apache www-data 135 Sep 25 2020 CODE_OF_CONDUCT.md ----r----- 1 not-apache www-data 439 Sep 25 2020 composer.json ----r----- 1 not-apache www-data 2,7K Sep 25 2020 ConfirmEdit.alias.php ----r----- 1 not-apache www-data 18K Dec 12 2018 COPYING ----r----- 1 not-apache www-data 4,4K Sep 25 2020 extension.json d---r-x--- 5 not-apache www-data 4,0K Dec 26 23:53 FancyCaptcha d---r-x--- 4 not-apache www-data 4,0K Dec 26 23:53 hCaptcha d---r-x--- 3 not-apache www-data 12K Dec 26 23:53 i18n d---r-x--- 5 not-apache www-data 4,0K Dec 26 23:53 includes d---r-x--- 2 not-apache www-data 4,0K Dec 26 23:53 maintenance d---r-x--- 4 not-apache www-data 4,0K Dec 26 23:53 MathCaptcha d---r-x--- 4 not-apache www-data 4,0K Dec 26 23:53 QuestyCaptcha ----r----- 1 not-apache www-data 5,1K Sep 25 2020 README.md d---r-x--- 5 not-apache www-data 4,0K Dec 26 23:53 ReCaptchaNoCaptcha d---r-x--- 4 not-apache www-data 4,0K Dec 26 23:53 resources d---r-x--- 3 not-apache www-data 4,0K Dec 26 23:53 SimpleCaptcha d---r-x--- 3 not-apache www-data 4,0K Dec 26 23:53 tests root@hetzner3 /var/www/html/wiki.opensourceecology.org #
- whatever, I'm going to disable this pesky extension again during our upgrades
- ok, the upgrade appears to have exited with an error 27 minutes-in
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # time nice sudo -u www-data php "${docrootDir}/maintenance/update.php" &> ${chg_dir}/update-to-v1.35.log real 27m59,071s user 0m0,008s sys 0m0,000s root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- here's the error log
root@hetzner3 /var/www/html/wiki.opensourceecology.org # tail -n40 /var/tmp/CHG_20241228_wiki_1.35-to-1.43/update-to-v1.35.log Completed migration, inserted 1 row(s) with 0 new actor(s), 0 error(s) errors were encountered. Modifying rev_text_id field of table revision ...done. Modifying table site_stats ...done. Populating ar_rev_id. Populating ar_rev_id... MediaWiki\Revision\RevisionAccessException from line 1296 of /var/www/html/wiki.opensourceecology.org/htdocs/includes/Revision/RevisionStore.php: Main slot of revision not found in database. See T212428. #0 /var/www/html/wiki.opensourceecology.org/htdocs/includes/Revision/RevisionStore.php(1224): MediaWiki\Revision\RevisionStore->constructSlotRecords() #1 /var/www/html/wiki.opensourceecology.org/htdocs/includes/Revision/RevisionStore.php(1217): MediaWiki\Revision\RevisionStore->loadSlotRecords() #2 /var/www/html/wiki.opensourceecology.org/htdocs/includes/Revision/RevisionStore.php(1335): MediaWiki\Revision\RevisionStore->loadSlotRecords() #3 [internal function]: MediaWiki\Revision\RevisionStore->MediaWiki\Revision\{closure}() #4 /var/www/html/wiki.opensourceecology.org/htdocs/includes/Revision/RevisionSlots.php(175): call_user_func() #5 /var/www/html/wiki.opensourceecology.org/htdocs/includes/Revision/RevisionSlots.php(117): MediaWiki\Revision\RevisionSlots->getSlots() #6 /var/www/html/wiki.opensourceecology.org/htdocs/includes/Revision/RevisionRecord.php(192): MediaWiki\Revision\RevisionSlots->getSlot() #7 /var/www/html/wiki.opensourceecology.org/htdocs/includes/Revision/RevisionRecord.php(175): MediaWiki\Revision\RevisionRecord->getSlot() #8 /var/www/html/wiki.opensourceecology.org/htdocs/includes/cache/MessageCache.php(1185): MediaWiki\Revision\RevisionRecord->getContent() #9 /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/objectcache/wancache/WANObjectCache.php(1528): MessageCache->{closure}() #10 /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/objectcache/wancache/WANObjectCache.php(1376): WANObjectCache->fetchOrRegenerate() #11 /var/www/html/wiki.opensourceecology.org/htdocs/includes/cache/MessageCache.php(1167): WANObjectCache->getWithSetCallback() #12 /var/www/html/wiki.opensourceecology.org/htdocs/includes/libs/objectcache/BagOStuff.php(149): MessageCache->{closure}() #13 /var/www/html/wiki.opensourceecology.org/htdocs/includes/cache/MessageCache.php(1163): BagOStuff->getWithSetCallback() #14 /var/www/html/wiki.opensourceecology.org/htdocs/includes/cache/MessageCache.php(1106): MessageCache->loadCachedMessagePageEntry() #15 /var/www/html/wiki.opensourceecology.org/htdocs/includes/cache/MessageCache.php(1016): MessageCache->getMsgFromNamespace() #16 /var/www/html/wiki.opensourceecology.org/htdocs/includes/cache/MessageCache.php(988): MessageCache->getMessageForLang() #17 /var/www/html/wiki.opensourceecology.org/htdocs/includes/cache/MessageCache.php(927): MessageCache->getMessageFromFallbackChain() #18 /var/www/html/wiki.opensourceecology.org/htdocs/includes/language/Message.php(1304): MessageCache->get() #19 /var/www/html/wiki.opensourceecology.org/htdocs/includes/language/Message.php(862): Message->fetchMessage() #20 /var/www/html/wiki.opensourceecology.org/htdocs/includes/language/Message.php(954): Message->toString() #21 /var/www/html/wiki.opensourceecology.org/htdocs/includes/Title.php(661): Message->text() #22 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/populateArchiveRevId.php(213): Title::newMainPage() #23 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/populateArchiveRevId.php(118): PopulateArchiveRevId::makeDummyRevisionRow() #24 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/populateArchiveRevId.php(63): PopulateArchiveRevId::checkMysqlAutoIncrementBug() #25 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/includes/LoggedUpdateMaintenance.php(45): PopulateArchiveRevId->doDBUpdates() #26 /var/www/html/wiki.opensourceecology.org/htdocs/includes/installer/DatabaseUpdater.php(1377): LoggedUpdateMaintenance->execute() #27 /var/www/html/wiki.opensourceecology.org/htdocs/includes/installer/DatabaseUpdater.php(512): DatabaseUpdater->populateArchiveRevId() #28 /var/www/html/wiki.opensourceecology.org/htdocs/includes/installer/DatabaseUpdater.php(475): DatabaseUpdater->runUpdates() #29 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/update.php(181): DatabaseUpdater->doUpdates() #30 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/doMaintenance.php(107): UpdateMediaWiki->execute() #31 /var/www/html/wiki.opensourceecology.org/htdocs/maintenance/update.php(253): require_once('...') #32 {main} root@hetzner3 /var/www/html/wiki.opensourceecology.org #
- I believe this is why we had the second upgrade command; let's try that and then maybe try the first command again
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # time nice sudo -u www-data php "${docrootDir}/maintenance/populateContentTables.php" &> ${chg_dir}/populateContentTables-to-v1.35.log real 0m13,673s user 0m0,004s sys 0m0,004s root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- that only took 13 seconds; let's do the first command again
root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current # time nice sudo -u www-data php "${docrootDir}/maintenance/update.php" &> ${chg_dir}/update-to-v1.35b.log real 1m52,641s user 0m0,004s sys 0m0,005s root@hetzner3 /var/tmp/backups_for_migration_from_hetzner2/wiki.opensourceecology.org_20241228/current #
- cool, on double-tap it finished in less than 2 minutes, and this time it ended with a "Done" message instead of an error
root@hetzner3 /var/www/html/wiki.opensourceecology.org # tail /var/tmp/CHG_20241228_wiki_1.35-to-1.43/update-to-v1.35b.log el_id 30000 - 40000 of 76644 el_id 40000 - 50000 of 76644 el_id 50000 - 60000 of 76644 el_id 60000 - 70000 of 76644 el_id 70000 - 76644 of 76644 Done, 689 rows updated, 2 deleted. Set the local repo temp zone container to be private. Purging caches...done. Done in 1 min 48 s. root@hetzner3 /var/www/html/wiki.opensourceecology.org #
- now I went to the version page, and I confirmed that it lists the MediaWiki version as "1.35.0". Perfect! https://wiki.opensourceecology.org/wiki/Special:Version
Installed software Product Version MediaWiki 1.35.0 PHP 8.2.26 (fpm-fcgi) MariaDB 10.11.6-MariaDB-0+deb12u1 ICU 72.1
Sun Feb 02, 2025
- Here's TOFU 2/3 (VPN, exit in US)
United States 2025-02-03 INFO: Determining Latest Version of Wordpress Core INFO: Determining Latest Version of Wordpress Plugins . INFO: Determining Latest Version of Wordpress Themes . . . . . https://altushost-swe.dl.sourceforge.net/project/phplist/phplist/3.6.15/phplist-3.6.15.tgz ######################################################################### 100.0%######################################################################### 100.0% https://netix.dl.sourceforge.net/project/phplist/phplist/3.6.15/phplist-3.6.15.zip ######################################################################### 100.0%######################################################################### 100.0% https://github.com/phpList/phplist3/archive/refs/tags/v3.6.15.zip -=O=- # # # # https://github.com/phpList/phplist3/archive/refs/tags/v3.6.15.tar.gz -=O=- # # # # https://downloads.wordpress.org/release/wordpress-6.7.1.zip ######################################################################### 100.0% https://downloads.wordpress.org/plugin/woocommerce-gateway-stripe.9.1.1.zip ######################################################################### 100.0% https://downloads.wordpress.org/theme/astra.4.8.11.zip ######################################################################### 100.0% https://downloads.wordpress.org/theme/generatepress.3.5.1.zip ######################################################################### 100.0% https://downloads.wordpress.org/theme/hestia.3.2.7.zip ######################################################################### 100.0% https://downloads.wordpress.org/theme/neve.4.0.0.zip ######################################################################### 100.0% https://downloads.wordpress.org/theme/oceanwp.4.0.5.zip ######################################################################### 100.0% 2025-02-03 5.9M astra.4.8.11.zip 1.1M generatepress.3.5.1.zip 8.0M hestia.3.2.7.zip 7.1M neve.4.0.0.zip 6.0M oceanwp.4.0.5.zip 21M phplist-3.6.15.tgz 29M phplist-3.6.15.zip 32K plugin.json 4.6M v3.6.15.tar.gz 5.0M v3.6.15.zip 1.4M woocommerce-gateway-stripe.9.1.1.zip 28M wordpress-6.7.1.zip 0e106338e48c9d4d023a46a368f0069b807ce2118a9bf51ddf04c76070867aba astra.4.8.11.zip a5e1d7478cce21b7bbef511bbea44156f59acd40cc7e51ad469c403013ba29f5 generatepress.3.5.1.zip cf89c4f50301f2d030ae3662d4c8b4359445b8ee31fcdd5f67cb0c2c1c50adf8 hestia.3.2.7.zip cb4cee1ad2cdd020729884d3bd97ecabd16194f3388e301bc9164c3f980d10a3 neve.4.0.0.zip d1392dbe5f729178c968f5551855a412b41866e876dcf2a79ffd4e07298c4d13 oceanwp.4.0.5.zip dfe441583f7f72b116c2f7db24821259df4fdc991ab52a7078ba3293729d71b9 phplist-3.6.15.tgz fcbe14b2770832d2788f3a8a5c9c6c18b178bf069559ca30c947bac78ca51e19 phplist-3.6.15.zip c0a5eabed1f1317a58dcaeff254865764c071eb03aa670c0084b3dc6767de489 plugin.json 31e4a733aa481fe483f5513931d04607b14243b7f2cc2c3c210a6abe508e3265 v3.6.15.tar.gz 16c3bc98c6d4acd52478042b733c90ac8d64d31762b884856e6cf3c620b4b82e v3.6.15.zip 2a958f50e458b900d8cd2d7b980e93e37ca720eebf3c7b4a5f94ed5d9d167079 woocommerce-gateway-stripe.9.1.1.zip 75f4e9cb71e583ca3f8b19691b5754adb9c981580762137f82443e1eec468f9c wordpress-6.7.1.zip user@disp2327:/tmp/tmp.0MQDfRxGyc$
Sat Feb 01, 2025
- Catarina responded to my email.
- It sounds like she doesn't want to pay someone to convert the existing osemain to a new theme because she wants to do a complete rela