Opened 3 years ago
Closed 3 years ago
#5 closed task (fixed)
Migrate MediaWiki from GreenQloud
Reported by: | chris | Owned by: | chris |
---|---|---|---|
Priority: | major | Milestone: | Install and configure crin1 |
Component: | mediawiki | Version: | |
Keywords: | Cc: | jenny, gillian | |
Estimated Number of Hours: | 8 | Add Hours to Ticket: | 0 |
Billable?: | yes | Total Hours: | 6.93 |
Description
Migrate the MediaWiki site at http://wiki.crin.org/ to crin1.crin.org.
Change History (20)
comment:1 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0 to 2.51
- Total Hours set to 2.51
comment:2 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0 to 1
- Total Hours changed from 2.51 to 3.51
Regarding this error:
PHP Warning: include(/var/www/mediawiki/w/extensions/MyExtension/MyExtension.i18n.php): failed to open stream: No such file or directory in /var/www/mediawiki/w/includes/LocalisationCache.php on line 405 PHP Warning: include(): Failed opening '/var/www/mediawiki/w/extensions/MyExtension/MyExtension.i18n.php' for inclusion (include_path='/var/www/mediawiki/w:/var/www/mediawiki/w/includes:/var/www/mediawiki/w/languages:.:/usr/share/php:/usr/share/pear') in /var/www/mediawiki/w/includes/LocalisationCache.php on line 405
That directory contains:
-rwxr-xr-x 1 root root 222 Aug 28 2014 MyExtension.il8n.php -rwxr-xr-x 1 root root 1.1K Aug 28 2014 MyExtension.php -rwxr-xr-x 1 root root 2.4K Aug 28 2014 SpecialMyExtension.php
So perhaps a symlink will solve this (it looks like a typo confising a lowercase l with a 1):
ln -s MyExtension.il8n.php MyExtension.i18n.php
And that did solve this issue.
Trying an upgrade to the LTS version:
cd /var/www/ wget https://releases.wikimedia.org/mediawiki/1.23/mediawiki-1.23.9.tar.gz wget https://releases.wikimedia.org/mediawiki/1.23/mediawiki-1.23.9.tar.gz.sig gpg --verify mediawiki-1.23.9.tar.gz.sig gpg: assuming signed data in `mediawiki-1.23.9.tar.gz' gpg: Signature made Tue 31 Mar 2015 05:57:22 PM GMT using DSA key ID 62D84F01 gpg: Can't check signature: public key not found gpg --search-key 62D84F01 gpg: searching for "62D84F01" from hkp server keys.gnupg.net (1) Chris Steipp <csteipp@wikimedia.org> 2048 bit DSA key 62D84F01, created: 2012-08-30, expires: 2016-08-29 Keys 1-1 of 1 for "62D84F01". Enter number(s), N)ext, or Q)uit > 1 gpg: requesting key 62D84F01 from hkp server keys.gnupg.net gpg: key 62D84F01: public key "Chris Steipp <csteipp@wikimedia.org>" imported gpg: no ultimately trusted keys found gpg: Total number processed: 1 gpg: imported: 1 gpg --verify mediawiki-1.23.9.tar.gz.sig gpg: assuming signed data in `mediawiki-1.23.9.tar.gz' gpg: Signature made Tue 31 Mar 2015 05:57:22 PM GMT using DSA key ID 62D84F01 gpg: Good signature from "Chris Steipp <csteipp@wikimedia.org>" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 1624 32D9 E81C 1C61 8B30 1EEC EE1F 6634 62D8 4F01 tar -zxvf mediawiki-1.23.9.tar.gz rsync -av mediawiki-1.23.9/ mediawiki/w/ su - mediawiki -s /bin/bash cd ~/w/maintenance php update.php PHP Notice: Undefined index: HTTP_USER_AGENT in /var/www/mediawiki/w/extensions/FCKeditor/fckeditor/fckeditor_php5.php on line 37 PHP Fatal error: Call to undefined function wfLoadExtensionMessages() in /var/www/mediawiki/w/extensions/DiscussionThreading/DiscussionThreading.php on line 54
So disabling the DiscussionThreading extension by commenting this from LocalSettings.php:
/* require_once("$IP/extensions/DiscussionThreading/DiscussionThreading.php"); */
And now the updater runs OK, but the site generates an error and with debugging on the message is:
[8c81b080] / Exception from line 1318 of /var/www/mediawiki/w/includes/cache/LocalisationCache.php: Unable to open CDB file for write "/var/www/mediawiki/w/cache/l10n_cache-en.cdb"
So:
rm -rf /var/www/mediawiki/w/cache/*.* chown mediawiki:mediawiki /var/www/mediawiki/w/cache -R
And now we get a 500 error and this in the logs:
[Sat May 02 14:48:39.337197 2015] [:error] [pid 11930] [client X.X.X.X:37442] PHP Fatal error: Call to undefined method Parser::strip() in /var/www/mediawiki/w/extensions/FCKeditor/FCKeditor.body.php on line 130
So, disable that old and un-supported extension (the new VisualEditor would be a better one to use) by commenting out these lines:
/* require_once("$IP/extensions/FCKeditor/FCKeditor.php"); */
Reload and another 500 error, with this in the Apache logs:
[Sat May 02 14:51:40.772447 2015] [:error] [pid 11970] [client X.X.X.X:37444] PHP Warning: A skin using autodiscovery mechanism, Standard, was found in your skins/ directory. The mechanism will be removed in MediaWiki 1.25 and the skin will no longer be recognized. See https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery for information how to fix this. [Called from Skin::getSkinNames in /var/www/mediawiki/w/includes/Skin.php at line 74] in /var/www/mediawiki/w/includes/debug/Debug.php on line 303 [Sat May 02 14:51:40.780890 2015] [:error] [pid 11970] [client X.X.X.X:37444] PHP Fatal error: Call to undefined function wfLoadExtensionMessages() in /var/www/mediawiki/w/extensions/UsabilityInitiative/Vector/Vector.hooks.php on line 98
So, following the https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery#Migration_guide and noting that the LocalSettings.php specifies vector:
$wgDefaultSkin = 'vector';
I think deleting the skins directory and using the new one might solve this.
rm -rf /var/www/mediawiki/w/skins/ cp -a /var/www/mediawiki-1.23.9/skins/ /var/www/mediawiki/w/
We still have:
==> /var/log/apache2/mediawiki.error.log <== [Sat May 02 14:58:35.087352 2015] [:error] [pid 12051] [client X.X.X.X:37470] PHP Fatal error: Call to undefined function wfLoadExtensionMessages() in /var/www/mediawiki/w/extensions/UsabilityInitiative/Vector/Vector.hooks.php on line 98
So commenting that extension from the LocalSettings.php file as it isn't a current extension, see https://www.mediawiki.org/wiki/Extension:UsabilityInitiative :
/* require_once( "$IP/extensions/UsabilityInitiative/Vector/Vector.php" ); */
And the site is working but now with the default Vector skin.
The copyright and main logo were sorted out.
And the site is usable, but I'd strongly suggest an update of the extensions and installation of parsoid so the new VisualEditor can be used.
comment:3 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0 to 0.25
- Total Hours changed from 3.51 to 3.76
Checking that old URL's such as these:
- http://wiki.crin.org/mediawiki/index.php/Main_Page
- http://wiki.crin.org/mediawiki/index.php/Special:PrefixIndex/A
- http://wiki.crin.org/mediawiki/index.php?title=Special%3APrefixIndex&prefix=A&namespace=0
- http://wiki.crin.org/mediawiki/index.php?title=Mediawiki:Sidebar
- http://wiki.crin.org/mediawiki/index.php?title=Special:Version
- http://wiki.crin.org/mediawiki/index.php/Special:Version
Will all still work:
- https://wiki.crin1.crin.org/mediawiki/index.php/Main_Page
- https://wiki.crin1.crin.org/mediawiki/index.php/Special:PrefixIndex/A
- https://wiki.crin1.crin.org/mediawiki/index.php?title=Special%3APrefixIndex&prefix=A&namespace=0
- https://wiki.crin1.crin.org/mediawiki/index.php?title=Mediawiki:Sidebar
- https://wiki.crin1.crin.org/mediawiki/index.php?title=Special:Version
- https://wiki.crin1.crin.org/mediawiki/index.php/Special:Version
And they do thanks to these rules:
# Ensure that old URL's still work <If "%{HTTP_HOST} == 'wiki.crin.org'"> RedirectMatch "/mediawiki/index.php(.*)" "https://wiki.crin.org/wiki$1" RedirectMatch "/mediawiki/api.php(.*)" "https://wiki.crin.org/w/api.php$1" RedirectMatch "/mediawiki/load.php(.*)" "https://wiki.crin.org/w/load.php$1" Redirect "/mediawiki/" "https://wiki.crin.org/w/" </If> <If "%{HTTP_HOST} == 'www.wiki.crin.org'"> RedirectMatch "/mediawiki/index.php(.*)" "https://www.wiki.crin.org/wiki$1" RedirectMatch "/mediawiki/api.php(.*)" "https://www.wiki.crin.org/w/api.php$1" RedirectMatch "/mediawiki/load.php(.*)" "https://www.wiki.crin.org/w/load.php$1" Redirect "/mediawiki/" "https://www.wiki.crin.org/w/" </If> <If "%{HTTP_HOST} == 'wiki.crin1.crin.org'"> RedirectMatch "/mediawiki/index.php(.*)" "https://wiki.crin1.crin.org/wiki$1" RedirectMatch "/mediawiki/api.php(.*)" "https://wiki.crin1.crin.org/w/api.php$1" RedirectMatch "/mediawiki/load.php(.*)" "https://wiki.crin1.crin.org/w/load.php$1" Redirect "/mediawiki/" "https://wiki.crin1.crin.org/w/" </If>
comment:4 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0 to 1
- Total Hours changed from 3.76 to 4.76
Issues with the migrated MediaWiki site
In addition to the customisation to the theme being lost (is this an issue, the only key difference I can see is that the "Q&A", "Contact Us" and "Home" tabs have been lost and I expect these could be restored if needs be) there are the following plugins which should be updated, removed or replaced.
You can get a list of the plugins on the live site at http://wiki.crin.org/mediawiki/index.php/Special:Version and for the new site at https://wiki.crin1.crin.org/wiki/Special:Version
ConfirmAccount
The site is running an unknown version, it should probably be upgraded as there are different config option for MediaWiki > 1.19, see: https://www.mediawiki.org/wiki/Extension:ConfirmAccount
ContactPage
The site is running an unknown version:
Upgrading from versions < 2.x (MediaWiki ≤ 1.22) to versions ≥ 2.x (MediaWiki ≥ 1.23) requires a complete reconfiguration of this extension in "LocalSetting.php" to avoid breakage.
This should be upgraded if it is still needed.
MyExtension
This looks like a MediaWiki plugin which has been written especially for CRIN?
Password Reset
We have version 1.7.
In MW 1.18 and above, a special page "PasswordReset" exists which overrides the special page of this extension. This means this extension no longer works from 1.18 on.
This extension should be removed and replaced with something else if it provided functionality that MediaWiki doesn't already provide (there is now a password reset feature available).
Cite
Starting with MediaWiki 1.25 the "Special:Cite" extension that used to be documented on this page too is no longer part of the "Cite" extension. When upgrading from MediaWiki 1.24 the following line will have to be removed from your "LocalSettings.php" file:
require_once "$IP/extensions/Cite/SpecialCite.php";
The "Special:Cite" extension is now know as the CiteThisPage extension and may be installed separately.
We are running the LTS version, 1.23.9 so the above will have an impact when upgrading to the next LTS version, in the meantime this extension should probably upgraded -- we have an unknown version.
EmailForm
We have version 0.8a, latest version is 0.81, it has been unmaintained since 2009, I'd suggest removing this extension and replacing it with something else if needs be:
This extension stores its source code on a wiki page. Please be aware that this code may be unreviewed or maliciously altered. They may contain security holes, outdated interfaces that are no longer compatible etc.
Google Calender
We have an unknown version and the URL for the extension no longer resolves:
http://wiki.couchsurfing.com/en/Google_Calendar_MediaWiki_plugin
We should invistigate what this plugin was used for and if it is needed and if so what can replace it, or simply remove it.
RSS Reader
We have version 0.2.5, latest version from 2012 is 0.2.6:
This extension stores its source code on a wiki page. Please be aware that this code may be unreviewed or maliciously altered. They may contain security holes, outdated interfaces that are no longer compatible etc.
We should find which pages, if any, are pulling in RSS feeds and decide if this functionality is still needed and if a maintained extension can be used to replace it.
SelectCategory
We are running version 0.7dev, the latest version is 0.8.2, this extension should be upgraded, see https://www.mediawiki.org/wiki/Extension:SelectCategory
TreeAndMenu
We are running version 1.1.1, 2009-07-29, the latest version is 4.1.1 (2015-04-28), this extension should be upgraded, see https://www.mediawiki.org/wiki/Extension:TreeAndMenu
Boilerplate
We are running an unknown version, the latest version is from 2007:
This extension is currently not actively maintained!
This extension stores its source code on a wiki page. Please be aware that this code may be unreviewed or maliciously altered.
Several users have reported bugs with this extension related to unmodifiable headers, please see the discussion tab for details.
https://www.mediawiki.org/wiki/User:RouslanZenetl/Extension:Boilerplate
We should decide if this is needed and if it is if another extension can be used instead.
BoilerPlateSelection
We are running an unknown version, this extension hasn't been updated since 2007.
This extension stores its source code on a wiki page. Please be aware that this code may be unreviewed or maliciously altered.
https://www.mediawiki.org/wiki/Extension:BoilerplateSelection
We should decide if this is needed and what could replace it, if it is needed.
FormMailer
We are running version 1.0.3, 2011-01-02, which is the latest version, note that the author of the extsnsion said in 2009:
Personally I don't use SimpleForms anymore, it has too many problems and is too difficult to maintain
https://www.mediawiki.org/wiki/Extension_talk:FormMailer#I_need_help_with_this
We should find where this extension is used and decide if it's still needed and if it is what can replace it.
MultiBoilerplate
We are running 1.8.0, the latest version is 2.0.0 but this is only for > 1.24 and we are on 1.23 so this should only be upgraded when we upgrade MediaWiki to the next LTS version.
DiscussionThreading
This was disabled due to problems, we were running Version 1.3, the latest version is 1.5.0, we should decide if this is needed and install it, if it is needed (I don't see any evidence of the discussion pages being used at all, never mind needing threading).
FCKeditor
This was disabled due to problems, it was Version 1.0.1, if a WYSIWYG editor is needed we should install Parsiod and the new VisualEditor, see:
Preloader
We are running Version 1.1.1, the latest version, from 2011, is 1.2.0:
This extension is currently not actively maintained!
We should decide if this extension in still needed.
UsabilityInitiative
We are running Version 0.1.1:
This extension has been archived.
The components of this extension have all now been moved out to their own extensions.
https://www.mediawiki.org/wiki/Extension:UsabilityInitiative
This extension should probably be removed and the extensions above installed if any functionality from it is still needed.
Vector
We had Version 0.2.0, this appears to have been superceeded when the Vector skin became the default some years ago.
WikiEditor
We have Version 0.2.0:
This extension is bundled with MediaWiki 1.18 and above. Thus you do not have to download it again.
comment:5 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0 to 0.05
- Estimated Number of Hours changed from 0 to 8
- Total Hours changed from 4.76 to 4.81
So far 4h 45m has been spent on this ticket, resolving the issues with extensions documented at ticket:5#comment:4 and potentially installing a Parsoid server for the new VisualEditor (assuming we want WYSIWYG editing) could take quite a few more hours, setting the estimated time to 8 hours in total.
comment:7 Changed 3 years ago by chris
- Cc adam jenny gillian added; graham removed
I have removed graham as a Cc for this ticket, see ticket:16 and added adam, gillian and jenny .
comment:9 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0 to 0.25
- Total Hours changed from 4.81 to 5.06
I have just spent some time looking at the relationship between Drupal pages and MediaWiki pages, for example:
- https://www.crin.org/en/library/countries/burundi
- http://wiki.crin.org/mediawiki/index.php?title=Burundi
The Drupal page has a "Wiki link" field:
wiki link
The link will try and format itself but if this fails then you can overwrite the default here
And it looks like the quick facts might be pulled in from the Wiki site as this data isn't present when editing this page using Drupal.
comment:10 follow-up: ↓ 11 Changed 3 years ago by jenny
Hi Chris, the Quick facts and the persistent violations are not editable in Drupal and are drawn from the Wiki as well as the text for the introduction. Can you confirm that this will not be lost? Thanks On 3 July 2015 at 12:00, CRIN Trac <trac@trac.crin.org> wrote: > #5: Migrate MediaWiki from GreenQloud > -------------------------------------+------------------------------------- > Reporter: chris | Owner: chris > Type: task | Status: new > Priority: major | Milestone: Install and > Component: | configure crin1 > mediawiki | Version: > Resolution: | Keywords: > Estimated Number of Hours: 8 | Add Hours to Ticket: 0.25 > Billable?: 1 | Total Hours: 4.81 > -------------------------------------+------------------------------------- > Changes (by chris): > > * hours: 0 => 0.25 > * totalhours: 4.81 => 5.06 > > > Comment: > > I have just spent some time looking at the relationship between [[Drupal]] > pages and MediaWiki pages, for example: > > * https://www.crin.org/en/library/countries/burundi > * http://wiki.crin.org/mediawiki/index.php?title=Burundi > > The Drupal page has a "Wiki link" field: > > > wiki link > > > > The link will try and format itself but if this fails then you can > overwrite the default here > > > > http://wiki.crin.org/mediawiki/index.php?title=Burundi > And it looks like the > [https://www.crin.org/en/library/countries/burundi#barbox quick facts] > might be pulled in from the Wiki site as this data isn't present when > editing this page using Drupal. > > -- > Ticket URL: <https://trac.crin.org.archived.website/trac/ticket/5#comment:9> > CRIN Trac <https://trac.crin.org.archived.website/trac> > Trac project for CRIN website and servers. >
comment:11 in reply to: ↑ 10 ; follow-ups: ↓ 12 ↓ 16 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0 to 0.55
- Total Hours changed from 5.06 to 5.61
Replying to jenny:
the Quick facts and the persistent violations are not editable in Drupal
and are drawn from the Wiki as well as the text for the introduction. Can
you confirm that this will not be lost?
Looking at how this works, there is a module:
CRIN wiki pull
Module for populating county from wiki
This module is in /var/www/drupal/sites/default/modules/crinqp and these files contain the wiki URL:
crinqp.module: $link = "http://wiki.crin.org/mediawiki/index.php?title=".$counrty; crinqp.php: $link = "http://wiki.crin.org/mediawiki/index.php?title=".$counrty;
So I would suggest that if the DNS was updated and above were changed to the following:
crinqp.module: $link = "https://wiki.crin.org/wiki?title=".$counrty; crinqp.php: $link = "https://wiki.crin.org/wiki?title=".$counrty;
Then importing content should still work, assuming the import supports HTTPS, if it doesn't then the wiki could be changed so that content can be read over HTTP and HTTPS is only needed for editing.
However I'm not clear when the data is pulled in, is it when the Drupal country page is created, or edited or on a regular basis (so if the wiki is updated the Drupal site is automatically updated), looking at the dump of the Drupal database and searching for the string 8749400 (the population of Burundi) this value is present in the field_revision_field_population table and the field_data_field_population table.
The unknown issues above could be clarified through testing (for example change some values on the wiki to see if they update automatically) and / or you could ask Code Positive how exactly this works.
If I were you I'd keep the copy of the wiki on Crin1 and ask me to:
- Make the copy of the wiki at https://wiki.crin1.crin.org/ available via HTTP for reading and HTTPS only for editing.
- Update the DNS for wiki.crin.org so it points to Crin1 rather than the GreenQloud server.
- Update the wiki URLs in crinqp.module and crinqp.php.
- Update the wiki URLs in the Drupal database, perhaps using the Drush Search & Replace module.
After the above had been done the GreenQloud wiki server could be shutdown.
If however you want to get rid of the wiki site then if I were you I'd ask Code Positive:
- Does the CRIN wiki pull module pull in content from the wiki at any time other when a new country is added to the Drupal site?
- If the answer to 1, is no then how would we add a new country or update data for a country if the wiki site is shutdown?
- If the answer to 1. is on a regular basis or when there are changes I think you might need to keep the wiki if you are not going to make changes to the way the Drupal country pages work.
- If the answer to 2. is not simple then you would either need to update the Drupal code to remove the dependancy on the wiki or keep the wiki.
comment:12 in reply to: ↑ 11 Changed 3 years ago by chris
Ideally the following would be first done on a dev server, so sorting out ticket:23 and then testing the relationship with the wiki and Drupal there would be the safest way to do things -- keep the GreenQloud wiki server running till these things have been tested and proven to work on dev before deploying to live.
Replying to chris:
If I were you I'd keep the copy of the wiki on Crin1 and ask me to:
- Make the copy of the wiki at https://wiki.crin1.crin.org/ available via HTTP for reading and HTTPS only for editing.
- Update the DNS for wiki.crin.org so it points to Crin1 rather than the GreenQloud server.
- Update the wiki URLs in crinqp.module and crinqp.php.
- Update the wiki URLs in the Drupal database, perhaps using the Drush Search & Replace module.
After the above had been done the GreenQloud wiki server could be shutdown.
comment:13 Changed 3 years ago by jenny
Hi Chris, Can we have a chat about this on Monday please? Thanks, Jenny On 3 July 2015 at 13:06, CRIN Trac <trac@trac.crin.org> wrote: > #5: Migrate MediaWiki from GreenQloud > -------------------------------------+------------------------------------- > Reporter: chris | Owner: chris > Type: task | Status: new > Priority: major | Milestone: Install and > Component: | configure crin1 > mediawiki | Version: > Resolution: | Keywords: > Estimated Number of Hours: 8 | Add Hours to Ticket: 0.55 > Billable?: 1 | Total Hours: 5.06 > -------------------------------------+------------------------------------- > Changes (by chris): > > * hours: 0 => 0.55 > * totalhours: 5.06 => 5.61 > > > Comment: > > Replying to [comment:10 jenny]: > > > > the Quick facts and the persistent violations are not editable in Drupal > > and are drawn from the Wiki as well as the text for the introduction. > Can > > you confirm that this will not be lost? > > Looking at how this works, there is a > [https://www.crin.org/en/admin/modules module]: > > > CRIN wiki pull > > > > Module for populating county from wiki > > This module is in `/var/www/drupal/sites/default/modules/crinqp` and these > files contain the wiki URL: > > {{{ > crinqp.module: $link = > "http://wiki.crin.org/mediawiki/index.php?title=".$counrty; > crinqp.php: $link = > "http://wiki.crin.org/mediawiki/index.php?title=".$counrty; > }}} > > So I would suggest that if the DNS was updated and above were changed to > the following: > > {{{ > crinqp.module: $link = "https://wiki.crin.org/wiki?title=".$counrty; > crinqp.php: $link = "https://wiki.crin.org/wiki?title=".$counrty; > }}} > > Then importing content should still work, assuming the import supports > HTTPS, if it doesn't then the wiki could be changed so that content can be > read over HTTP and HTTPS is only needed for editing. > > However I'm not clear when the data is pulled in, is it when the Drupal > country page is created, or edited or on a regular basis (so if the wiki > is updated the Drupal site is automatically updated), looking at the dump > of the Drupal database and searching for the string 8749400 (the > [https://www.crin.org/en/library/countries/burundi#barbox population of > Burundi]) this value is present in the `field_revision_field_population` > table and the `field_data_field_population` table. > > The unknown issues above could be clarified through testing (for example > change some values on the wiki to see if they update automatically) and / > or you could ask Code Positive how exactly this works. > > If I were you I'd keep the copy of the wiki on [[Crin1]] and ask me to: > > 1. Make the copy of the wiki at https://wiki.crin1.crin.org/ available > via > HTTP for reading and HTTPS only for editing. > 2. Update the DNS for `wiki.crin.org` so it points to [[Crin1]] rather > than the !GreenQloud server. > 3. Update the wiki URLs in `crinqp.module` and `crinqp.php`. > 4. Update the wiki URLs in the Drupal database, perhaps using the > [https://www.drupal.org/project/sar Drush Search & Replace module]. > > After the above had been done the !GreenQloud wiki server could be > shutdown. > > If however you want to get rid of the wiki site then if I were you I'd ask > Code Positive: > > 1. Does the CRIN wiki pull module pull in content from the wiki at any > time other when a new country is added to the Drupal site? > 2. If the answer to 1, is no then how would we add a new country or update > data for a country if the wiki site is shutdown? > 3. If the answer to 1. is on a regular basis or when there are changes I > think you might need to keep the wiki if you are not going to make changes > to the way the Drupal country pages work. > 4. If the answer to 2. is not simple then you would either need to update > the Drupal code to remove the dependancy on the wiki or keep the wiki. > > -- > Ticket URL: <https://trac.crin.org.archived.website/trac/ticket/5#comment:11> > CRIN Trac <https://trac.crin.org.archived.website/trac> > Trac project for CRIN website and servers. >
comment:14 Changed 3 years ago by chris
Hi Sure, I should be in our office from 9:30am to 3pm All the best Chris On Fri 03-Jul-2015 at 02:40:03PM -0000, CRIN Trac wrote: > > Comment (by jenny): > > Can we have a chat about this on Monday please?
comment:15 Changed 3 years ago by jenny
Hi Chris, Can we say 10.30? Have a good weekend, Jenny On 3 July 2015 at 15:47, Chris Croome <chris@webarchitects.co.uk> wrote: > Hi > > Sure, I should be in our office from 9:30am to 3pm > > All the best > > Chris > > On Fri 03-Jul-2015 at 02:40:03PM -0000, CRIN Trac wrote: > > > > Comment (by jenny): > > > > Can we have a chat about this on Monday please? >
comment:16 in reply to: ↑ 11 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0 to 1.15
- Total Hours changed from 5.61 to 6.76
TICKET SUMMURY: The https://wiki.crin.org/ site is now at 1984.is and the GreenQloud server can be shutdown (you could wait till tomorrow since the DNS will take some time to update, but this isn't critical).
Following a phone call with Jenny I have done the followiong to make the copy of the wiki at 1984.is available at wiki.crin.org.
Replying to chris:
- Make the copy of the wiki at https://wiki.crin1.crin.org/ available via HTTP for reading and HTTPS only for editing.
I found that the login page was generating a 500 error due to the ConfirmAccount plugin not working so I commented that out in /var/www/mediawiki/w/LocalSettings.php and also disabled the public creation of accounts to stop spammers signing up for accounts:
//require_once("$IP/extensions/ConfirmAccount/SpecialConfirmAccount.php"); $wgGroupPermissions['*']['createaccount'] = false;
I updated the Apache config to:
<VirtualHost *:80> <IfModule mpm_itk_module> AssignUserID mediawiki mediawiki MaxClientsVHost 60 </IfModule> ServerName www.wiki.crin.org ServerAlias wiki.crin1.crin.org Redirect / http://wiki.crin.org/ </VirtualHost> <VirtualHost *:80> <IfModule mpm_itk_module> AssignUserID mediawiki mediawiki MaxClientsVHost 60 </IfModule> ServerName wiki.crin.org SetEnv TMPDIR /var/www/mediawiki/tmp <Directory /> Options FollowSymLinks AllowOverride None Require all denied </Directory> DocumentRoot /var/www/mediawiki # Ensure that old URL's still work RedirectMatch "/mediawiki/index.php(.*)" "http://wiki.crin.org/wiki$1" RedirectMatch "/mediawiki/api.php(.*)" "http://wiki.crin.org/w/api.php$1" RedirectMatch "/mediawiki/load.php(.*)" "http://wiki.crin.org/w/load.php$1" Redirect "/mediawiki/" "http://wiki.crin.org/w/" <Directory /var/www/mediawiki> Options Indexes FollowSymLinks AllowOverride All Require all granted # http://www.mediawiki.org/wiki/Manual:Short_URL/Apache <IfModule mod_rewrite.c> # Enable the rewrite engine RewriteEngine On # Short url for wiki pages RewriteRule ^/?wiki(/.*)?$ /var/www/mediawiki/w/index.php [L] # Redirect / to Main Page RewriteRule ^/*$ /var/www/mediawiki/w/index.php [L] </IfModule> </Directory> <IfModule mod_php5.c> php_admin_value open_basedir /var/www/mediawiki php_admin_value upload_tmp_dir /var/www/mediawiki/tmp php_admin_value session.save_path /var/www/mediawiki/tmp php_admin_value file_uploads 1 </IfModule> ErrorLog ${APACHE_LOG_DIR}/mediawiki.error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/mediawiki.access.log combined </VirtualHost> <IfModule mod_ssl.c> <VirtualHost *:443> <IfModule mpm_itk_module> AssignUserID mediawiki mediawiki MaxClientsVHost 60 </IfModule> ServerName www.wiki.crin.org ServerAlias wiki.crin1.crin.org SSLEngine on SSLCertificateFile /etc/ssl/gandi/wiki.crt.pem SSLCertificateKeyFile /etc/ssl/gandi/wiki.key.pem SSLCACertificateFile /etc/ssl/gandi/root.pem Redirect / https://wiki.crin.org/ </VirtualHost> </IfModule> <IfModule mod_ssl.c> <VirtualHost *:443> <IfModule mpm_itk_module> AssignUserID mediawiki mediawiki MaxClientsVHost 60 </IfModule> ServerName wiki.crin.org SSLEngine on SSLCertificateFile /etc/ssl/gandi/wiki.crt.pem SSLCertificateKeyFile /etc/ssl/gandi/wiki.key.pem SSLCACertificateFile /etc/ssl/gandi/root.pem SetEnv TMPDIR /var/www/mediawiki/tmp <Directory /> Options FollowSymLinks AllowOverride None Require all denied </Directory> DocumentRoot /var/www/mediawiki # Ensure that old URL's still work <If "%{HTTP_HOST} == 'wiki.crin.org'"> RedirectMatch "/mediawiki/index.php(.*)" "https://wiki.crin.org/wiki$1" RedirectMatch "/mediawiki/api.php(.*)" "https://wiki.crin.org/w/api.php$1" RedirectMatch "/mediawiki/load.php(.*)" "https://wiki.crin.org/w/load.php$1" Redirect "/mediawiki/" "https://wiki.crin.org/w/" </If> <If "%{HTTP_HOST} == 'www.wiki.crin.org'"> RedirectMatch "/mediawiki/index.php(.*)" "https://www.wiki.crin.org/wiki$1" RedirectMatch "/mediawiki/api.php(.*)" "https://www.wiki.crin.org/w/api.php$1" RedirectMatch "/mediawiki/load.php(.*)" "https://www.wiki.crin.org/w/load.php$1" Redirect "/mediawiki/" "https://www.wiki.crin.org/w/" </If> <If "%{HTTP_HOST} == 'wiki.crin1.crin.org'"> RedirectMatch "/mediawiki/index.php(.*)" "https://wiki.crin1.crin.org/wiki$1" RedirectMatch "/mediawiki/api.php(.*)" "https://wiki.crin1.crin.org/w/api.php$1" RedirectMatch "/mediawiki/load.php(.*)" "https://wiki.crin1.crin.org/w/load.php$1" Redirect "/mediawiki/" "https://wiki.crin1.crin.org/w/" </If> <Directory /var/www/mediawiki> Options Indexes FollowSymLinks AllowOverride All Require all granted # http://www.mediawiki.org/wiki/Manual:Short_URL/Apache <IfModule mod_rewrite.c> # Enable the rewrite engine RewriteEngine On # Short url for wiki pages RewriteRule ^/?wiki(/.*)?$ /var/www/mediawiki/w/index.php [L] # Redirect / to Main Page RewriteRule ^/*$ /var/www/mediawiki/w/index.php [L] </IfModule> </Directory> <IfModule mod_php5.c> php_admin_value open_basedir /var/www/mediawiki php_admin_value upload_tmp_dir /var/www/mediawiki/tmp php_admin_value session.save_path /var/www/mediawiki/tmp php_admin_value file_uploads 1 </IfModule> ErrorLog ${APACHE_LOG_DIR}/mediawiki.error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/mediawiki.ssl_access.log combined <IfModule headers_module> # Use HTTP Strict Transport Security to force client to use secure connections only #Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" Header always set Strict-Transport-Security "max-age=31536000" # mitigate TIME attack Header always append X-Frame-Options "sameorigin" </IfModule> <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [2-6]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 # MSIE 7 and newer should be able to use keepalive BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown </VirtualHost> </IfModule>
So now the site is available via HTTP.
- Update the DNS for wiki.crin.org so it points to Crin1 rather than the GreenQloud server.
This has been done and and it should update soon.
- Update the wiki URLs in crinqp.module and crinqp.php.
This has been done for /var/www/drupal/sites/default/modules/crinqp/crinqp.module:
// updated by chris on 2015-07-06 see https://trac.crin.org.archived.website/trac/ticket/5 //$link = "http://wiki.crin.org/mediawiki/index.php?title=".$counrty; $link = "http://wiki.crin.org/wiki/".$counrty;
And for /var/www/drupal/sites/default/modules/crinqp/crinqp.php:
// updated by chris on 2015-07-06 see https://trac.crin.org.archived.website/trac/ticket/5 //$link = "http://wiki.crin.org/mediawiki/index.php?title=".$counrty; $link = "http://wiki.crin.org/wiki/".$counrty;
- Update the wiki URLs in the Drupal database, perhaps using the Drush Search & Replace module.
Install the Drupal module on Crin2:
cd /usr/local/src wget https://ftp.drupal.org/files/projects/sar-7.x-1.0.tar.gz tar -zxvf sar-7.x-1.0.tar.gz mkdir -p /var/www/.drush/commands cp -a sar /var/www/.drush/commands/
Backup the database on Crin1:
/usr/local/bin/backup-mysql
However the Dtupal search and replace module doesn't work:
su - www-data -s /bin/bash cd drupal/ drush help sar Invalid command sar. [error] drush sql-cli ERROR 1045 (28000): Access denied for user 'drupal'@'crin2' (using password: YES) drush sql-query "show tables" Query failed. [error]
See ticket:18 for the above problem.
So looking at doing this at a MySQL level, frirst fine which tables contain this data:
cd /var/backups/mysql/databases/drupal grep "wiki.crin.org" -rli field_data_field_wiki_link.sql field_revision_body.sql field_data_body.sql field_revision_field_wiki_link.sql field_revision_field_attachment_link.sql field_data_field_attachment_link.sql cache_entity_node.sql
The field_data_field_wiki_link and field_revision_field_wiki_link tables contains the links, so the dumps of these tables were edited and imported:
cd /var/backups/mysql/databases/drupal cp field_data_field_wiki_link.sql field_data_field_wiki_link.sql.bak cp field_revision_field_wiki_link.sql field_revision_field_wiki_link.sql.bak vim field_data_field_wiki_link.sql field_revision_field_wiki_link.sql :1,$s;http://wiki.crin.org/mediawiki/index.php?title=;http://wiki.crin.org/wiki/;g cat field_data_field_wiki_link.sql | mysql drupal cat field_revision_field_wiki_link.sql | mysql drupal
I think that will do -- the links on the Drupal site haven't been updated, for example this link:
Exists on this page:
But a redirect is in place, eg:
lynx -dump -head "http://wiki.crin.org/mediawiki/index.php?title=Algeria" | grep Location Location: http://wiki.crin.org/wiki?title=Algeria
So nobody should get a 404.
comment:17 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0 to 0.05
- Total Hours changed from 6.76 to 6.81
I forgot to update /var/www/mediawiki/w/LocalSettings.php with the new server URL, this has now been done:
#$wgServer = "https://wiki.crin1.crin.org"; $wgServer = "https://wiki.crin.org";
comment:18 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0 to 0.1
- Resolution set to fixed
- Status changed from new to closed
- Total Hours changed from 6.81 to 6.91
The DNS for wiki.crin.org should have updated now, so the old server at GreenQloud can be shutdown / deleted, so closing this ticket because none of the MediaWiki plugin issues listed at ticket:5#comment:4 are to be fixed as the plan is to delete the wiki as soon as the Drupal dependencies have been removed by Code Positive.
Note that all the migration tickets are now closed, however, there might be a need to re-open the backup ticket.
comment:19 Changed 3 years ago by jenny
- Resolution fixed deleted
- Status changed from closed to reopened
Thanks Chris, we just need to download our MyGreenQloud files which we will do ourselves and then we can shut down. J Sent from my iPhone > On 7 Jul 2015, at 10:21, CRIN Trac <trac@trac.crin.org> wrote: > > #5: Migrate MediaWiki from GreenQloud > -------------------------------------+------------------------------------- > Reporter: chris | Owner: chris > Type: task | Status: closed > Priority: major | Milestone: Install and > Component: | configure crin1 > mediawiki | Version: > Resolution: fixed | Keywords: > Estimated Number of Hours: 8 | Add Hours to Ticket: 0.1 > Billable?: 1 | Total Hours: 6.81 > -------------------------------------+------------------------------------- > Changes (by chris): > > * hours: 0 => 0.1 > * status: new => closed > * resolution: => fixed > * totalhours: 6.81 => 6.91 > > > Comment: > > The DNS for `wiki.crin.org` should have updated now, so the old server at > !GreenQloud can be shutdown / deleted, so closing this ticket because none > of the MediaWiki plugin issues listed at ticket:5#comment:4 are to be > fixed as the plan is to delete the wiki as soon as the Drupal dependencies > have been removed by Code Positive. > > Note that [https://trac.crin.org.archived.website/trac/report/6 all the migration tickets > are now closed], however, there might be a need to re-open > [https://trac.crin.org.archived.website/trac/ticket/11 the backup ticket]. > > -- > Ticket URL: <https://trac.crin.org.archived.website/trac/ticket/5#comment:18> > CRIN Trac <https://trac.crin.org.archived.website/trac> > Trac project for CRIN website and servers.
comment:20 Changed 3 years ago by chris
- Add Hours to Ticket changed from 0 to 0.02
- Resolution set to fixed
- Status changed from reopened to closed
- Total Hours changed from 6.91 to 6.93
The email from Jenny, ticket:5#comment:19, reopened this ticket, closing it again.
The ssh public key from Crin1 was added to the ~/.ssh/authorized_keys file on the server at wiki.crin.org and this was prefixed with the servers IP address to only allow it to be used from Crin1:
The site is in /var/www/html/mw/mediawiki, so create a directory on Crin1 and rsync it:
Create a system account for mediawiki and chown the files that need to be writable:
Dump the MySQL database:
SCP it and create a new one to import it into:
A script for syncing the site was created /root/bin/mediawiki-sync, it is set to omit the config file:
The following things were changed in the LocalSettings.php config file:
The following Apache config file was created at /etc/apache2/sites-available/mediawiki.conf:
Create and chown the TMPDIR:
Generate a certificate CSR:
For testing the cert was set to the Trac one and then the Apache config was symlinked and tested:
The site was tested at https://wiki.crin1.crin.org/ and there was this error:
The errors in the Apache logs:
So, enabled debugging and got an error regarding the cache not being writable, so:
Get the logo and favicon:
And the site was tested at https://wiki.crin1.crin.org/wiki/Main_Page
And images and page content was missing...
However if you view source the content is there, for example: https://wiki.crin1.crin.org/w/index.php?title=Main_Page&action=edit
The Gandi SSL/TLS cert was installed.
The config files was changed from DOS format:
Trying the run the database upgrade script:
Generated these errors:
Also this link was suggested via the ircs://irc.freenode.net/mediawiki channel:
Which says:
So I think we might be forced to upgrade MediaWiki, the current versions are 1.24.2 (LTS) and 1.23.9 and we are on 1.16.0...