Disclaimer: This page is intended for a Solaris-savvy (geeky) audience. ;)
IMPORTANT NOTICE
This guide provides steps for installing Deki Wiki Hayes from source code. There may be hurdles to install Deki Wiki on Solaris, but may passible if you sucess.
Install the Solaris 8 Operating Environment.
Following installation condition are shown as referencs, which installed to testing environment.
Software media
Solaris 8 H/W 7/03 CD-ROM
Machine
Solaris Operating Environment
Follow to next instruction to use the Blastware.org.
http://www.blastwave.org/howto_S8.html
All Steps (Step 0 to Step 7 and in red frame security concerns) in this document needed, and processed without problem.
Main task list is here:
Create /.bash_profile file to build the Deki Wiki world.
# cat /.bash_profile export PATH=/opt/csw/bin:/opt/csw/gcc3/bin:/opt/csw/mysql5/bin:/opt/csw/php5/bin:\ /usr/sbin:/usr/bin:/usr/dt/bin:/usr/openwin/bin:/usr/ucb:/usr/ccs/bin export LD_LIBRARY_PATH=/opt/csw/lib:/opt/csw/mysql5/lib:/opt/csw/php5/lib:/usr/lib export MAN_PATH=/opt/csw/man:/usr/man export PAGER=/opt/csw/bin/less export LDFLAGS="-L/opt/csw/lib" export CPPFLAGS="-I/opt/csw/include -I/usr/include" export XFILESEARCHPATH=/opt/csw/lib/X11/%T/%N%C:/usr/openwin/lib/X11/%T/%N%C alias make=gmake alias as=gas
Afer this point I use /bin/bash as command line interpreter.
bash -login
(OPTIONAL)
Create $HOME/.wgetrc to specify wget defaults. For example put proxy definition on corporate network.
# cat /.wgetrc http_proxy=http://proxy.mydomain.com:8080 ftp_proxy=http://proxy.mydomain.com:8080
NOTE:
# pkg-get -i less # pkg-get -i curl # pkg-get -i binutils # pkg-get -i bison # pkg-get -i flex # pkg-get -i gawk # pkg-get -i gmake # pkg-get -i gsed # pkg-get -i gtar # pkg-get -i gcc3 # pkg-get -i ggrep # pkg-get -i glib # pkg-get -i glib2 # pkg-get -i gtk # pkg-get -i pkgconfig
The Mono daily package can obtain from the Mono-Project site.
You should build the Mono from source code as new as possible because 1.2.6-release of Mono doe's not work with Deki Wiki.
There are two pages to get the Mono sources, but according to my experience,
the forefront of (1)"Mono Daily Packages" obtain easy success,
but in the latter case (2)"Mono trunk Sources" I failed by core dumped error.
So that I recommend that you should be select (1)"Mono Daily Packages" expect as otherwise your need.
(1)Mono Daily Packages
http://mono.ximian.com/daily/
(2)Mono trunk Sources
http://mono.ximian.com/monobuild/snapshot/sources-trunk/
NOTE: There are helpful information to build the Mono from source.
Jonel Rienton's Blog > Solaris 10 x86 and Mono (4/01/2006)
http://blogs.rientongroup.com/jonel/2005/04/solaris-10-x86-and-mono.aspx
Extract Mono from archive, and run confgure on your working directory.
Please replace the Mono archive name with the latest name.
# cd / # wget http://mono.ximian.com/daily/mono-20080223.tar.bz2 # bzip2 -d < mono-20080223.tar.bz2 | gtar xf - # cd mono-20080223/ # MAKE=gmake AR=gar RANLIB=granlib STRIP=gstrip AS=gas CC=/opt/csw/gcc3/bin/gcc CFLAGS="-g -O2" \ ./configure --prefix=/opt/csw \ --with-tls=pthread --with-includes=/opt/csw/include/ --with-libs=/opt/csw/lib/ (snip) mcs source: $(top_srcdir)/mcs olive source: GC: included TLS: pthread SIGALTSTACK: yes Engine: Building and using the JIT 2.0 Beta: yes 2.1 Alpha: yes JNI support: IKVM Native libgdiplus: assumed to be installed zlib: system zlib oprofile: no
Then make the Mono at the top of source tree.
This task take an hour, so you can take a coffee or cup of tea :)
# gmake (snip) sed -e 's,@''bindir@,/opt/csw/bin,g' -e 's,@''plat_bindir@,/opt/csw/bin,g' -e 's,@' 'mono_instdir@,/opt/csw/lib/mono,g' -e 's,@''gtkdir@,,g' -e 's,@''mono_interp@,mono --debug,g' -e 's,@''framework_version@,2.0,g' -e 's,@''exe_name@,nunit-console,g' . /script.in > nunit-console2.tmp mv nunit-console2.tmp nunit-console2 gmake[2]: Leaving directory `/mono-20080223/scripts' Making all in man gmake[2]: Entering directory `/mono-20080223/man' gmake[2]: Nothing to be done for `all'. gmake[2]: Leaving directory `/mono-20080223/man' Making all in samples gmake[2]: Entering directory `/mono-20080223/samples' gmake[2]: Nothing to be done for `all'. gmake[2]: Leaving directory `/mono-20080223/samples' Making all in web gmake[2]: Entering directory `/mono-20080223/web' gmake[2]: Nothing to be done for `all'. gmake[2]: Leaving directory `/mono-20080223/web' Making all in msvc gmake[2]: Entering directory `/mono-20080223/msvc' gmake[2]: Nothing to be done for `all'. gmake[2]: Leaving directory `/mono-20080223/msvc' gmake[2]: Entering directory `/mono-20080223' gmake[2]: Leaving directory `/mono-20080223' gmake[1]: Leaving directory `/mono-20080223'
NOTE:
Then run self tests.
# gmake CC=gcc check (snip) Testing finalizer-abort.exe... Abort - core dumped failed 34304 (134) signal (0). Testing finalizer-exception.exe... Abort - core dumped failed 34304 (134) signal (0). Testing finalizer-exit.exe... pass. (snip) Testing invalid-token.exe... pass. 231 test(s) passed. 2 test(s) did not pass. Failed tests: finalizer-abort.exe finalizer-exception.exe gmake[4]: *** [testjit-default] Error 1 gmake[4]: Leaving directory `/mono-20080223/mono/tests' gmake[3]: *** [check-am] Error 2 gmake[3]: Leaving directory `/mono-20080223/mono/tests' gmake[2]: *** [check-recursive] Error 1 gmake[2]: Leaving directory `/mono-20080223/mono/tests' gmake[1]: *** [check-recursive] Error 1 gmake[1]: Leaving directory `/mono-20080223/mono' gmake: *** [check-recursive] Error 1 #
OOPS ! As shown above, self tests was NOT success, but I can't fix it. :(
So that, go ahead !
Install Mono into your Solaris box.
# gmake install # . /.bash_profile # ldd /opt/csw/bin/mono libgthread-2.0.so.0 => /opt/csw/lib/libgthread-2.0.so.0 libthread.so.1 => /usr/lib/libthread.so.1 libglib-2.0.so.0 => /opt/csw/lib/libglib-2.0.so.0 libintl.so.3 => /opt/csw/lib/libintl.so.3 libiconv.so.2 => /opt/csw/lib/libiconv.so.2 libc.so.1 => /usr/lib/libc.so.1 librt.so.1 => /usr/lib/librt.so.1 libdl.so.1 => /usr/lib/libdl.so.1 libsocket.so.1 => /usr/lib/libsocket.so.1 libnsl.so.1 => /usr/lib/libnsl.so.1 libxnet.so.1 => /usr/lib/libxnet.so.1 libpthread.so.1 => /usr/lib/libpthread.so.1 libm.so.1 => /usr/lib/libm.so.1 libsunmath.so.1 => /opt/csw/lib/libsunmath.so.1 libaio.so.1 => /usr/lib/libaio.so.1 libmp.so.2 => /usr/lib/libmp.so.2 /usr/platform/SUNW,Sun-Blade-1000/lib/libc_psr.so.1 # /opt/csw/bin/mono -V Mono JIT compiler version 20080223 (tarball) Copyright (C) 2002-2007 Novell, Inc and Contributors. www.mono-project.com TLS: normal GC: Included Boehm (with typed GC) SIGSEGV: normal Notification: Thread + polling Architecture: sparc Disabled: none # /opt/csw/bin/gmcs --version Mono C# compiler version 2008.223.0.0 # cd /
pkg-get -i libexif pkg-get -i libungif cd / wget http://go-mono.com/sources/libgdiplus/libgdiplus-1.2.6.tar.bz2 bzip2 -d < libgdiplus-1.2.6.tar.bz2 | gtar xf - cd libgdiplus-1.2.6/ GREP=ggrep MAKE=gmake AR=gar RANLIB=granlib STRIP=gstrip AS=gas CC=/opt/csw/gcc3/bin/gcc \ ./configure --prefix=/opt/csw --with-includes=/opt/csw/include/ --with-libs=/opt/csw/lib/ gmake gmake install
I use mysql5-5.0.51 package.
# pkg-get -i mysql5
Following packages ware installed:
First time installation I use quick_start-csw command to create initial database.
# /opt/csw/mysql5/share/mysql/quick_start-csw This is the blastwave quick start script to setup a MySQL5 database directory. The base directory is /opt/csw/mysql5. The default database directory is /opt/csw/mysql5/var. If you have not setup a partition for the database and you want one; now is a good time to exit this script and create and mount the partition. If you have not setup a my.cnf file and you do not want one of the sample files; now is a good time to exit and create the file /opt/csw/mysql5/my.cnf. Data directory: The default is /opt/csw/mysql5/var. Accept the default or enter a directory [?,q] my.cnf pathname: The default is either to use the supplied file in the base directory or to create one in the base directory from the small memory footprint sample. If your enter a pathname, it will be used to create the options file in the base directory. Accept the default or enter a pathname [?,q] Using /opt/csw/mysql5/share/mysql/my-small.cnf to create the options file. data directory is /opt/csw/mysql5/var Continue with installation or quit [y,n,?,q] Setting up the database Creating MySQL core database in /opt/csw/mysql5/var ### The following messages are from mysql_install_db. /opt/csw/mysql5/bin/mysql_install_db: !: not found /opt/csw/mysql5/bin/mysql_install_db: !: not found Installing MySQL system tables... OK Filling help tables... OK To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /opt/csw/mysql5/bin/mysqladmin -u root password 'new-password' /opt/csw/mysql5/bin/mysqladmin -u root -h localhost password 'new-password' Alternatively you can run: /opt/csw/mysql5/bin/mysql_secure_installation which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers. See the manual for more instructions. You can start the MySQL daemon with: cd /opt/csw/mysql5 ; /opt/csw/mysql5/bin/mysqld_safe & You can test the MySQL daemon with mysql-test-run.pl cd mysql-test ; perl mysql-test-run.pl Please report any problems with the /opt/csw/mysql5/bin/mysqlbug script! The latest information about MySQL is available on the web at http://www.mysql.com Support MySQL by buying support/licenses at http://shop.mysql.com ### The following messages are from quick_start-csw. See /opt/csw/mysql5/share/mysql/doc/README.CSW for packaging changes. Please ignore references to starting mysqld_safe in the messages above. These messages are from mysql_install_db. See the following for starting CSWmysql5. To start mysqld; run `/etc/init.d/cswmysql start` on Solaris 9 or earlier
Start MySQL daemon.
# /etc/init.d/cswmysql5 start Starting mysqld: [ OK ] Starting mysqld daemon with databases from /opt/csw/mysql5/var
(OPTIONAL but RECOMMENDED)
Change the "MySQL root" user password if you need.
/opt/csw/mysql5/bin/mysqladmin -u root password new-password
# pkg-get -i apache2
Following packages ware installed:
# pkg-get -i ap2_modphp5
Following package ware installed:
# pkg-get -i php5_gd # pkg-get -i php5_curl # pkg-get -i php5_mysql # pkg-get -i php5_mcrypt # pkg-get -i php5_mhash
Following package ware installed:
Install PEAR and DekiWiki required modules
# pear config-set http_proxy http://proxy.mydomain.com:8080 config-set succeeded # pear channel-update pear.php.net Updating channel "pear.php.net" Update of Channel "pear.php.net" succeeded # cd /tmp # wget http://pear.php.net/go-pear.phar # /opt/csw/php5/bin/php go-pear.phar Below is a suggested file layout for your new PEAR installation. To change individual locations, type the number in front of the directory. Type 'all' to change all of them or simply press Enter to accept these locations. 1. Installation base ($prefix) : /opt/csw/php5 2. Temporary directory for processing : /tmp/pear/install 3. Temporary directory for downloads : /tmp/pear/install 4. Binaries directory : /opt/csw/php5/bin 5. PHP code directory ($php_dir) : /opt/csw/php5/lib/php 6. Documentation directory : /opt/csw/php5/docs 7. Data directory : /opt/csw/php5/data 8. User-modifiable configuration files directory : /opt/csw/php5/cfg 9. Public Web Files directory : /opt/csw/php5/www 10. Tests directory : /opt/csw/php5/tests 11. Name of configuration file : /opt/csw/php5/etc/pear.conf 1-11, 'all' or Enter to continue: (hit a [Return] key) (snip) # pear install XML_RPC # pear install Cache_Lite # pear list Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.3.2 stable Cache_Lite 1.7.2 stable Console_Getopt 1.2.3 stable PEAR 1.7.1 stable Structures_Graph 1.0.2 stable XML_RPC 1.5.1 stable
(OPTIONAL but RECOMMENDED)
Update your PHP error reporting level to show all errors, except for notices and coding standards warnings
# cp -pi /opt/csw/php5/lib/php.ini /opt/csw/php5/lib/php.ini.orig # vi /opt/csw/php5/lib/php.ini edit as follows from: error_reporting = E_ALL allow_call_time_pass_reference = Off to: error_reporting = E_ALL & ~E_NOTICE allow_call_time_pass_reference = On
The ImageMagick - Image Manipulation Tool - required for Deki Wiki to create thumbnail of pucture.
# pkg-get -i imagemagick
Following package ware installed:
Some package are required for Deki Wiki to convert a Page to PDF file.
# pkg-get -i curl # pkg-get -i htmldoc # pkg-get -i aspell # pkg-get -i aspellen # pkg-get -i wv2
The Subversion version control are required for Deki Wiki to get the latest information for Deki Wiki from the Internet.
# pkg-get -i subversion
Install the html2ps which need to convert Deki Wiki's page to PDF file.
# cd /tmp # wget http://user.it.uu.se/~jan/html2ps-1.0b5.zip # unzip html2ps-1.0b5.zip # cd html2ps-1.0b5/ # perl install Do you want to proceed with the installation? [y]: Searching for Image/Magick.pm: found (/opt/csw/lib/perl/site_perl/Image/Magick.pm) Searching for LWP/UserAgent.pm: not found Searching for ImageMagick: found (/opt/csw/bin/mogrify) Searching for djpeg: found (/opt/csw/bin/djpeg) Searching for TeX: not found Searching for dvips: not found Searching for Ghostscript: found (/opt/csw/bin/gs) Searching for weblint: not found Searching for lynx: not found Searching for wget: found (/opt/csw/bin/wget) By default all files will be installed in subdirectories 'bin', 'lib', and 'man' in a common directory. Is this OK? [y]: Enter the name of this directory (full path) [/usr/local]: /opt/csw Created directory /opt/csw/lib/html2ps Enter the default paper type, possible choices are: A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, letter, legal, arche, archd, archc, archb, archa, flsa, flse, halfletter, 11x17, ledger, other [A4]: Installing html2ps in /opt/csw/bin Installing html2psrc in /opt/csw/lib/html2ps Installing html2ps.1 in /opt/csw/man/man1 Installing html2psrc.5 in /opt/csw/man/man5 Installing hyphen.tex in /opt/csw/lib/html2ps Installing html2ps.html in /opt/csw/lib/html2ps # ls -l html2ps.html html2ps.ps -rw-r--r-- 1 root other 62879 Dec 11 2005 html2ps.html -rw-r--r-- 1 root other 98867 Mar 1 22:29 html2ps.ps # which html2ps /opt/csw/bin/html2ps
Download Hayes build from one of the following sources.
Extract the archive to your home directory:
cd $HOME wget http://jaist.dl.sourceforge.net/sourceforge/dekiwiki/Deki_Wiki_1.8.3c_Hayes_source.tar.gz gtar xfvz Deki_Wiki_1.8.3c_Hayes_source.tar.gz cd Deki_Wiki_1.8.3c_Hayes_source
Copy web files to your apache share directory.
NOTE:
The Blastwave.com 's Apache package configured to use "/opt/csw/apache2/share/htdocs" as DocumentRoot, but I choose "/opt/csw/apache2/share/deki-hayes" to DocumentRoot for Deiki Wiki's exclusive use.
mkdir /opt/csw/apache2/share/deki-hayes cp -r web/* /opt/csw/apache2/share/deki-hayes chown -R nobody:nogroup /opt/csw/apache2/share/deki-hayes
(OPTIONAL)
If you use Internet Explorer 6.0 browser, I recommend to do next ops to avoid link error for Deiki Wiki 1.8.3c.
cd /opt/csw/apache2/share/deki-hayes/skins/ cp common/icons/icon-*.gif ace/neutral/ cp common/icons/icon-*.gif ace/blue/ cp common/icons/anim-save.gif ace/neutral/ cp common/icons/anim-save.gif ace/blue/
Deki Wiki contains a Apache configuration file named "deki-apache.conf".
I include this file (deki-apache.conf) into the Apache bundled configuration file (httpd.conf).
Copy the "deki-apache.conf" file from source onto Apache configuration direcory.
cd $HOME/Deki_Wiki_1.8.3c_Hayes_source cp -pi ./config/deki-apache.conf /opt/csw/apache2/etc/deki-apache.conf.orig cp -pi ./config/deki-apache.conf /opt/csw/apache2/etc/deki-apache.conf
Edit and Change the "deki-apache.conf"file according to your setup:
vi /opt/csw/apache2/etc/deki-apache.conf diff /opt/csw/apache2/etc/deki-apache.conf.orig /opt/csw/apache2/etc/deki-apache.conf 2c2 < ServerName deki-hayes --- > ServerName hostname.mydomain.com 4,5c4,5 < ErrorLog /var/log/apache2/error.log < CustomLog /var/log/apache2/access.log common --- > ErrorLog /opt/csw/apache2/var/log/error_log > CustomLog /opt/csw/apache2/var/log/access_log common 7c7 < DocumentRoot "/var/www/deki-hayes" --- > DocumentRoot "/opt/csw/apache2/share/deki-hayes"
Add the Proxy definition to end of "deki-apache.conf"file.
<Proxy *> AddDefaultCharset off Order deny,allow Deny from all Allow from all </Proxy>
As a result, "deki-apache.conf"seems to like this.
cat /opt/csw/apache2/etc/deki-apache.conf
<VirtualHost *>
ServerName hostname.mydomain.com
ErrorLog /opt/csw/apache2/var/log/error_log
CustomLog /opt/csw/apache2/var/log/access_log common
DocumentRoot "/opt/csw/apache2/share/deki-hayes"
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^/$ /index.php?title= [L,NE]
RewriteCond %{REQUEST_URI} ^/@gui/[^.]+$
RewriteRule ^/@gui/(.*)$ /proxy.php?path=$1 [L,QSA,NE]
RewriteCond %{REQUEST_URI} !^/(@api|editor|skins|config|@gui)/
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_URI} !^/favicon\.ico$
RewriteCond %{REQUEST_URI} !^/robots\.txt$
RewriteCond %{QUERY_STRING} ^$ [OR] %{REQUEST_URI} ^/Special:Search
RewriteRule ^/(.*)$ /index.php?title=$1 [L,QSA,NE]
# deki-api uses encoded slashes in query parameters so AllowEncodedSlashes must be On
AllowEncodedSlashes On
# mod_proxy rules
ProxyPass /@api http://localhost:8081 retry=1
ProxyPassReverse /@api http://localhost:8081
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
</VirtualHost>
<Proxy *>
AddDefaultCharset off
Order deny,allow
Deny from all
Allow from all
</Proxy>
The deki-api is a .NET application which runs under the Mono runtime. deki-api runs as a standalone mono application which uses MindTouch Dream's built-in webserver. mod_proxy proxy is used to proxy requests from apache to deki-api.
Edit the Apache root (bundled) configration file to lnclude "deki-apache.conf" file, and enable Apache modules required by Deki Wiki.
cp -pi /opt/csw/apache2/etc/httpd.conf /opt/csw/apache2/etc/httpd.conf.orig vi /opt/csw/apache2/etc/httpd.conf (1) add next two lines to this file near end of the file. # Deki Wiki settings Include etc/deki-apache.conf (2) enable next three lines LoadModule proxy_module libexec/mod_proxy.so LoadModule proxy_http_module libexec/mod_proxy_http.so LoadModule rewrite_module libexec/mod_rewrite.so (3) change DocumentRoot and the web root Directory to point directory Deki Wiki web files. DocumentRoot "/opt/csw/apache2/share/deki-hayes" <Directory "/opt/csw/apache2/share/deki-hayes"> (4) So that diffential between original file and edited file is: diff /opt/csw/apache2/etc/httpd.conf.orig /opt/csw/apache2/etc/httpd.conf 95c95 < #LoadModule proxy_module libexec/mod_proxy.so --- > LoadModule proxy_module libexec/mod_proxy.so 98c98 < #LoadModule proxy_http_module libexec/mod_proxy_http.so --- > LoadModule proxy_http_module libexec/mod_proxy_http.so 173c173,174 < DocumentRoot "/opt/csw/apache2/share/htdocs" --- > # DocumentRoot "/opt/csw/apache2/share/htdocs" > DocumentRoot "/opt/csw/apache2/share/deki-hayes" 200c201,202 < <Directory "/opt/csw/apache2/share/htdocs"> --- > # <Directory "/opt/csw/apache2/share/htdocs"> > <Directory "/opt/csw/apache2/share/deki-hayes"> 472a475,477 > # Deki Wiki settings > Include etc/deki-apache.conf >
Restart Apache to enable the module and apply the new settings
/etc/rc3.d/S50cswapache2 graceful
At this time, Apache's error_log file should not report any errors.
# tail -f /opt/csw/apache2/var/log/error_log [Sun Feb 24 15:07:21 2008] [notice] Digest: generating secret for digest authentication ... [Sun Feb 24 15:07:21 2008] [notice] Digest: done [Sun Feb 24 15:07:21 2008] [notice] Apache/2.2.6 (Unix) PHP/5.2.4 configured -- resuming normal operations
NOTE :
To run syntax check for Apache configuration file, use options of Apache server.
(1) to run syntax check for config files # /opt/csw/apache2/sbin/httpd -t Syntax OK (2) to show parsed settings # /opt/csw/apache2/sbin/httpd -S VirtualHost configuration: wildcard NameVirtualHosts and _default_ servers: *:* hostname.mydomain.com (/opt/csw/apache2/etc/deki-apache.conf:1) Syntax OK (3) to show all loaded modules # /opt/csw/apache2/sbin/httpd -M (snip)
Create the deki-api logfile with null contents which writable to Apache user.
# touch /var/log/deki-api.log # chown nobody:nogroup /var/log/deki-api.log # chmod 644 /var/log/deki-api.log # ls -l /var/log/deki-api.log -rw-r--r-- 1 nobody nogroup 0 Feb 24 15:33 /var/log/deki-api.log
Create the Mono's ".wapi" directory, then change the owner to Apache user.
NOTE:
# mkdir /.wapi # chown nobody:nogroup /.wapi # ls -la /.wapi total 100 drwxr-xr-x 2 nobody nogroup 512 Feb 24 11:08 . drwxr-xr-x 27 root root 1024 Feb 24 14:20 ..
Copy and Edit the config/dekihost init script. This script can be used to test the status of the deki-api or start/stop the "mindtouch.host.sh" (deki-api) process.
Change the following to match your configuration:
NOTE:
It is generally used that "nobody" on Solaris, but "nobody" has no
shell definition at /etc/password file for security reason, so that
default shell (/usr/bin/sh) is used.
And then "nobody" has the "/" (root directory) as home directory, therefor "nobody" sharing dot-files like "/.bash_profile", "/.bashrc", "/.profile" with super-user ("root").
# cd $HOME/Deki_Wiki_1.8.3c_Hayes_source # cp -pi config/dekihost /etc/init.d/dekihost # chown root:root /etc/init.d/dekihost # chmod 744 /etc/init.d/dekihost # ln -s /etc/init.d/dekihost /etc/rc3.d/S92dekihost # ls -l /etc/init.d/dekihost /etc/rc3.d/S92dekihost -rwxr--r-- 1 root root 961 Feb 1 05:58 /etc/init.d/dekihost lrwxrwxrwx 1 root other 20 Mar 1 17:28 /etc/rc3.d/S92dekihost -> /etc/init.d/dekihost # vi /etc/init.d/dekihost # diff config/dekihost /etc/init.d/dekihost 4c4,5 < DEKI_PATH=/var/www/deki-hayes --- > # DEKI_PATH=/var/www/deki-hayes > DEKI_PATH=/opt/csw/apache2/share/deki-hayes 7c8,9 < DEKI_SERVERNAME=deki-hayes --- > # DEKI_SERVERNAME=deki-hayes > DEKI_SERVERNAME=localhost 13c15 < su -s /bin/bash www-data -- $DEKI_PATH/bin/mindtouch.host.sh start --- > su - nobody -c "$DEKI_PATH/bin/mindtouch.host.sh start" 19c21 < su -s /bin/bash www-data -- $DEKI_PATH/bin/mindtouch.host.sh stop --- > su - nobody -c "$DEKI_PATH/bin/mindtouch.host.sh stop" 28d29 < DREAM_OK=`curl -m 3 -s http://$DEKI_SERVERNAME/@api/host/test | grep "<status>200</status>" | wc -l` 30c31,32 < if [ $DREAM_OK = 1 ]; then --- > curl -m 3 -s http://$DEKI_SERVERNAME/@api/host/test | grep "<status>200</status>" > /dev/null > if [ $? = 0 ]; then
Then /etc/init.d/dekihost will be:
#!/bin/bash
# path to your wiki
# DEKI_PATH=/var/www/deki-hayes
DEKI_PATH=/opt/csw/apache2/share/deki-hayes
# this should match your Apache ServerName directive
# DEKI_SERVERNAME=deki-hayes
DEKI_SERVERNAME=localhost
prog="MindTouch Deki Host Service"
start(){
if [ -f $DEKI_PATH/bin/mindtouch.host.sh ]; then
su - nobody -c "$DEKI_PATH/bin/mindtouch.host.sh start"
fi
}
stop(){
if [ -f $DEKI_PATH/bin/mindtouch.host.sh ]; then
su - nobody -c "$DEKI_PATH/bin/mindtouch.host.sh stop"
fi
}
status(){
testDream
}
testDream() {
echo -n "Dream @ (http://$DEKI_SERVERNAME) "
curl -m 3 -s http://$DEKI_SERVERNAME/@api/host/test | grep "<status>200</status>" > /dev/null
if [ $? = 0 ]; then
echo '[OK]'
else
echo '[FAILED']
fi
}
restart(){
start
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
exit 1
esac
exit $?
Create a empty folder to store search index file.
mkdir -p /opt/csw/apache2/share/deki-hayes/bin/cache/luceneindex/ chown -R nobody:nogroup /opt/csw/apache2/share/deki-hayes/bin/cache/luceneindex/ chmod -R 775 /opt/csw/apache2/share/deki-hayes/bin/cache/luceneindex/
Launch a browser and go to the installer:
http://<hostname>/config/index.php
"DEKI WIKI Installation" page will be shown in your browser.
Environmental checking are all well and fine except "html2ps" not found warning.
Checking environment...
If you run into installation problems, please include the following lines.
o PHP 5.2.4 installed.
o Found database drivers for: MySQL.
o PHP server API is apache2handler.
o Have XML / Latin1-UTF-8 conversion support.
o Session save path (/tmp) appears to be valid.
o PHP's memory_limit is 128M.
o Apache version Apache/2.2.6.
o apache mod_rewrite enabled.
o apache mod_proxy enabled.
o MySQL enabled, client version: 5.0.51.
o curl enabled, version: 7.18.0.
o Found ImageMagick: /opt/csw/bin/convert; image thumbnailing will be enabled.
o Found ImageMagick: /opt/csw/bin/identify; image thumbnailing will be enabled.
o Found GD graphics library.
o Found mono: /opt/csw/bin/mono.
o Found html2ps: /opt/csw/bin/html2ps
o Found ps2pdf: /opt/csw/bin/ps2pdf.
o Installation directory: /opt/csw/apache2/share/htdocs/deki-hayes.
Environment checked. You can install Deki Wiki.
OK !
Enter required information for Deki Wiki as below:
Deki Wiki Basic Setup Site name: Deki Wiki System e-mail: your e-mail Admin e-mail: your e-mail Admin username: Admin Admin password: ***** Confirm password: ***** Full Name: (Optional) Phone: (Optional) [X] Receive updates and notifications from MindTouch about Deki Wiki Database Configuration Database type: MySQL Database host: localhost Database name: wikidb DB username: wikiuser DB password: ***** DB password confirm: ***** [X] My database user doesn't exist Superuser name: root Superuser password: ***** Deki API Configuration API Key: ****************************** Advanced Configuration ImageMagick convert: /opt/csw/bin/convert ImageMagick identify : /opt/csw/bin/identify
Fill in the required information and click "Install Deki Wiki !"
Performing installation... o Generating LocalSettings.php configuration file... o Database type: MySQL o Attempting to connect to database server as root...success. o Connected to 5.0.51 o Attempting to create database... o Created database wikidb o Creating tables... done. o Granting user permissions to wikiuser on wikidb...success. o Created sysop account Admin. o Inserting wgDekiApiKey into config table...done. o Setting storage path in config table...done. o Setting Site Name int config table...done. o Creating stored procedures... Done. o Creating LocalSettings.php...Done o Creating AdminSettings.php...Done o Creating mindtouch.deki.startup.xml...Done. o Creating mindtouch.host.sh...Done. Installation successful! But wait, you're not done yet! Please run the following commands manually from the command line to complete your installation: cd /opt/csw/apache2/share/deki-hayes/config mkdir /etc/dekiwiki chown www-data /etc/dekiwiki cp mindtouch.deki.startup.xml /etc/dekiwiki cp LocalSettings.php /opt/csw/apache2/share/deki-hayes/ cp AdminSettings.php /opt/csw/apache2/share/deki-hayes/ cp mindtouch.host.sh /opt/csw/apache2/share/deki-hayes/bin/ /etc/init.d/dekihost start You should change file permissions for LocalSettings.php, AdminSettings.php as required to prevent other users on the server reading passwords and altering configuration data.
Complete the installation by running the additional commands as instructed by the installer.
NOTE:
Don't run commands shown by browser, they are for Linux distribution and not for Solaris.
Run the next commands for Solaris.
(1) install derived files into suitable directory cd /opt/csw/apache2/share/deki-hayes/config/ ls -l mindtouch.deki.startup.xml LocalSettings.php AdminSettings.php mindtouch.host.sh -rw-rw-rw- 1 nobody nobody 68 Mar 1 18:49 AdminSettings.php -rw-rw-rw- 1 nobody nobody 881 Mar 1 18:49 LocalSettings.php -rw-rw-rw- 1 nobody nobody 6004 Mar 1 18:49 mindtouch.deki.startup.xml -rwxr-xr-x 1 nobody nobody 1302 Mar 1 18:49 mindtouch.host.sh mkdir /etc/dekiwiki chown nobody:nogroup /etc/dekiwiki cp -pi mindtouch.deki.startup.xml /etc/dekiwiki/ cp -pi LocalSettings.php /opt/csw/apache2/share/deki-hayes/ cp -pi AdminSettings.php /opt/csw/apache2/share/deki-hayes/ cp -pi mindtouch.host.sh /opt/csw/apache2/share/deki-hayes/bin/ chmod 644 /etc/dekiwiki/mindtouch.deki.startup.xml chmod 644 /opt/csw/apache2/share/deki-hayes/AdminSettings.php chmod 644 /opt/csw/apache2/share/deki-hayes/LocalSettings.php (2) modify mindtouch.host.sh to prepare environment for the Mono runtime cp -pi /opt/csw/apache2/share/deki-hayes/bin/mindtouch.host.sh \ /opt/csw/apache2/share/deki-hayes/bin/mindtouch.host.sh.orig vi /opt/csw/apache2/share/deki-hayes/bin/mindtouch.host.sh Insert next two lines under the first line of mindtouch.host.sh # setenv to run Mono . /.bash_profile diff /opt/csw/apache2/share/deki-hayes/bin/mindtouch.host.sh.orig \ /opt/csw/apache2/share/deki-hayes/bin/mindtouch.host.sh 1a2,5 > > # setenv to run Mono > . /.bash_profile >
Start the deki-api daemon.
# /etc/rc3.d/S92dekihost start Stopping MindTouch Deki API Starting MindTouch Deki API: mono /opt/csw/apache2/share/deki-hayes/bin/mindtouch.host.exe apikey gtG01EEqKkDmVFasUbXrV1i0sgP5tm05 script /etc/dekiwiki/mindtouch.deki.startup.xml path-prefix @api http-port 8081 ip localhost notty connect-limit -5 # ps -ef | grep mono nobody 6438 1 0 19:24:57 pts/2 0:05 mono /opt/csw/apache2/share/deki-hayes/bin/mindtouch.host.exe apikey gtG01EEqKk # ls -l /var/log/deki-api.log -rw-r--r-- 1 nobody nogroup 122 Mar 1 19:25 /var/log/deki-api.log
deki-api's Log file is here:
# tail -f /var/log/deki-api.log -------------------- initializing -------------------- initialized 1.744082 secs -------------------- ready 1.202315 secs
At this point you can talk to the deki-api daemon via the HTTP request.
deki-api daemon test:
# curl -i http://localhost:8081/deki/@about HTTP/1.1 200 OK Server: Dream-HTTPAPI/1.5.0.24910 Response-Uri: http://localhost:8081/deki/@about Content-Type: text/html; charset=utf-8 Date: Sat, 01 Mar 2008 10:29:45 GMT Content-Length: 50475 Connection: close <html xmlns="http://www.w3.org/1999/xhtml"><head><title>MindTouch Deki Wiki Service</title> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> (snip long HTML code) </body></html>
Verify your new Deki Wiki Hayes installation by launching a browser and going to the following URI:
http://<hostname>/index.php
If deki-api failed to load try the following:
* if you get "no default auth service" make sure your proxy settings are correct and that your firewall isn't blocking port 8081.
* if your database name has an underscore, you have get an "execute command denied" error. If so, create a new database user, grant them the right perms (CRUD), and set them as the database user in LocalSettings.php
* make sure the mono process is running
ps -ef | grep mindtouch.host
You should see a process like:
nobody 6526 1 0 19:39:32 pts/2 0:37 mono \ /opt/csw/apache2/share/deki-hayes/bin/mindtouch.host.exe apikey gtG01EEqKk
If you don't see the process above, check the dekiapi error logs (/opt/csw/apache2/share/deki-hayes/bin/logs/trace.log) for more details
You can restart the deki-api process by:
/etc/init.d/dekihost restart
* [Printing] PDF conversion does not work.. I have no identifiable cause of this issue yet.
* [About] Incorrect OS name displays on "About" page. :-)
You are using MindTouch Deki Wiki 1.8.3c (rev. ) running on: Linux 5.8, PHP 5.2.4, mySQL 14.12 distribution 5.0.51, and Mono 20080223.
* [Performance] The "mono" prosess continue to run away (eat 100% of CPU power) while huge page being saved. The browser expire save error after about 5 minite. Then 10-20 minites ago the "mono" process move to steady state. This could be dependent on speciic page (this guide). The reproducibility was low but occur at two machines. No reproducibility on VMware version of Deiki Wiki Hayes 1.8.3b at the same ops.
/.bash_profile - personal initialization file for bash (shared by root and nobody) /.wgetrc - personal initialization file for wget /etc /dekiwiki mindtouch.deki.startup.xml - deki-api server configuration file /init.d dekihost - startup for deki-api /rc3.d S40cswmysql5 - startup for MySQL server S50cswapache2 -> ../init.d/cswapache2 - startup Apache server S92dekihost -> /etc/init.d/dekihost - startup for deki-api /opt /csw /apache2 /etc deki-apache.conf - Apache config file for Deki Wiki httpd.conf - Apache "main" config file (includes deki-apache.conf) /share /deki-hayes - DocumentRoot for the Deki Wiki "Hayes release" /bin /cache /luceneindex - Lucene index directory mindtouch.host.exe - deki-api daemon executable mindtouch.host.sh - deki-api startup script /logs info.log trace.log warning.log LocalSettings.php AdminSettings.php /htdocs - DocumentRoot of Apache original (Not used) /var /log access_log - Apache access log file error_log - Apache error log file /bin wget - network utility to retrieve files from the Web mono - .NET runtime gmcs - C# compiler /etc pkg-get.conf - pkg-get configuration file /mysql my.cnf - configuration file for MySQL server /php5 /lib php.ini - configuration for PHP5 /var /log deki-api.log - deki-api log file /.wapi - Mono shared directory
END OF GUIDE
| Images 0 | ||
|---|---|---|
| No images to display in the gallery. |
Copyright © 2011 MindTouch, Inc. Powered by