DokuWiki

It's better when it's simple

User Tools

Site Tools


install:dokuwiki_on_a_stick_linux

Creating a Dokuwiki USB stick for Ubuntu and Windows execution

If you also want the usb stick to run under 64bit Ubuntu then you will need to create an extra partition on your usb stick. Its probably best to do this prior to installing the windows solution but if you already did this then you can copy the files to a temporary location, re-format your usb stick and then copy them back. You may also use something like GParted which allows you to resize your existing partition.

These are the partitions

  • A FAT32 partition to hold the wiki. Name this “WIKI”. Keep it uppercase for Windows to work,
  • An ext3 partition of around 240mb. Name this “linuxWiki”. The files consume around 65Mb and so 240Mb gives plenty of spare
  • Install the windows Dokuwiki on the fat32 partition named WIKI. Follow the instructions above to achieve this.

(This idea also works for dual-booted PCs if you have Windows and Ubuntu with a shared 2nd drive, which you can use to access the same Wiki on both operating systems)

Linux Execution. To be installed on the linuxWiki partition

HTTP Interpretor

To execute the wiki you need a small server that can interpret http format. The chosen server needs to execute from the stick. One that works out of the box is Mongoose https://code.google.com/archive/p/mongoose/ The download page is https://code.google.com/archive/p/mongoose/downloads The binary file mongoose-lua-sqlite-ssl-static-x86_64-5.1 is required. It will process the http requests on localhost:8080 which will default to file doku.php The suffix php will then require a PHP interpretor.

PHP Interpretor

The version I downloaded was 5.5.38. http://php.net/downloads.php The newer version (7.1.3) also works fine but seemed slower. Works also with version 8.3.2 but don't know about speed.

unzip the download to obtain dir php-5.5.38

To build into a directory php

  cd php-5.5.38/
  ./configure  --prefix=$HOME/php
  make
  make install

Once built we only need the one executable file located at $HOME/php/bin/php-cgi

Layout of files in partition linuxWiki

/media/mike/linuxWiki$ tree
.
├── linuxStart.sh
├── server
│   ├── dokuwiki -> ../../WIKI/dokuwiki
│   ├── mongoose.conf
│   ├── mongoose-lua-sqlite-ssl-static-x86_64-5.1
│   └── php-cgi
└── startWiki.desktop

File startWiki.desktop

This is a .desktop file that allows execution of the shell script file linuxStart.sh from the Nautilus file browser.

The content of the file is

[Desktop Entry]
Type=Application
Terminal=true
Name=Start Dokuwiki
Icon=utilities-terminal
Exec=bash -c 'cd "$(dirname %k)";./linuxStart.sh;$SHELL'
Categories=Application;

Once created set its permissions to allow execute

 chmod +x startWiki.desktop

File linuxStart.sh

This also needs its execution bit set and can be started from command line of a terminal if you prefer not to use Nautilus. Its content is

#!/bin/bash

cd server
echo "Open a browser to address 127.0.0.1:8080"
echo "Leave this terminal window running until you no longer need the http server to access the wiki"
echo "close the terminal when finished so that you can unmount the usb stick"
./mongoose-lua-sqlite-ssl-static-x86_64-5.1 

This will start the mongoose http server. This server needs a configuration file.

File server/mongoose.conf

This configuration file directs mongoose to use the php-cgi program to interpret http links to files of type *.php. It also sets the document_root to directory dokuWiki which we see in the moment is a symbolic link to the dokuWiki directory on the fat32 partition and the defult run file becomes index.php which calls doku.php to start the wiki engine.

cgi_interpreter ./php-cgi
enable_directory_listing no
document_root dokuwiki

The other command setting directory listings off is a security measure to stop the display of a directory list for any paths which don't contain an index.php or index.html file. See mongoose.

Dir server/dokuWiki

This links back to the fat32 partition where the dokuwiki installation resides. Create it via command

ln -s  ../../WIKI/dokuwiki  dokuwiki

The http and php server files

These were created in the first two steps. Copy both mentioned files to the server directory and set the execution bit on both files.

Current Issues

If you use 'localhost:8080' as the location of your wiki then you will find that the Dokuwiki Media Manager page has problems which makes it impossible to load any media files. If you instead direct your browser to '127.0.0.1:8080' or 'yourMachinesHostName:8080' then this problem is avoided.

Tips

If you get to see the phpInfo instead of your DokuWiki-Startpage, check your index.php . In my case index.php just called phpInfo(). I've replaced the code in index.php with the following: https://raw.githubusercontent.com/splitbrain/dokuwiki/stable/index.php

install/dokuwiki_on_a_stick_linux.txt · Last modified: 2024-01-21 19:09 by 178.39.24.115

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki