Skip to content

filak/IIPImage-on-Windows

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 

Repository files navigation

Since the official releases contain builds for Windows now, this repository is not being updated anymore.

IIPImage on Windows 64-bit with OpenJPEG and Memcached support

Build IIPImage server and install it with Apache on Windows

For feedback please use the Issues.

<...> is a placeholder for absolute path to your specific folder

For the official Win-build instructions please see https://iipimage.sourceforge.io/documentation/server/windows/

Install VS 2017 Community

https://visualstudio.microsoft.com/cs/vs/older-downloads/

Be sure to have selected the following components in installer:

  • VC++ 2017 version... latest
  • Visual Studio C++ core features
  • Windows 10 SDK
  • Windows Universal CRT SDK
  • Windows Universal C Runtime

Install vcpkg

https://github.com/microsoft/vcpkg

Clone/download the repo to <VCPKG_ROOT> folder (simple path - no spaces!)

Open Command prompt and run:

>  cd <VCPKG_ROOT>
  • run the bootstrap script:
bootstrap-vcpkg -disableMetrics
  • install packages:
vcpkg install tiff openjpeg fastcgi libpng --triplet x64-windows 

zlib, libjpeg-turbo and lzma are being installed as part of tiff package

  • run the integrate command:
vcpkg integrate install

For upgrading the already installed packages use:

vcpkg update
git pull
vcpkg upgrade --no-dry-run
vcpkg install tiff openjpeg fastcgi libpng --triplet x64-windows

Download IIPImage server

Clone/download IIPImage repo https://github.com/ruven/iipsrv

to <IIP_HOME> folder

Download libmemcached

Source: https://github.com/awesomized/libmemcached

Binaries: https://artifacts.m6w6.name/libmemcached/ -> 1.N.N/ZIP/Windows-AMD64-MSVC-...-Release/

Download libmemcached-awesome-1.N.N.zip and copy libmemcached-awesome-... sub-folders (bin, include, lib, share) to:

<IIP_HOME>\libmemcached

Build IIPImage server in VS 2017

Start Visual Studio and open the project file:

 <IIP_HOME>\windows\Visual Studio 2017\iipsrv.vcxproj

Select Release and target: x64

Open: Solution Explorer -> iipsrv -> Project properties

Adjust: Project properties -> C/C++ -> General -> Additional Include Directories

 %VCPKG_ROOT%\installed\x64-windows\include\fastcgi;..\..\libmemcached\include;%(AdditionalIncludeDirectories)

Check/Adjust: Project properties -> C/C++ -> Preprocessor -> Preprocessor Definitions

 WIN32;NDEBUG;_CONSOLE;HAVE_OPENJPEG;HAVE_PNG;HAVE_MEMCACHED;VERSION ...

Check/Adjust: Project properties -> Linker -> Input -> Additional Dependencies

 jpeg.lib;turbojpeg.lib;libfcgi.lib;tiff.lib;zlib.lib;openjp2.lib;lzma.lib;libmemcached.lib;libpng16.lib;%(AdditionalDependencies)

and add to: Project properties -> Linker -> General -> Additional Library Directories

 ..\..\libmemcached\lib;     

Run Build iipsrv - successful build is located in:

 <IIP_HOME>\windows\Visual Studio 2017\Release\x64\

Install Apache and IIPImage server

Define in your etc\hosts file:

 iip.test   127.0.0.1

Create <IIPDATA> folder for your testing images and copy there some files

  • Use either JPEG2000 or Tiled Multi-Resolution TIFF

For details see: https://iipimage.sourceforge.io/documentation/images/

Visit ApacheLounge https://www.apachelounge.com and download Zip files:

  • A) Apache 2.4.x
  • B) mod_fcgid

Unpack A to <APACHE_HOME> folder

Unpack B\mod_fcgid...\mod_fcgid.so to <APACHE_HOME>\modules folder

Create <APACHE_HOME>\iipsrv folder

Copy iipsrv.fcgi and *.dll files from

<IIP_HOME>\windows\Visual Studio 2017\Release\x64\ 

to:

<APACHE_HOME>\iipsrv

*.dll files - ie:

  • fcgi-0.dll
  • jpeg62.dll
  • liblzma.dll
  • libpng16.dll
  • openjp2.dll
  • tiff.dll
  • turbojpeg.dll
  • zlib1.dll

For Memcached support copy from

<IIP_HOME>\libmemcached\bin*.dll

  • hashkit.dll
  • memcached.dll
  • memcachedprotocol.dll
  • memcachedutil.dll

to:

<APACHE_HOME>\iipsrv

Update <APACHE_HOME>\conf\httpd.conf:

Define SRVROOT "<APACHE_HOME>"

## Uncomment:
LoadModule headers_module modules/mod_headers.so

## Add:
LoadModule fcgid_module modules/mod_fcgid.so

## Append to end of file:
Define IIPDATA "<IIPDATA>"

<IfModule fcgid_module>
# IIPImageServer configuration
Include conf/httpd-iipsrv.conf
</IfModule>

<VirtualHost *:80>
  ServerName iip.test
  DocumentRoot "${IIPDATA}"

  ## Disable caching - just for testing
  #Header always set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
  #Header always set Pragma "no-cache"

  <Directory "${IIPDATA}">
     Require all granted
  </Directory>
</VirtualHost>

Create httpd-iipsrv.conf and place it next to httpd.conf

For details see: https://iipimage.sourceforge.io/documentation/server/

ScriptAlias /fcgi-bin/ "${SRVROOT}/iipsrv/"

<Directory "${SRVROOT}/iipsrv/">
  AllowOverride None
  Options None
  Require all granted
  # Set the module handler
  AddHandler fcgid-script .fcgi
</Directory>

# Set our environment variables for the IIP server
FcgidInitialEnv FILESYSTEM_PREFIX "${IIPDATA}"
## VERBOSITY: 1 to 6
FcgidInitialEnv VERBOSITY "6"
FcgidInitialEnv LOGFILE "${SRVROOT}/logs/iipsrv.log"
FcgidInitialEnv MAX_IMAGE_CACHE_SIZE "100"
#FcgidInitialEnv JPEG_QUALITY "75"
#FcgidInitialEnv MAX_CVT "3500"
FcgidInitialEnv MAX_LAYERS "-1"
#FcgidInitialEnv MEMCACHED_SERVERS "127.0.0.1:11211"
FcgidInitialEnv ALLOW_UPSCALING "1"
FcgidInitialEnv EMBED_ICC "0"

# Define the idle timeout as unlimited and the number of processes we want
FcgidIdleTimeout 0
FcgidMaxProcessesPerClass 10  

Open Command prompt and run:

>  cd <APACHE_HOME>\bin
>  httpd.exe

Or install the service:

>  httpd.exe -k install -n "Apache24srv"

Open browser and check some testing images:

Check IIPImage log:

  <APACHE_HOME>\logs\iipsrv.log

Stop Apache webserver with: CTRL+C

About

Build IIPImage (iipsrv) and install it with Apache HTTPD on Windows

Topics

Resources

License

Stars

Watchers

Forks