Opasnet update 2017

From Opasnet
Jump to navigation Jump to search

This page contains notes produced while updating Opasnet server systems during the summer of 2017.

RTools server

CentOS 6.4: full support ended, but still get maintenance updates.

Key software, upgrade paths and related issues:

  • apache 2.2.15 -> 2.2.32 or 2.4.25
    • newer branch not particularly important
  • PHP 5.3.3 -> 5.6.x or 7.1.x
    • incompatibilities in mysql functions
      • "mysql" -> "mysqli" (5.5)
    • should upgrade to latest version
  • MySQL 5.1 -> 5.7
  • mongoDB 2.4 -> 3.2
    • should be relatively easy as we are not using sharding etc.
  • rtools_server PHP application
    • starts on test server after minor changes
    • further testing needed
  • opasnet_base2

Opasnet-wiki server

CentOS 6.5: full support ended, but still get maintenance updates.

Key software, upgrade paths and related issues:

  • apache 2.2.15 -> 2.2.32 or 2.4.25
  • PHP 5.4.28 -> 5.6.x or 7.1.x
    • 5.5.9+ required by currently supported mediawiki releases
    • latest php also supported
    • incompatibilities likely to occur in 5.4->5.5, hence might as well upgrade to latest
  • MySQL 5.5.37 -> 5.5.56 or 5.7.x
  • MediaWiki 1.20.0 -> 1.27 (LTS) or 1.28.2 (latest)
    • need to check supported extensions
    • MyExtension.php no longer supported, need extension.json for registering extensions
    • Composer might be useful for managing PHP dependencies
  • RTools MediaWiki extension
    • RTools special page class (now named SpecialRtools)
      • Creates instance of rtools_client
      • separate config file, which is included by SpecialRTools instead of rtools_client for some reason
      • fixed: "mysql" to "mysqli"
      • fixed: "wfMsg" to "wfMessage->text()"
    • <rcode> tag
      • Detected by parser hooks
      • RToolsParser class
        • fixed: "wfMsg" to "wfMessage->text()"
        • fixed: class instead of global functions
          • create class instance in parser given by hook in order to retain variable values
        • fixed: added "wgOut->addModules( 'ext.RTools.parser' );" which enables the on-page UI
        • fixed: changed efRCodeMBInArray to a static function and changed reference in templates/inputs/checkbox.php
    • rtools_client
      • handles connections and job submissions etc. to server
      • xml-rpc library
        • communicates with rtools_server API
    • javascripts
      • script.aculo.us + prototype
        • UI
        • ajax
        • old versions, probably still acceptable
      • loaded by mediawiki resource loader
        • now set up in extension.json
    • wiki database
      • rtools_inputs
        • added schema update hook to create the necessary table if missing
    • Current issues:
      • Show code button does not work
      • Run page throws: Didn't receive 200 OK from remote server. (HTTP/1.0 500 Internal Server Error), which is a xml-rpc related error
      • Runs and shows outputs (oprint and cat), but code is not visible, embed also does not work
      • Input forms are slightly broken: conditional categories do not work, checkboxes crash the whole page
      • Rtools page does not update, shows error until refreshed once the run is over. Error on page: "jQuery is not defined", but it is loaded by mediawiki by default. Caused by some linking problem between the special page and mediawiki.
  • table2base MediaWiki extension