Install IIPImage Server on Ubuntu 18.04 with ISPConfig
IIPImage Server is a fast, well-documented, feature rich and opensource zoom server and client for various platforms. In this article is described how to install and configure it on Ubuntu 18.04 with ISPConfig 3.x.
Install packages
apt update && apt -y upgrade apt -y install iipimage-server iipimage-doc
IIPImage server is now installed, the binary is
/usr/lib/iipimage-server/iipsrv.fcgi
main config file is
/etc/apache2/mods-enabled/iipsrv.conf
documentations are at
/usr/share/doc/iipimage-doc/
/usr/share/doc/iipimage-server/
man iipsrv
logfile is at
/var/log/iipsrv.log
Configure IIPImage
IIPImage is configured for use with mod_fcgid, suexec and memcached.
vi /etc/apache2/mods-enabled/iipsrv.conf
# Create a directory for the iipsrv binary
#
# Das hier beim vHost machen (mit ISPConfig)
#
##ScriptAlias /iipsrv/ "/usr/lib/iipimage-server/"
#ScriptAlias /iipsrv/ "/var/www/iipimage-server/"
## Set the options on that directory
#<Location "/iipsrv/">
# AllowOverride None
# Options None
# <IfModule mod_version.c>
# <IfVersion < 2.4>
# Order allow,deny
# Allow from all
# </IfVersion>
# <IfVersion >= 2.4>
# Require all granted
# </IfVersion>
# </IfModule>
#
# # Set the module handler
# AddHandler fcgid-script .fcgi
#</Location>
# Set our environment variables for the IIP server
FcgidInitialEnv VERBOSITY "10"
FcgidInitialEnv LOGFILE "/var/log/iipsrv.log"
FcgidInitialEnv MAX_IMAGE_CACHE_SIZE "10"
FcgidInitialEnv JPEG_QUALITY "90"
FcgidInitialEnv MAX_CVT "5000"
FcgidInitialEnv MEMCACHED_SERVERS "localhost"
# Define the idle timeout as unlimited and the number of
# processes we want
FcgidIdleTimeout 0
FcgidMaxProcessesPerClass 1
service apache2 restart
Configure vHost
Remove the immutable bit, add a folder for the IIPImage binary and set the immutable bit again
chattr -i /var/www/clients/client1/web1
mkdir /var/www/clients/client1/web1/iipimage-server
chattr +i /var/www/clients/client1/web1
Copy the IIPImage binary to the vHost
cp /usr/lib/iipimage-server/iipsrv.fcgi /var/www/clients/client1/web1/iipimage-server
chown -R web1:client1 /var/www/clients/client1/web1/iipimage-server
Setup Apache directives with ISPConfig – copy the following section into Apache Directives and click on Save
# Create a directory for the iipsrv binary
ScriptAlias /iipsrv/ "/var/www/clients/client1/web1/iipimage-server/"
<Location "/iipsrv/">
AllowOverride None
Options None
<IfModule mod_version.c>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
</IfModule>
# Set the module handler
AddHandler fcgid-script .fcgi
</Location>
The zoom server is now configured and working.
Test installation
Just enter the URL of the IIPImage binary in your browser. It should display a HTML page.
Prepare images
The zoom server needs a multi-page image pyramide TIFF to display images. Convert them with
vips im_vips2tiff input.jpg output.tif:lzw,tile:256x256,pyramid
Move the converted TIF image to the iipimage-server directory
mv output.tif /var/www/clients/client1/web1/iipimage-server/
Display image
To display the full image, use the parameter CVT=jpeg
http://www.intranet.lan/iipsrv/iipsrv.fcgi?FIF=output.tif&CVT=jpeg
Install client
IIPMooViewer is a HTML5 client for IIPImage. It is compatible with almost all web browsers including Android and Phone/iPad.
Just go to yout web directory of the vHost, clone the repo, edit index.html and you are done.
cd /var/www/clients/client1/web1/web/
git clone https://github.com/ruven/iipmooviewer
cd iipmooviewer
vi index.html
var server = '/iipsrv/iipsrv.fcgi';
var image = 'output.tif';
cd ..
chown -R web1:client1 iipmooviewer
Finished!
Open the URL in the browser and enjoy.
http://www.intranet.lan/iipmooviewer