After upgrading my PHP to 5.3.2, I received the following error when accessing MediaWiki (1.6.12):

Parse error: syntax error, unexpected T_NAMESPACE, expecting T_STRING in /usr/local/www/apache22/data/wiki/includes/Namespace.php  on line 46

There are three solutions:

  1. Downgrade your PHP from 5.3 back to 5.2
  2. Upgrade your MediaWiki to a newer version.
  3. Fix the codes.

In my case, the first couple solutions do not work for me, and therefore I choose 3.

  1. Backup your wiki file first.
  2. Access your webserver and go to the MediaWiki/includes directory.
    For example:

    cd /usr/local/www/apache22/data/wiki/includes
  3. Edit Namespace.php
    nano Namespace.php
  4. Go to line 46, change the following from:
    class Namespace {

    to:

    class MWNamespace {

    Save the file.

  5. Now, let’s create a script:
    nano wikifix.sh

    Copy and paste the following:

    for fl in *.php; do
    mv $fl $fl.old
    sed 's/Namespace::/MWNamespace::/g' $fl.old > $fl
    done

    Save the file.

  6. Change the file to executable by:
    chmod u+x wikifix.sh
  7. Search the keyword Namespace:: and replace it by MWNamespace:::
    ./wikifix.sh

    Warning: Don’t run the script twice!

  8. Delete the script.
    rm wikifix.sh

Try to access the MediaWiki again and the problem should be gone.

Enjoy Wiki.

–Derrick

Our sponsors:

58 Responses to “MediaWiki Error: “Parse error: syntax error, unexpected T_NAMESPACE, expecting T_STRING in /usr/local/www/apache22/data/wiki/includes/Namespace.php on line 46″”

  1. Works out perfectly.
    Just restore my 1.8.13 mediawiki backup.
    Thanks a lot,

  2. Thanks. It worked.

    In any case it’s not wise to use a variable name that is possible to become a reserved word.

  3. Worked like a charm – thanks! I did the manual find-and-replace using Notepad++ rather than the script, but worked just as well once I found the language.php file needed to be updated too.

  4. worked with me like a charm!

  5. Thanks a lot!!

    I’d like to sugest a better fix:

    for file in `grep -R Namespace:: * | awk -F”:” ‘{ print $1 }’ | sort | uniq ` ; do sed -i ‘s/Namespace::/MWNamespace::/g’ ./$file ; done

    Best regards
    Nuno

  6. I get a different error now!

    PHP Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM, expecting T_NS_SEPARATOR in /usr/share/mediawiki1.10/languages/Language.php on line 254

  7. Too quick to post that comment … solved it by adding MW to the Namespace as below:

    if( ( $ns = MWNamespace::getCanonicalIndex( $lctext ) ) !== null ) return $ns;

  8. Great solution solved error on Mediawiki 1.9.3

Trackbacks/Pingbacks

  1. Carra Dio - It's a good blog... I will make sure and bookmark this page and be back to follow you more....
  2. carra dio - It's a good blog... I will make sure and bookmark this page and be back to follow you more....
  3. Wordpresswindow » Ugly bug in mediawiki after php 5.3 upgrade - [...] fix is described here… but another ugly bug then [...]
  4. MAMP und MediaWiki laufen endlich nach Update auf Mac OS X Lion » Pottblog - [...] icesquare.com fand ich drei mögliche Wege, das ganze zu [...]
  5. Altes MediaWiki und PHP 5.3 - [...] {} ;Es sollte aber dennoch auf die neueste MediaWiki Version 1.19 geupgraded werden.Quelle: MediaWiki Error: “Parse error: syntax error, …

Leave a Reply