Recent Changes · Search:

Support the Project



edit SideBar


Notes from Christian about installing Wikipublisher and its server.

How it works

Machines, softwares and services:

  • MA - The machine that runs the wiki engine, e.g.
    • wiki@MA - The wiki engine running on MA. It has the recipe wikipublisher installed that allows wiki markup to be exported as Wikibook XML.
  • MB - The machine that is running the user’s browser
    • browser@MB - The browser running on machine MA
  • MC - The machine that runs the pdfserver, e.g.
    • pdfserver@MC - The pdfserver running on MC. This service can take (actually request) Wikibook XML and convert it to a PDF via LATEX.

Requests sent between services aree denoted R<n>:

  • R0 - From browser@MB to wiki@MA for the form page that is used to request converting a wiki page into PDF.
  • R1 - From browser@MB to pdfserver@MC, requesting a wiki page at wiki@MA to be converted into PDF.
  • R2 - From pdfserver@MC to wiki@MA, requesting a wiki page formatted as Wikibook XML.

Summary of requests:

browser@MB -------------------------------------------> wiki@MA
  ^                                                       |
  |         {form to request PDF from pdfserver@MC}       |

browser@MB --------> pdfserver@MC       R2
  ^                    |    ^  '----------------------> wiki@MA
  |                    |    |  {page as Wikibook XML}   |
  |       {PDF}        |    '---------------------------'

The sequence of requests and actions involved in converting a wiki page to PDF via Wikibook XML and LATEX will now be described:

  • The browser@MB opens a page from the wiki@MA. That wiki page has a link which when invoked results, via request (R0), in the browser@MB being presented with a special form page from the wiki@MA. This form page has a submit button labelled ‘Download’ (PDF).
  • When the user clicks ‘Download’, the browser@MB submits a request (R1) to the pdfserver@MC. The request contains various arguments:
    • URI of the pmwiki script at the wiki@MA
    • name of the wiki page
    • PHP session ID
  • The pdfserver@MC receives the request (R1) from the browser@MA. In response, the pdfserver@MC sends a new request (R2) to the wiki@MA for the wiki page formatted as Wikibook XML.
  • The wiki@MA receives the request (R2) and returns the wiki page as Wikibook XML to the pdfserver@MC.
  • When the pdfserver@MC has received the XML data, it converts that into a PDF via LATEX.
    • Any images in the original wiki page will be represented as links in the XML and result in additional requests from the pdfserver@MC to the wiki@MA for each image in question.
When the PDF has been created, the pdfserver@MC responds to the original request (R1) by returning the PDF to the browser@MB.
  • The browser@MB recives the PDF and the conversion process has been completed.

Older stuff

Reading Wikipublisher.InstallTheServer, I have some questions:

  • What versions of the required software is needed?
  • How do you check if you have all the required software? (Yes, I know this will vary depending on distribution… but as I’ll be doing this first on Suse 9.1 and then on Debian/testing, I’ll at least document that as I go along).

Checking software requirements


Try this command to check for perl

      perl —version

On Suse 9.1 this returned

      This is perl, v5.8.3 built for i586-linux-thread-multi …


Testing for libwww-perl on Suse 9.1… perhaps like this?

$ locate libwww-perl

Not sure if this is a positive result though…


On Suse 9.1…

$ latex --version
TeX (Web2C 7.4.5) 3.14159
kpathsea version 3.4.5

Image Magick?

IIRC, the tool convert is part of Image Magick?. On Suse 9.1:

$ convert -version
Version: ImageMagick 5.5.7 11/02/04 Q16
Copyright: Copyright (C) 2003 ImageMagick Studio LLC

Image Magick? perl interface

libxml utilities

libxslt utilities

  convert —version

Note that you can check if a perl package is installed with perl itself. On my laptop, libwww-perl and the Image Magick? perl interface are installed, so perl returns no errors when I try to use them:

donald@frogstar:~$ perl -e ‘use LWP::Simple’
donald@frogstar:~$ perl -e ‘use Image::Magick’

but if I try this with module that isn’t installed, it tells me:

donald@frogstar:~$ perl -e ‘use Module::I::Have::Not::Installed’
Can’t locate Module/I/Have/Not/ in @INC (@INC contains: /etc/perl 
/usr/local/lib/perl/5.8.7 /usr/local/share/perl/5.8.7 /usr/lib/perl5 /usr/share/perl5 
/usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .) at -e line 1.
BEGIN failed—compilation aborted at -e line 1.

Donald Gordon?

Creative Commons License
Edit · History · Print · Recent Changes · Search · Links
Page last modified on 22 December 2006 at 10:50 PM