Gentoo ja php5.. ongelmia

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';
}
9322
Äänestä

Muut lukivat myös

Vastaukset 9

Vanhimmat

Minusta et viisastu patkaakaan, mutta sanon tassa valissa, etta se on puolihullu jakelu :)

Äänestä

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.

Äänestä

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.

Äänestä
  • 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"?

    Äänestä

  • justjoo kirjoitti:

    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.

    Äänestä

  • justjoo kirjoitti:

    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"?

    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ä.

    Äänestä

  • miksuh. kirjoitti:

    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ä..

    Äänestä

  • miksuh. kirjoitti:

    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

    Äänestä

Kommentoi aloitusta


justjoo kirjoitti:

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';
}

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu