The following article walks through the installation process for Linux systems. Before beginning installation, refer to the Technical Specifications article for a list of supported distributions and a list of minimum requirements.
Important
The Linux Installer was updated in v2019.2.1 of the application. This document covers several versions of the installer. Use the Viewing content for dropdown to see only the content relevant to a specific application version. Any previous headless install scripts will start prompting for missing formation and will require editing to account for the new parameters.
This article is divided into three sections: Apache, NGINX and Common Install Information. Only follow the instructions in the section that corresponds with the web server in your environment, and review Common Install Information for all installations.
Apache
NGINX
Apache must be installed prior to installing Exago.
The Exago Linux Installer can be used to install the Exago Web Application, Web Service API, and Scheduler Service. It can also install mono and mod-mono. Use the following steps to install Exago on Linux with Apache.
Note
Apache or NGINX must be installed prior to installing Exago. If changing from one or the other, verify the dependencies (mod-mono or mono-fastcgi-server4) are installed.
tar zxvf ExagoInstaller_vX.X.X.X.tgz
Installer
directory:
cd Installer
installExago.sh
as root:
sudo ./installExago.sh
Usage:
[-d <install path>] [-m <TRUE|FALSE>] [-i <WEBAPP|WEBAPI|SCHEDULER>] [-y] [-h]
Parameter | Description |
---|---|
-d <Install Path> | Directory to install Exago in Default is /opt/Exago
|
-m <TRUE|FALSE> | Whether or not to install Mono framework with Exago |
-i <WEBAPP|WEBAPI|SCHEDULER> |
Which component(s) to install
|
-a <Web App URL Alias> | Default is /Exago
|
-s <Web Service URL Alias> | Default is /ExagoWebApi
|
-r <Scheduler Service Name> | Name to use for the Scheduler Service’s systemd service. Default is exago-scheduler. |
-R | Configure systemd services As of v2019.2.1, Exago will automatically install systemd services unless the -N flag is passed to inhibit their installation. This option is not available in Exago versions pre-v2019.2.1. |
-N | As of v2019.2.1, do NOT configure systemd services This option is not available in Exago versions pre-v2019.2.1. |
-u <userId> |
As of v2019.2.1, user ID to create in the operating system that the Exago systemd services and FastCGI listeners will run under. A group and home directory with the same name will be created. This option is not available in Exago versions pre-v2019.2.1. |
-w <APACHE|NGINX> | Available in v2019.1.15+ Select the web server to configure, if both are available. |
-D |
As of v2019.2.1, select all default values for installation options. Individual options can be overridden by including the parameter on the command line. This option is not available in Exago versions pre-v2019.2.1. See Default Values below for further details |
-y | Do not prompt for final verification before installing |
-h | Show this help screen |
./installExago.sh -d /opt/Exago -m TRUE -i WEBAPP -i WEBAPI
./installExago.sh -D -y
./installExago.sh -d /opt/ExagoRemote -i SCHEDULER -D
############################################## ___ __ __ __ _ __ _ ___ / _ / / / _` | / _` | / _ | __/ > < | (_| | | (_| | | (_) | ___| /_/_ __,_| __, | ___/ __/ | Linux Installer |___/ ##############################################
The Linux Installer will ask a series of questions to setup the environment. Suggested default values for each question are enclosed in [ brackets ]. To choose the default value, simply press the Enter key on the keyboard. Default values are explained in their own section below.
/opt/Exago
./Exago
/ExagoWebApi
Continue to Start and Test Install below.
Restart Apache.
Point your browser to the Admin Console to verify that your installation was successful and to create a default configuration file. By default this is http://<YourServer>/Exago/Admin.aspx
If you encounter problems at any point, please file a Support Ticket.
Continue to Folder Configuration below to continue with the installation.
Configure storage locations for the configuration, report storage (either Storage Management for v2020.1.0+ or a Report Path pre-v2020.1.0) and temporary file storage.
The Config sub-folder of the Exago installation has read and write permissions set by default.
For versions v2020.1+, setup the Storage Management system for storing reports, templates and themes.
If upgrading from a previous version of Exago, review these articles:
If this is a new installation, review these articles:
Setting up the Storage Management system in general is as follows:
The recommended path for the Temp folder is /opt/Exago/Temp
.
Note
If using a custom Application Theme, the ApplicationThemes folder will also need the same permissions.
Installation is now completed. If the Scheduler Service or Monitoring Service is required, continue to the Scheduler and Monitoring Services section at the end of this article.
If all components are installed, the Installer
directory may be deleted.
NGINX must be installed prior to installing Exago. NGINX proxies incoming and outgoing requests to a running instance of Exago using a fastcgi module that is installed during the installation process. mono-fastcgi-server4 is a prerequisite for Exago to run on NGINX.
The Exago Linux Installer can be used to install the Exago Web Application, Web Service API, and Scheduler Service. It can also install mono and mono-fastcgi-server4. Use the following steps to install Exago on Linux with NGINX.
Note
Apache or NGINX must be installed prior to installing Exago. If changing from one or the other, verify the dependencies (mod-mono or mono-fastcgi-server4) are installed.
tar zxvf ExagoInstaller_vX.X.X.X.tgz
Installer
directory:
cd Installer
installExago.sh
as root:
sudo ./installExago.sh
Usage:
[-d <install path>] [-m <TRUE|FALSE>] [-i <WEBAPP|WEBAPI|SCHEDULER>] [-y] [-h]
Parameter | Description |
---|---|
-d <Install Path> | Directory to install Exago in Default is /opt/Exago
|
-m <TRUE|FALSE> | Whether or not to install Mono framework in Exago |
-i <WEBAPP|WEBAPI|SCHEDULER> | Which component(s) to install
|
-a <Web App URL Alias> | Default is /Exago
|
-s <Web Service URL Alias> | Default is /ExagoWebApi
|
-r <Scheduler Service Name> | Name to use for the Scheduler Service’s systemd service. Default is exago-scheduler. |
-f <Fastcgi Service Name> | As of v2019.2.1, name to use for the FastCGI services used by NGINX. This option is not available in Exago versions pre-v2019.2.1. |
-p WEBAPP:<port>|WEBAPI:<port> | As of v2019.2.1, port numbers to use for the FastCGI listeners for the Web Application or Web Service API, respectively. This option is not available in Exago versions pre-v2019.2.1. |
-R | Configure systemd services As of v2019.2.1, Exago will automatically install systemd services unless the -N flag is passed to inhibit their installation. This option is not available in Exago versions pre-v2019.2.1. |
-N | As of v2019.2.1, do NOT configure systemd services This option is not available in Exago versions pre-v2019.2.1. |
-u <UserID> | As of v2019.2.21, User ID to create in the operating system that the Exago systemd services and FastCGI listeners will run under.
A group and home directory with the same name will be created. This option is not available in Exago versions pre-v2019.2.1. |
-w <APACHE|NGINX> | Available in v2019.1.15+ Select the web server to configure, if both are available. |
-D | As of v2019.2.1, select all default values for installation options. Individual options can be overridden by including the parameter on the command line.
See Default Values below for further details This option is not available in Exago versions pre-v2019.2.1. |
-y | Do not prompt for final verification before installing |
-h | Show this help screen |
Examples:
./installExago.sh -d /opt/Exago -m TRUE -i WEBAPP -i WEBAPI
./installExago.sh -D -y
./installExago.sh -d /opt/ExagoRemote -i SCHEDULER -D
############################################## ___ __ __ __ _ __ _ ___ / _ / / / _` | / _` | / _ | __/ > < | (_| | | (_| | | (_) | ___| /_/_ __,_| __, | ___/ __/ | Linux Installer |___/ ##############################################
The Linux Installer will ask a series of questions to setup your environment. Suggested default values for each question are enclosed in [ brackets ]. To choose the default value, simply press the Enter key on the keyboard. Default values are explained in their own section below.
/opt/Exago
./Exago
/ExagoWebApi
Continue to Start and Test Install below.
The required configuration is created in a separate site file located in the NGINX configuration directory.
For Ubuntu systems this is typically /etc/nginx/sites-available/exago
. For other systems this may be /etc/nginx/conf.d/exago
. The exact location of the file will depend on your system and NGINX installation. Consult with the operating system and NGINX official product documentation for more information.
The site file is not enabled by default.
#Exago conf file for fastcgi-mono-server4
server {
listen 80;
listen [::]:80;
server_name _;
root /var/www;
location /Exago/ {
include /etc/nginx/fastcgi_params;
root /opt/Exago;
access_log /var/log/nginx/exago.log;
fastcgi_param SERVER_NAME $host;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO "";
fastcgi_pass 127.0.0.1:9000;
}
location /ExagoWebApi/ {
include /etc/nginx/fastcgi_params;
root /opt/Exago/WebServiceApi;
access_log /var/log/nginx/exago_ws.log;
fastcgi_param SERVER_NAME $host;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO "";
fastcgi_pass 127.0.0.1:9001;
}
}
For example on Ubuntu, to enable the site file, link it to /etc/nginx/sites-enabled
:
sudo ln /etc/nginx/sites-available/exago /etc/nginx/sites-enabled/exago
Or include the configuration in another running site configuration file. This step will depend on your specific environment. Consult your operating system and NGINX official documentation.
Caution
Make sure that the default port does not conflict with another running site. If it does, you will see a warning when reloading Nginx:
nginx: [warn] conflicting server name "Exago" on 0.0.0.0:80
Then reload NGINX to refresh the configuration:
sudo nginx -s reload
Note
This article references
<WebApp>/
,<WebSvc>/
as a placeholder for the application’s install location and the Web Service API’s install location, respectively. The default install locations are/opt/Exago/
and/opt/Exago/WebServiceApi
; however, these directories may be changed during installation.
Note
The exago-fcgi portion of each service name can be configured from the defaults below with the -f parameter in silent installation or by providing an answer to the Enter the base fastcgi service name question during guided installation.
<WebApp>/exago-fcgi-webapp.sh
<WebSvc>/exago-fcgi-webservice.sh
When not using a service manager, each of these scripts can be run with either the start, stop and restart directives. For example, <WebApp>/bin/exago-fcgi-webapp.sh start
will start the Web Application’s FastCGI listener. <WebSvc>/bin/exago-fcgi-webservice.sh restart
will restart the Web Service API’s FastCGI listener.
When using systemd, the commands take the following form:
service exago-fcgi-webapp start
service exago-fcgi-webservice stop
The Config sub-folder of the Exago installation has read and write permissions set by default.
If upgrading from a previous version of Exago, review these articles:
If this is a new installation, review these articles:
Default UMASK for files written by Exago is 027.
The recommended path for the Temp folder is /opt/Exago/Temp
.
Note
If using a custom Application Theme, the ApplicationThemes folder will also need the same permissions.
Installation of Exago is now completed. If the Scheduler Service or Monitoring Service is required, continue to the Scheduler and Monitoring Services section at the end of this article.
If all components are installed, the Installer
directory may be deleted.
A script named exago-scheduler.sh
by default is used to manage the Scheduler Service. The name is customizable with the installer’s -r
parameter.
When utilizing a systemd service, the Scheduler Service should start automatically when the system boots, and can be managed with the service command in the following ways:
service exago-scheduler start
service exago-scheduler stop
service exago-scheduler status
When a second scheduler is installed on the same server, the default service name will increment: exago-scheduler2
, exago-scheduler3
, and so on.
When the Scheduler Service is not installed as a systemd service (without the -R
parameter), it is not possible to know if another service with the same name exists on the same server. When a service with the same name is installed, only one can be used at a time. This is due to the fact that lock files used by the service are based on the service’s name, and will prevent the second process from starting. In this scenario, the -r
flag should be used and additional schedulers be given different names.
To start the Scheduler Service, execute the exago-scheduler.sh
script as the owner of the installation directory (either root pre-v2019.2.21 or the user name specified with the -u
parameter, exago by default in v2019.2.21+). For example:
In v2019.2.21+, assuming the Scheduler Service is installed in /opt/Exago/Scheduler/
:
su exago /opt/Exago/Scheduler/exago-scheduler.sh start exit
See Scheduler Configuration and Setting Up Monitoring to configure the respective services correctly. If necessary, configure the Scheduler and Monitoring services to run at startup.
Note
This article references
<WebApp>/
as a placeholder for the application’s install location. The default install location is/opt/Exago/
; however, this directory may be changed during installation.
If the Web Application was installed, the Monitoring Service is also installed, but is disabled by default. This script created during installation needs to be started manually or configured to run at startup:
<WebApp>/MonitoringService/startService.sh
The -D
parameter was added to the Linux installer in v2019.2.1. This parameter will select the default values for each parameter unless already specified on the command line. These values are:
/opt/Exago
/opt/Exago/Scheduler
/opt/Exago
/Exago
apache.conf
or httpd.conf
depending on which one is in use./etc/nginx/conf.d/exago.conf
/etc/httpd/conf.d/exago.conf
/opt/Exago/WebServiceApi
/ExagoWebApi
Tip
For a completely headless installation with all of the default values, pass the
-D
and-y
parameters.-D
will not start the installation on it’s own, only select the default values for each parameter.
Once Exago is installed, the settings chosen during installation become the defaults and are written in to the aforementioned exagoinstall.properties file in the Exago installation directory.
The upgradeMono script included with the installer can be used to upgrade from one supported version of mono to another. The script will remove the installed version and then install the new version in its place, along with the apache mod_mono module and fastcgi module as applicable.
If the system does not meet the minimum requirements for any of the components, it will upgrade only the installed components but will not install anything additional.
Installer
directory as described in steps 1–3 of Installation with Apache or Installation with NGINX above.Usage:
sudo ./upgradeMono.sh [-f] [-s] [-y] [-a] [-h]
Parameter | Description |
---|---|
-f | Force a reinstall, even if the version currently installed is at the recommended version |
-s | Skip the reinstall if the version currently installed is already the recommended version |
-y | Don’t prompt before starting the upgrade, silently install |
-a | Upgrade everything despite what is currently installed |
-h | Show command line parameter help screen |
*********************************** Upgrade summary: Upgrade Mono: TRUE Upgrade Mod Mono: TRUE Upgrade Mono FastCGI: FALSE *********************************** Would you like to continue with this upgrade? (Y or N) [Y]
An example summary for a system with Apache. Pressing Y
or Enter
on the keyboard will start the upgrade process
The Exago installer handles the installation and configuration of all of its own dependencies. Installing and configuring dependencies ahead of time is not required, and in some cases could lead to unexpected issues with the Exago deployment. This list is provided as a reference only. In most cases, Exago utilizes the most up to date versions available through the operating system’s package manager (i.e. apt, yum, zypper).
The Exago installer will display error messages if certain dependencies are not, cannot be or are not correctly installed.
Note
Not all of the packages listed below are installed for every operating system and situation.