OnWorks favicon

djvuserve - Online in the Cloud

Run djvuserve in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command djvuserve that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



djvuserve - Generate indirect DjVu documents on the fly.


Program djvuserve is a CGI program that can be executed by a HTTP server for serving DjVu
documents. This program is able to convert a bundled multi-page document into an indirect
document on the fly.


Program djvuserve must first be installed as a CGI program for your web server. There are
several ways to achieve this. The Apache web server, for instance, often defines a
specific directory for CGI programs using the ScriptAlias directive. Assume that the file
httpd.conf contains the following line:

ScriptAlias /cgi–bin/ "/var/www/cgi–bin"

It is then sufficient to create a small executable shell script /var/www/cgi–bin/djvuserve
containing the following lines:

exec /full/path/to/djvuserve

Suppose that a large bundled multi-page DjVu document is available at the following URL.


The CGI program djvuserve lets you access this same document as an indirect multi-page
DjVu document using the following URL.


Serving indirect multi-page DjVu documents provides for efficiently browsing large
document without transferring unnecessary pages over the network. See djvu(1) for more

Furthermore djvuserve searches certain keywords among the CGI arguments of the URL. The
keyword bundled forces serving a bundled document using


The keyword download inserts a content disposition HTTP header that suggests to display a
save dialog instead of displaying the document.



The Apache web server provides a way to automatically execute djvuserve for all DjVu
documents. This can be achieved using the following directives in either the Apache
configuration file or the .htaccess files.

Action djvu-server /cgi–bin/djvuserve/
AddHandler djvu-server .djvu

Apache then executes program djvuserve for serving all DjVu files. Providing the URL of
DjVu file serves this DjVu file as usual, except that bundled multipage documents are
converted to indirect documents on the fly. This convenience comes at the expense of the
computational cost of executing djvuserve whenever a DjVu file is requested.


Program djvuserve provides a mean to directly access any component of a bundled multi-page
DjVu document can be accessed using an extended URL. Suppose that the component file
representing page 1 is named p0001.djvu. The following URL provides a direct access to
this page:


It is preferred however to access individual pages using the CGI style arguments described
in nsdejavu(1), as in the following URL.


The special component file name index.djvu is recognized as a request for the index of the
corresponding indirect multi-page document. In fact, when you access a bundled document
using djvuserve, the browser gets redirected to the following URL:


and then behaves as if the bundled file was a directory containing the various component
files of an equivalent indirect document.


Program djvuserve, like many CGI programs, bypasses a number of access protections
established in a web server. Assume for instance that your web site contains DjVu files
protected by a password. Program djvuserve knows nothing about this protection and will
happily serve any DjVu file associated with a valid URL.

Access control with djvuserve can be implemented by first remembering that the web server
always executes program djvuserve via shell script /var/www/cgi–bin/djvuserve.

This script can decide to execute the real program djvuserve on the basis of the target
filename available in the environment variable PATH_TRANSLATED.

There can be several such scripts providing access to various collections of DjVu files.
Each of these scripts can be password protected using the usual methods supported by your
web server.


Hyperlinks specified using a relative URL may not work with djvuserve. These URLs are
relative to the URL of the DjVu document. Yet djvuserve changes the apparent document URL
http://server/dir/doc.djvu into the more complicated URL
http://server/cgi–bin/djvuserve/dir/doc.djvu/index.djvu. The extra components change the
interpretation of relative URLs.


This program was written by Leon Bottou <[email protected]>.

Use djvuserve online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

Linux commands