Noniin, jos nyt tulis oikealle foorumille. Postasin vahingossa samaisen viestin tietokannat-foorumille. :)
Elikkäs, päivitin tuossa php5:sen tuohon gentoo-palvelimelle, mutta tuli pari ongelmaa eteen. Esimerkiksi mediawiki valittaa seuraavaa:
Warning: Invalid argument supplied for foreach() in /var/www/localhost/htdocs/mediawiki/includes/GlobalFunctions.php on line 130
Warning: implode() [function.implode]: Bad arguments. in /var/www/localhost/htdocs/mediawiki/includes/GlobalFunctions.php on line 133
Warning: array_map() [function.array-map]: The first argument, 'utf8_encode', should be either NULL or a valid callback in /var/www/localhost/htdocs/mediawiki/includes/GlobalFunctions.php on line 115
Phpsysinfokaan ei tahdo toimia. Herjaa jostakin XML-moduulista, Mutta esimerkiksi joomla, phpmyadmin ym. toimii ongelmitta.
Mitenkähän saisin tuon nyt toimimaan kunnolla?
Tässä vielä tuo GlobalFunctions.php:n sisältö riveiltä 130-134.
foreach( $trans as $key => $val ) {
$snip[] = substr( $key, 1, -1 );
}
$regexp = '/(&(?:' . implode( '|', $snip ) . ');)/e';
}
Elikkäs, päivitin tuossa php5:sen tuohon gentoo-palvelimelle, mutta tuli pari ongelmaa eteen. Esimerkiksi mediawiki valittaa seuraavaa:
Warning: Invalid argument supplied for foreach() in /var/www/localhost/htdocs/mediawiki/includes/GlobalFunctions.php on line 130
Warning: implode() [function.implode]: Bad arguments. in /var/www/localhost/htdocs/mediawiki/includes/GlobalFunctions.php on line 133
Warning: array_map() [function.array-map]: The first argument, 'utf8_encode', should be either NULL or a valid callback in /var/www/localhost/htdocs/mediawiki/includes/GlobalFunctions.php on line 115
Phpsysinfokaan ei tahdo toimia. Herjaa jostakin XML-moduulista, Mutta esimerkiksi joomla, phpmyadmin ym. toimii ongelmitta.
Mitenkähän saisin tuon nyt toimimaan kunnolla?
Tässä vielä tuo GlobalFunctions.php:n sisältö riveiltä 130-134.
foreach( $trans as $key => $val ) {
$snip[] = substr( $key, 1, -1 );
}
$regexp = '/(&(?:' . implode( '|', $snip ) . ');)/e';
}
Vastaukset 9
Vanhimmat
Minusta et viisastu patkaakaan, mutta sanon tassa valissa, etta se on puolihullu jakelu :)
Aivan ensimmäiseksi suosittelisin lukemaan läpi tämän. Tossa on kerrottu PHP4:n ja PHP5:n eroista ja mitä pitää ottaa huomioon siirryttöäessä PHP4:stä PHP5:n.
http://www.php.net/manual/en/migration5.php#migration5.changes
Tosta sun koodinpätkästä on aika vaikea sanoa mistä on kyse. foreach():n ja implode():n syntaksi on mielestäni ihan oikein. Vika on siis jossain muualla.
Homma näyttäisi kaatuvan tuohon foreach():n parametrina olevaan trans-muuttujaan. Mitä se sisältää? Tarkotan siis että miten sen luot jne.
Mikä versio PHP5:stä sulla on asennettuna? Uusin on 5.1.3. Siirtyminen PHP5:n tuo myös mukanaan joitakin muutoksia koodiin.
En nyt tiedä onko siitä mitään apua, mutta jos noi ongelmat liittyy jotenkin tietokannasta haetun datan käsittelyyn, niin ehkä kannattaisi päivittää myös MySQL, tai mitä sitten käytätkin, uusimpaan versioon.
Tässä urli korjattuna. Koko toi sivu siis toki kannattaa lukea.
http://www.php.net/manual/en/migration5.php
Asensin kokeeksi uusimman vakaan MediaWikin ja mulla se toimi ilman ongelmia.
Mulla on Debian Sargessa asennettuna:
- PHP 5.1.4
- MySQL 5.0.20a
- MediaWiki 1.6.5
Eli ainakin noilla versioilla toimii ihan hyvin. Vika sulla voi toki olla myös esim PHP:n asetuksissa.
Joo, eli nyt olisi varmaan edessä mysql:n päivitys. Jos se vaikka auttaisi. Nyt mulla on siis versio 4.0.25-r2 ajossa ja tuo pitäisi päivittää versioon 5.0.21.
Voinko tehdä päivityksen turvallisesti näiden ohjeiden mukaan?
http://www.gentoo.org/doc/fi/mysql-upgrading.xml
Ja eikös tuonne package.keywords tiedostoon pidä lisätä seuraavanlainen rivi: "dev-db/mysql"?
mutta ehkäpä aikas montaa muuta.
olen sitä mieltä, että jos on uhrannut melkoisen tovin aikaa ja vaivaa esim. myslin asennukseen, ja sitten kaikki toimii kuten pitää, olisin hieman varautunut päivittämiseen pelkän päivittämisen ilosta.
tälläisessä päivityskierteessä joutuu helposti tilanteeseen, että se perusjuttu ei sitten oikeastaan toimi kuin satunnaisesti.
jos sitä perusjuttua taas ei ole ollutkaan, niin sitten kannattaa antaa palaa.
Epätodennäköstä, että se siitä tietokannasta on kiinni, vaikkei tietenkään mahdotonta.
Lueskelin noita MediaWikin sivuja ja ilmeisesti MySQL 4.0 pitäs olla tuettuna aina uusinta versiota myöten.. MySQL 3.23.x ei enää ole, mutta kuka nyt niin vanhaa enää käyttäs.. PHP5:n pitäs myöskin toimia MySQL 4:n kanssa ihan ok..
Eli ehkä vika ennemminkin löytyy sulla PHP5:n asennuksesta tai asetuksista. En vaan heti keksi mikä voisi mättää.
Kannattaa varman kysyä tuolla PHP-alueella tosta vielä.
Kattelin ton GlobalFunctions tiedoston sisältöä, niin ainakin versiossa 1.6.5 se on aivan erilainen. Siitä ei löydy ollenkaan noita kohtia missä sulla tulee virheitä.
Ehkäpä tolla on jotain tekemistä sen kanssa, että mulla toi toimii ja sulla ei.
Joo mut tää arvailu ei paljon hyödytä..
no.. päivittelin nyt tuon wikimedian sitten uusimpaan versioon. Mysliä en uskaltanut päivittää.
Mutta ei toimi vieläkään. :)
Tulee vaan seuraavanlaisia virheilmoituksia:
Error in fetchObject(): Table 'wikimedia.page' doesn't exist
Backtrace:
GlobalFunctions.php line 602 calls wfBacktrace()
Database.php line 596 calls wfDebugDieBacktrace()
Database.php line 1787 calls Database::fetchObject()
LinkBatch.php line 76 calls ResultWrapper::fetchObject()
LinkBatch.php line 55 calls LinkBatch::executeInto()
Skin.php line 192 calls LinkBatch::execute()
Skin.php line 171 calls Skin::preloadExistence()
SkinTemplate.php line 108 calls Skin::initPage()
MonoBook.php line 28 calls SkinTemplate::initPage()
SkinTemplate.php line 151 calls SkinMonoBook::initPage()
OutputPage.php line 577 calls SkinTemplate::outputPage()
OutputPage.php line 794 calls OutputPage::output()
Database.php line 476 calls OutputPage::databaseError()
Database.php line 419 calls Database::reportQueryError()
Database.php line 806 calls Database::query()
Database.php line 825 calls Database::select()
JobQueue.php line 47 calls Database::selectRow()
Wiki.php line 289 calls Job::pop()
Wiki.php line 247 calls MediaWiki::doJobs()
index.php line 124 calls MediaWiki::finalCleanup()
Eli tuo ei saa yhteyttä tietokantaan vai?
Hitto kun ei osaa :D