pisara-meressa.net

November 1, 2008

MediaWikin päivitys 1.4.7 -> 1.13.2

Filed under: Nörtteilyt — eis @ 12:42:26

Tuli sitten ajankohtaiseksi tuo päivitys, kun suPHP:n asennus futuronille rikkoi vanhan ihan totaalisesti, eikä ylläpito tässä lähtenyt auttamaan. Noh, asennusohjeet esiin ja päivittämään.

  1. Hae uusin mediawikipaketti ja siirrä se $homeen
  2. Aja konsolista tar xvfz mediawiki-1.13.2.tar.gz -C /path/to/your/wiki/ --strip-components=1
  3. Huomaa varoitukset levytilan loppumisesta: 50 megan levytila ei yksinkertaisesti riitä. Uusin mediawikipaketti sisältää läjän käännöstiedostoja eri kielille, jotka yleensä ovat tarpeettomia. Ne tuli siis poistaa.
  4. Siirrä paketti omalle koneelle muokattavaksi
  5. tar -xvf mediawiki-1.13.2.tar.gz
  6. delete languages/Language* (kaikki paitsi en ja fi, minun tapauksessani)
  7. tar -cvf mediawiki-1.13.2.tar
  8. gzip -9 mediawiki-1.13.2.tar
  9. Siirrä muokattu paketti palvelimelle
  10. tar xvfz mediawiki_stripped-1.13.2.tar.gz -C /path/to/your/wiki/ --strip-components=1
  11. cd wiki
  12. cp AdminSettings.sample AdminSettings.php
  13. nano AdminSettings.php (lisää kantatunnus ja salasana)
  14. cd maintenance
  15. php update.php

Tässä vaiheessa kaiken tulisi olla kunnossa, minulla ei ollut:

Fatal error: Call to undefined function wfprofilein() in /home/evanw/public_html /includes/Setup.php on line 22

Nähtävästi uusimmissa mediawikeissä on aina profilointifunkkariviittaukset. Jos profilointi on päällä, kutsut menevät profilerille, muuten profilerstubille joka ei tee mitään. Siispä profilerstub käyttöön ja tämä rivi LocalSettings.php-tiedostoon:

require_once( "StartProfiler.php" );

Seuraava tuttavuus oli

Fatal error: Call to a member function SaveMasterPos() on a non-object

SaveMasterPos viittaa tuossa rivillä johonkin load balanceriin w-tiedostossa (wikini “nimeksi” oli asetettu w, jollain muulla se olisi eriniminen):

$wgLoadBalancer->saveMasterPos();

Kommentoin pois w-tiedostosta kaikki wgLoadBalancer-viittaukset. Tuloksena oli:

Internal error

Redirect loop detected!

This means the wiki got confused about what page was requested; this sometimes happens when moving a wiki to a new server or changing the server configuration.

Your web server was detected as possibly not supporting URL path components (PATH_INFO) correctly; check your LocalSettings.php for a customized $wgArticlePath setting and/or toggle $wgUsePathInfo to true.

Noh, työtä käskettyä, ja seuraava LocalSettings.php:hen:

$wgUsePathInfo = true;

Nyt se toimii, tosin index.php näkyy ikävästi urleissa. Mietittäväksi jäi, olisiko pelkkä wgUsePathInfo riittänyt korjaamaan vanhan asennuksen. Tutkiskellessani wgUsePathInfon manuaalia tajusin, että futuron oli muuttanut hostauksensa PHP:n moduulista cgi:ksi. Tämä selitti aika paljon. Saman ongelman olisi voinut kiertää myös asettamalla cgi.fix_pathinfo -muuttujan php:n puolella trueksi, mutta nähtävästi joko futuron tai uusimmat php-versiot eivät tue sitä.

Lisäys: Joitain ongelmia jäi vielä näidenkin jälkeen, editointi muuttui kaikille mahdolliseksi ja tietoja-sivu ei enää toimi. Editoinnin korjaamiseksi oli ohjeita täällä.

Next Page »

Powered by WordPress