MediaWikin päivitys 1.4.7 -> 1.13.2
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.
- Hae uusin mediawikipaketti ja siirrä se $homeen
- Aja konsolista
tar xvfz mediawiki-1.13.2.tar.gz -C /path/to/your/wiki/ --strip-components=1 - 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.
- Siirrä paketti omalle koneelle muokattavaksi
tar -xvf mediawiki-1.13.2.tar.gzdelete languages/Language*(kaikki paitsi en ja fi, minun tapauksessani)tar -cvf mediawiki-1.13.2.targzip -9 mediawiki-1.13.2.tar- Siirrä muokattu paketti palvelimelle
tar xvfz mediawiki_stripped-1.13.2.tar.gz -C /path/to/your/wiki/ --strip-components=1cd wikicp AdminSettings.sample AdminSettings.phpnano AdminSettings.php(lisää kantatunnus ja salasana)cd maintenancephp 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ä.