Upgrading Jay Cooke (8.05/8.05.x) to Kilen Woods (8.08) for SPARC Solaris 10

    Table of contents
    No headers

     

    Applies toMindTouch 8.05 to 8.08LicenseAll versions
    Operating SystemLinuxDocumentation TypesSetup
    Community Documentation
     

     

    --------------------------------
    IMPORTANT NOTICE
    --------------------------------

    This content is contributed by a MindTouch Deki user to this community. It has not been reviewed for technical accuracy by MindTouch. If you find an error or would like to comment on the article, please contact to contributor or use the comment field at the bottom of the document.

    --------------------------------
    Known issue for Deki 8.08 on SPARC Solaris
    --------------------------------

    (1) "Regist User" page was blank

    When we click "Regist User" blank page displayed.  However you can add user(s) from control panel by Admin user as alternated.

    (2) Other issues

    There are some issues which have lower priority over above (I think). Please referer next page to get more information for issues about Deki on Solaris.


    --------------------------------
    References
    --------------------------------

    You should read this carefully before install or upgrade to get the latest information.

    Release Notes
    http://wiki.developer.mindtouch.com/...n_Woods_(8.08)

    Official upgrade guide
    http://wiki.mindtouch.com/Official_M...oods)_(non-VM)

    Multi tenant setup guide (if you configured at multi tenant Deki)
    http://wiki.opengarden.org/User:Pete..._update-db.php


    --------------------------------
    Prerequisites
    --------------------------------

    * SAMP (Solaris10/Apache2/MySQL5/PHP5) and Mono-1.2.x on SPARC Solaris 10

    http://wiki.developer.mindtouch.com/..._for_Deki_Wiki

    * Deki 8.05 or 8.05.x installed

    This guide are not for update MindTouch Deki, but for fresh installation only.

    NOTE: Fresh installation guide for Solaris 10 here:

    http://wiki.developer.mindtouch.com/...5_(Jay_Cooke))


    --------------------------------
    Shutting down Apache server and Deki-api daemon before update
    --------------------------------

    Before delete old code, you should stop Apache Server and Deki-API (aka dekihost) daemon process.

    # /etc/init.d/dekiwiki stop
    # svcadm disable svc:/network/http:apache2
    # ps -ef | egrep 'httpd|apache|mono'


    --------------------------------
    Apply a patch to Mono
    --------------------------------

    This fix the following issue for Mono on Solaris.

        * Function return inconsistent ulong value, which has dummy parameter of a Class and a ulong
         https://bugzilla.novell.com/show_bug.cgi?id=426264

    Please do "Install Mono" section on SAMP (Solaris10/Apache2/MySQL5/PHP5) guide below.
    You need apply a patch to Mono source code, then re-compile and re-install Mono. Or you may be seen unacceptable permission problem.

    http://wiki.developer.mindtouch.com/...i#Install_Mono

    (NOTE) This may hardest work for series of upgrading procedure. Please get enough working hours.


    --------------------------------
    Update Apache rewrite rules
    --------------------------------

    (1) Enabling the new control panel

    The new control panel requires an update to your Apache rewrite rules in order to activate it.
    Follow the procedure described in FAQ to do this.

    http://wiki.developer.mindtouch.com/...ntrol_panel%3f

    Edit Apache2 configuration file after backing up it.

    # cd /etc/apache2
    # cp -pi deki-apache.conf deki-apache.conf.02-fine-for-8052
    # vi deki-apache.conf
    # diff -u deki-apache.conf.02-fine-for-8052 deki-apache.conf
    --- deki-apache.conf.02-fine-for-8052   Fri Aug  1 10:07:55 2008
    +++ deki-apache.conf    Sun Aug 17 17:47:37 2008
    @@ -14,7 +14,7 @@
            RewriteCond %{REQUEST_URI} ^/@gui/[^.]+$
            RewriteRule ^/@gui/(.*)$ /proxy.php?path=$1 [L,QSA,NE]

    -       RewriteCond %{REQUEST_URI} !^/(@api|editor|skins|config|@gui)/
    +       RewriteCond %{REQUEST_URI} !^/(@api|editor|skins|config|@gui|deki-cp)/
            RewriteCond %{REQUEST_URI} !^/index\.php
            RewriteCond %{REQUEST_URI} !^/favicon\.ico$
            RewriteCond %{REQUEST_URI} !^/robots\.txt$


    (2) Add index files to look for directory

    Edit file '/etc/apache2/httpd.conf' as described below, to set PHP files Apache will serve if a directory is requested.

    From:
    DirectoryIndex index.html index.html.var

    To:
    DirectoryIndex index.html index.html.var index.cgi index.php index.xhtml

    # cd /etc/apache2
    # cp -pi httpd.conf httpd.conf.01-fine-for-8052
    # vi httpd.conf
    # diff -u httpd.conf.01-fine-for-8052 httpd.conf
    --- httpd.conf.01-fine-for-8052 Thu May 15 06:36:12 2008
    +++ httpd.conf  Sun Aug 17 18:32:03 2008
    @@ -450,7 +450,8 @@
     # negotiated documents.  The MultiViews Option can be used for the
     # same purpose, but it is much slower.
     #
    -DirectoryIndex index.html index.html.var
    +# DirectoryIndex index.html index.html.var
    +DirectoryIndex index.html index.html.var index.cgi index.php index.xhtml

     #
     # AccessFileName: The name of the file to look for in each directory


    --------------------------------
    (OPTIONAL) Register firewall proxy to Apache server
    --------------------------------

    If your Deki are inside firewall, this modification may be useful, so that Deki-API (a.k.a. dekihost) daemon process be able to retrieve scripts from the MindTouch web across the firewall.

    (NOTE) MindTouch scripts repository is located here : http://scripts.mindtouch.com
    (NOTE) Please modify "http://proxy.example.com:8080" for your internal proxy.

    Edit file '/etc/apache2/httpd.conf' as described below, to define proxy service for MindTouch script repository.

    -------------
    Listen localhost:80

    <VirtualHost localhost:80>
    ProxyPass        /@script http://scripts.mindtouch.com
    ProxyPassReverse /@script http://scripts.mindtouch.com
    ProxyRemote      http://scripts.mindtouch.com http://proxy.example.com:8080
    </VirtualHost>
    -------------

    Now you can transparently retrieve scripts from MindTouch as cited below.

    # curl http://localhost/@script/freemind.xml
    <extension>
            <title>Freemind Viewer</title>
            <description>Add Freemind Viewer to a Deki Page</description>
        (snip)
    </extension>

    Don't forget to change the manifest from default to path to proxy, before you verify for installation.

     Name: DHtml
     From: http://scripts.mindtouch.com/dhtml.xml
     To:   http://localhost/@script/dhtml.xml


    --------------------------------
    Back Up Attachments
    --------------------------------

    Type the following commands to create the backup directory and back up your attachments:

    # mkdir $HOME/deki_backup
    # cd /var/www/dekiwiki/
    # gtar cvzpf $HOME/deki_backup/attachments.tar.gz attachments

    (NOTE) If you have multi-tenant configuration of Deki, you should back-up *EACH* attachments of Deki-instance as below:
    # cd <storageDir>
    # gtar cvzpf $HOME/deki_backup/attachments_<storageName>.tar.gz attachments_<storageName>

    (OPTIONAL) To back-up entire files for your Deki, type:
    # cd /var/www/
    # gtar cvzpf $HOME/deki_backup/dekiwiki-web-files.tar.gz dekiwiki
    # cd /
    # gtar cvzpf $HOME/deki_backup/dekiwiki-etc-files.tar.gz etc/dekiwiki


    --------------------------------
    Back Up Settings Files
    --------------------------------

    Enter the following commands to back up the files that MindTouch Deki uses to determine settings:

    # cp -pi /var/www/dekiwiki/LocalSettings.php $HOME/deki_backup
    # cp -pi /etc/dekiwiki/mindtouch.deki.startup.xml $HOME/deki_backup
    # cp -pi /etc/dekiwiki/mindtouch.host.conf $HOME/deki_backup

    --------------------------------
    Backup your MySQL Database
    --------------------------------

    Export contents of your MindTouch Deki's database schema to a export file (*.sql) by the "MySQL superuser".

    # mysqldump -u<user> -p<password> <database_name> > $HOME/deki_backup/wikidb.sql

    For example:
    mysqldump -uroot -proot wikidb > $HOME/deki_backup/wikidb.sql

    (NOTE) If you have multi-tenant configuration of Deki, you should back-up *EACH* users of MySQL as below:
    mysqldump -u<dbAdminUser> -p<dbAdminPassword> <dbWikiUser> > $HOME/deki_backup/wikidb_<dbWikiUser>.sql

    (OPTIONAL) To back-up entire datafiles of MySQL, type:

    # /etc/init.d/mysql.server stop
    # gtar cvfz $HOME/deki_backup/mysql_data.tar.gz /opt/mysql/data
    # /etc/init.d/mysql.server start

    --------------------------------
    Download The New Package
    --------------------------------

    Download the MindTouch Deki build from one of the following sources:

        * RECOMMENDED: http://sourceforge.net/projects/dekiwiki (tarballs)
        * http://wiki.opengarden.org/Source_Code (includes SVN enlistment info)

    # cd $HOME
    # wget http://nchc.dl.sourceforge.net/sourc..._source.tar.gz

    --------------------------------
    Install The New Package
    --------------------------------

    Exctract the archive to your home directory. Then copy web files to your apache share directory.

    Type the following lines to expand and move the files to their correct location:

    (OPTIONAL) Backup all web objects to archive, but recommended.

    # gtar xvfz Deki_Wiki_8.08.1a_Kilen_Woods_source.tar.gz
    # cd Deki_Wiki_8.08.1a_Kilen_Woods_source/

    # rm -rf /var/www/dekiwiki
    # mkdir /var/www/dekiwiki
    # cp -pir web/* /var/www/dekiwiki
    # chown -R webservd:webservd /var/www/dekiwiki

    (OPTIONAL)
    If you use Internet Explorer 6.0 browser, It's recommend to do next ops to avoid link error.

    cd /var/www/dekiwiki/skins/
    cp -pi common/icons/icon-lock.gif ace/neutral/icon_lock.gif
    cp -pi common/icons/icon-mail.gif ace/neutral/icon_mail.gif
    cp -pi common/icons/icon-file.gif ace/neutral/icon_file.gif
    cp -pi common/icons/icon-discuss.gif ace/neutral/icon_discuss.gif
    cp -pi common/icons/anim-save.gif ace/neutral/anim-save.gif

    cp -pi common/icons/icon-lock.gif ace/blue/icon_lock.gif
    cp -pi common/icons/icon-mail.gif ace/blue/icon_mail.gif
    cp -pi common/icons/icon-file.gif ace/blue/icon_file.gif
    cp -pi common/icons/icon-discuss.gif ace/blue/icon_discuss.gif
    cp -pi common/icons/anim-save.gif ace/blue/anim-save.gif

    --------------------------------
    Restore Files
    --------------------------------

    Type the following commands to restore the attachments and settings files:

    # cd $HOME/deki_backup
    # cp -pi LocalSettings.php /var/www/dekiwiki

    # cd /var/www/dekiwiki
    # gtar xvzpf $HOME/deki_backup/attachments.tar.gz

    (NOTE) If you have multi-tenant configuration of Deki, you should restore *EACH* attachments of Deki-instance as below:

    # cd <storageDir>
    # gtar xvzpf $HOME/deki_backup/attachments_<storageName>.tar.gz


    --------------------------------
    (Optional) Multi-tenant update-db.php
    --------------------------------

    If you have multi-tenant configuration of Deki, confirm the contents of LocalSettings.php to Pate's guide ( http://wiki.developer.mindtouch.com/..._update-db.php )

    # vi /var/www/dekiwiki/LocalSettings.php

    o Remove variable listed below.

        | This avoid following error when connect to your site.
        |
        | 2008-05-31 16:45:00,626 [1] ERROR MindTouch.Data.DataCommand - Execute(Text: ' /* BanningDA::GetBansForRequest */
        | select b.*, bi.banip_ipaddress, null as banuser_user_id
        | from bans b
        | left join banips bi on b.ban_id = bi.banip_ban_id
        | where   bi.banip_ipaddress in ('127.0.0.1', 'xxx.xxx.xxx.xxx')
        | union
        | select b.*, null as banip_ipaddress, bu.banuser_user_id
        | from bans b
        | left join banusers bu on b.ban_id = bu.banuser_ban_id
        | where bu.banuser_user_id = ?USERID', Type: Text)
        | MySql.Data.MySqlClient.MySqlException: Table 'wikidb.bans' doesn't exist
        |   at MySql.Data.MySqlClient.MySqlStream.OpenPacket () [0x00000]
        |   at MySql.Data.MySqlClient.NativeDriver.ReadResult (System.UInt64& affectedRows, System.Int64& lastInsertId) [0x00000]
        |   at MySql.Data.MySqlClient.MySqlDataReader.GetResultSet () [0x00000]
        |   at MySql.Data.MySqlClient.MySqlDataReader.NextResult () [0x00000]
        | 2008-05-31 16:45:00,664 [1] ERROR MindTouch.Dream.DreamFeatureChain - handler for GET:local://c59d84bd8740440e87ebdf0cc11b...dream.in.host=<hostname>&dream.in.scheme=https&dream.in.origin=xxx.xxx.xxx.xxx&apikey=jQj4UUVK6Sr3iB74nj4XGPJ08aE7yRyW failed (set-deki-context)()
        | MySql.Data.MySqlClient.MySqlException: Table 'wikidb.bans' doesn't exist
        |   at MySql.Data.MySqlClient.MySqlStream.OpenPacket () [0x00000]
        |   at MySql.Data.MySqlClient.NativeDriver.ReadResult (System.UInt64& affectedRows, System.Int64& lastInsertId) [0x00000]
        |   at MySql.Data.MySqlClient.MySqlDataReader.GetResultSet () [0x00000]
        |   at MySql.Data.MySqlClient.MySqlDataReader.NextResult () [0x00000]

        $wgDBserver
        $wgDBname
        $wgDBadminuser
        $wgDBadminpassword
        $wgEmergencyContact
        $wgPasswordSender

    o Add 'db-user' and 'db-password' parameters into each wiki's entry like below.

        | This avoid following error when run the update-db.php
        |
        | Sorry! The wiki is experiencing some technical difficulties, and cannot contact the database server. <br />
        | Access denied for user 'wikiuser'@'localhost' (using password: YES)

    $wgWikis = array(
            'foo.example.com' => array(
                    'db-server' => 'localhost',
                    'db-port' => '3306',
                    'db-catalog' => 'wikidb',
                    'db-user' => 'root',
                    'db-password' => 'root'
                    ),
            'bar.example.com' => array(
                    'db-server' => 'localhost',
                    'db-port' => '3306',
                    'db-catalog' => 'wikiwhql',
                    'db-user' => 'root',
                    'db-password' => 'root'
                    ),
            'baz.example.com' => array(
                    'db-server' => 'localhost',
                    'db-port' => '3306',
                    'db-catalog' => 'wikibmlinks',
                    'db-user' => 'root',
                    'db-password' => 'root'
                    ),
    );


    --------------------------------
    Run DB Update Script
    --------------------------------

    # cd /var/www/dekiwiki/maintenance

    # php update-db.php

    Updating wikidb on localhost
    sprocs update complete
    Applying misc database updates...done
    cleanup up special pages
    anonymous user updated for all tables
    added 'languages' config key
    Admin username to config table for system administration
    Done.


    (NOTE) If you run update-db.php for multi-tenant Deki, you will see following message:

    # php update-db.php

    Updating wikidb on localhost:3306
    permission system DB upgrade has already been performed.
    sprocs update complete
    Applying misc database updates...done
    cleanup up special pages
    anonymous user updated for all tables
    added 'languages' config key

    Updating <dbWikiUser> on localhost:3306
    permission system DB upgrade has already been performed.
    sprocs update complete
    Applying misc database updates...done
    cleanup up special pages
    anonymous user updated for all tables
    added 'languages' config key

    Done.


    --------------------------------
    Clean Up The Skins Cache Folder
    --------------------------------

    Please make sure your skins/common/cache folder can be written by the apache user

    Enter the following lines to clear the skins cache:

    # cd /var/www/dekiwiki/skins/common/cache/
    # rm -rf cache-*
    # ls -laR .

    --------------------------------
    Start Dekihost
    --------------------------------

    # /etc/init.d/dekiwiki start
    # ps -ef |grep "mono"
    webservd 22445 22441   4 14:48:53 pts/3       0:05 /opt/mono/bin/mono /var/www/dekiwiki/bin/mindtouch.host.exe apikey T0d2rfOe5OG7
    webservd 22441     1   0 14:48:52 pts/3       0:00 -sh -c /opt/mono/bin/mono /var/www/dekiwiki/bin/mindtouch.host.exe apikey T0d2r


    # tail -f /var/log/dekiwiki/deki-api.log
    -------------------- shutting down
    Sun Microsystems Inc.   SunOS 5.10      Generic January 2005
    -------------------- initializing
    -------------------- initialized 2.198169 secs
    -------------------- ready 2.0851 secs
    ^C (Press [Ctrl]+[C] simultaneously)


    --------------------------------
    Start Apache server
    --------------------------------

    # svcadm enable svc:/network/http:apache2
    # ps -ef | grep httpd


    --------------------------------
    Verification MindTouch Deki
    --------------------------------
    Launch a web browser, and clear the browser-cache.

    Connect to your wiki.

    http://<hostname>/index.php

    Click on Tools, then select on About to verify that you are using version 8.08 .


    --------------------------------
    Rebuild search index
    --------------------------------
    In the wiki, click on Tools, then Control Panel, and then Site Settings. Click Rebuild search index to re-index the wiki.


    --------------------------------
    Preserve backup file to safe place
    --------------------------------

    mv -i $HOME/deki_backup/ $HOME/deki_backup_8.05.x_jaycooke/
    chmod 400 $HOME/deki_backup_8.05.x_jaycooke/*
    chown root:root $HOME/deki_backup_8.05.x_jaycooke/*


    --------------------------------
    Troubleshooting : Update script location for extenstions
    --------------------------------

    If your Deki are inside firewall, you will see many of errors in the /var/log/dekiwiki/deki-api.log log-file like below, when you connect to your Deki.

    2008-09-08 13:10:14,160 [7] ERROR MindTouch.Dream.Http.HttpPlugFactory - HandleInvoke@EndGetResponse(GET,http://localhost/@script/accuweather.xml)
    System.Net.WebException: Error: ConnectFailure
      at System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) [0x00000]
      at MindTouch.Dream.Http.HttpPlugFactory+<HandleInvoke>d__d.MoveNext () [0x00000]
    2008-09-08 13:10:14,197 [7] ERROR MindTouch.Dream.DreamFeatureChain - handler for PUT:local://3d3b0971097341ff9b4d06225514...ault/2/@config failed (MindTouch.Deki.DekiScriptHostService!PutConfig)()
    System.ArgumentException: invalid extension manifest
      at MindTouch.Deki.DekiScriptHostService+<LoadScript>d__16.MoveNext () [0x00000]
      at MindTouch.Dream.Coroutine.Iterate_Helper (IEnumerator`1 coroutine, MindTouch.Dream.TaskBehavior behavior) [0x00000]
      at (wrapper delegate-invoke) System.MulticastDelegate:invoke_void_IEnumerator`1_TaskBehavior (System.Collections.Generic.IEnumerator`1,MindTouch.Dream.TaskBehavior)
      at System.VoidClosure`2[System.Collections.Generic.IEnumerator`1[MindTouch.Dream.IYield],MindTouch.Dream.TaskBehavior].Closure () [0x00000]
      at (wrapper delegate-invoke) System.MulticastDelegate:invoke_void ()
      at MindTouch.Dream.Task.Execute (System.VoidHandler handler, MindTouch.Dream.TaskBehavior behavior) [0x00000]

    To fix this, do the following.

    (1) Login to Deki as "Admin"
    (2) Goto Tools > Control Panel > System Settings > Extensions
    (3) Find extensions that "Status" shown RED "Stopped", then change the manifest from default to path to proxy, as below:

        Name: DHtml
        From: http://scripts.mindtouch.com/dhtml.xml
        To:   http://localhost/@script/dhtml.xml

    All the extensions I do this work are added as appendix.

    (4) Restart deki-api process

    # /etc/init.d/dekiwiki start

     

     --------------------------------
    APPENDIX: script location list for Deki inside firewall
    --------------------------------

    AccuWeather
    http://scripts.mindtouch.com/accuweather.xml
    http://localhost/@script/accuweather.xml

    DHtml
    http://scripts.mindtouch.com/dhtml.xml
    http://localhost/@script/dhtml.xml

    Digg
    http://scripts.mindtouch.com/digg.xml
    http://localhost/@script/digg.xml

    Flickr
    http://scripts.mindtouch.com/flickr.xml
    http://localhost/@script/flickr.xml

    FlowPlayer
    http://scripts.mindtouch.com/flowplayer.xml
    http://localhost/@script/flowplayer.xml

    Gravatar
    http://scripts.mindtouch.com/gravatar.xml
    http://localhost/@script/gravatar.xml

    JS Kit
    http://scripts.mindtouch.com/jskit.xml
    http://localhost/@script/jskit.xml

    LinkedIn
    http://scripts.mindtouch.com/linkedin.xml
    http://localhost/@script/linkedin.xml

    PageBus
    http://scripts.mindtouch.com/pagebus.xml
    http://localhost/@script/pagebus.xml

    Scratch
    http://scripts.mindtouch.com/scratch.xml
    http://localhost/@script/scratch.xml

    Skype
    http://scripts.mindtouch.com/skype.xml
    http://localhost/@script/skype.xml

    Spoiler
    http://scripts.mindtouch.com/spoiler.xml
    http://localhost/@script/spoiler.xml

    ThinkFree
    http://scripts.mindtouch.com/thinkfree.xml
    http://localhost/@script/thinkfree.xml

    Twitter
    http://scripts.mindtouch.com/twitter.xml
    http://localhost/@script/twitter.xml

    WidgetBox
    http://scripts.mindtouch.com/widgetbox.xml
    http://localhost/@script/widgetbox.xml

    YUI Media Player
    http://scripts.mindtouch.com/yuimediaplayer.xml
    http://localhost/@script/yuimediaplayer.xml
     

    Tag page
    You must login to post a comment.

    Copyright © 2011 MindTouch, Inc. Powered by