webCOMAND

webCOMAND Server Install

Install webCOMAND on your own server.

Instructions

  1. Download - Download webCOMAND for your operating system from webomand.com/download/hosted.
  2. Unzip - Unzip the downloaded file.
  3. Upload - Upload the webcomand folder and all of its files to the "htdocs" or "public_html" folder for the web server.
  4. Set Up - Open a web browser to the URL of your website followed by "/webcomand" (ie. http://www.example.com/webcomand) and follow the set up instructions.

Once installed, you are ready to sign in.

ImageMagick (RedHat Enterprise Linux)

The webCOMAND Image Processing API can take advantage of ImageMagick through the PHP Imagick extension.  Many Linux installations will have ImageMagick pre-installed.  If ImageMagick is not installed, or a version is installed that does not support the features and file formats required, you may want to compile and install the latest version and additional libraries.

Upgrading ImageMagick

Some important features have been added in ImageMagick 7, including support for WebP and AVIF file formats, so it may be useful to upgrade.  To upgrade on a Red Hat Enterprise Linux based Operating System (RHEL, Rocky Linux, VZ Linux, CentOS, etc.) where ImageMagick is already installed:

Uninstall existing packages.

  1. Make sure it is installed with:
    rpm -qa | grep -i magick
  2. Uninstall the current RPMs.
    yum remove ImageMagick ImageMagick-devel ImageMagick-libs
    (press 'y' to uninstall the many dependencies)
  3. Uninstall imagick.so
    pecl uninstall imagick

Install the Latest version of ImageMagick

The following steps will install the latest version of ImageMagick with support for PNG, WebP, JPEG and AVIF image file formats, which are popular on the web.

Install Git

  1. yum install git

Install PNG library (libpng, libzlib)

  1. yum install libpng-devel

If the RPM is not available or you need the latest version, build from source:

  1. git clone https://github.com/glennrp/libpng
  2. cd libpng
  3. ./autogen.sh
  4. ./configure
  5. make
  6. make install
  7. cd ../

Install JPEG library (libjpeg)

  1. Download latest "jpegsrc" from http://www.ijg.org/files/ (currently http://www.ijg.org/files/jpegsrc.v9e.tar.gz)
    wget http://www.ijg.org/files/jpegsrc.v9e.tar.gz
  2. tar xvfz jpegsrc.v9e.tar.gz
  3. cd jpegsrc-v9e
  4. ./configure --enable-shared
  5. make
  6. make install
  7. cd ../

Install WebP library (libwebp)

  1. yum install libwebp-devel

If the RPM is not available or you need the latest version, build from source

This causes issues as of 7/9/2022.
  1. git clone https://chromium.googlesource.com/webm/libwebp
  2. cd libwebp
  3. ./autogen.sh
  4. ./configure
  5. make
  6. make install
  7. cd ../

Install AVIF related libraries (libde265, libheif)

The following is not required to compile ImageMagick with AVIF, but ImageMagick will not recognize AVIF format files without it.
  1. yum install libaom-devel

Download and compile two libraries required to support AVIF files.

libde265
  1. git clone https://github.com/strukturag/libde265.git
  2. cd libde265/
  3. ./autogen.sh
  4. ./configure
  5. make -j4
  6. make install
  7. cd ../
libheif
  1. git clone https://github.com/strukturag/libheif.git
  2. cd libheif/
     
  3. IMPORTANT: Add /usr/local/lib/pkgconfig to the PKG_CONFIG_PATH, so libheif ./configure will find the locally compiled libde265.pc package configuration file.

    export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
     
  4. ./autogen.sh
  5. ./configure
  6. make -j4
  7. make install

    TIP: Make sure libheif is working correctly with libde265 (should output 'yes'):
    pkg-config libheif --variable builtin_h265_decoder
     
  8. cd ../

Install TIFF library

  1. yum install libtiff-devel

Install X

  1. yum install libXext-devel
  2. yum install libXt-devel

Install Zip Library

  1. yum install libzip-devel

Install Freetype

  1. yum install freetype-devel

Install ImageMagick

  1. git clone https://github.com/ImageMagick/ImageMagick.git
  2. cd ImageMagick
     
  3. IMPORTANT: Add /usr/local/lib/pkgconfig to the PKG_CONFIG_PATH, so ImageMagick ./configure will find the locally compiled libheif.pc package configuration files.

    export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
     
  4. ./configure

    TIP: Make sure DELEGATES lists heic, jpeg and webp
    Ideally: bzlib freetype heic jng jpeg png tiff webp x zip zlib
     
  5. make
  6. make install
  7. cd ../

Install Imagic.so

  1. pecl install imagick

Restart Apache (or php-fpm if installed)

  1. systemctl restart php-fpm
We do not seem to need to do this: /sbin/ldconfig /usr/local/lib

References & Additional Information

Install libheif and libde265

From: https://talkingweb.co.uk/blog/how-to-add-support-for-next-generation-file-formats-heif-and-webp

Next you need to build libheif and libde265. This is a little more involved than just using a package manager unfortunately, but it's not too difficult when you get the right configure options.

> git clone https://github.com/strukturag/libde265.git  
> cd libde265/ 
> ./autogen.sh 
> ./configure 
> export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
> make
> sudo make install 
> git clone https://github.com/strukturag/libheif.git 
> cd libheif/
> ./autogen.sh 
> ./configure 
> make
> sudo make install 

The important thing, and where it went wrong for me a few times, was to check that libheif is working correctly with libde265. To check this you can run:

> pkg-config libheif --variable builtin_h265_decoder

The output should be 'yes'.

Understanding PKG_CONFIG_PATH

From: https://askubuntu.com/questions/210210/pkg-config-path-environment-variable

PKG_CONFIG_PATH is a environment variable that specifies additional paths in which pkg-config will search for its .pc files.

This variable is used to augment pkg-config's default search path. On a typical Unix system, it will search in the directories /usr/lib/pkgconfig and /usr/share/pkgconfig. This will usually cover system installed modules. However, some local modules may be installed in a different prefix such as /usr/local. In that case, it's necessary to prepend the search path so that pkg-config can locate the .pc files.

The pkg-config program is used to retrieve information about installed libraries in the system. The primary use of pkg-config is to provide the necessary details for compiling and linking a program to a library. This metadata is stored in pkg-config files. These files have the suffix .pc and reside in specific locations known to the pkg-config tool.

To check the PKG_CONFIG_PATH value use this command:

echo $PKG_CONFIG_PATH

To set the PKG_CONFIG_PATH value use:

export PKG_CONFIG_PATH=/usr/lib/pkgconfig

or

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig