Skip to Content

System Requirements

10 Minutes

This page includes useful information on the supported operating systems as well as the software and hardware requirements that are needed to install and use SupportPro.

License

An active license with valid support and updates coverage is required to download and install SupportPro. Our 30 day free trial is the easiest way to try SupportPro. Owned licenses include 6 months from date of purchase and monthly licenses include lifetime support and updates.


Operating Systems

SupportPro simply requires PHP and MySQL, thus it is possible to install and run it in a vast majority of systems. Below is a list of supported operating systems; we cannot provide support for operating systems that are not listed.

Linux Distributions

  • CentOS
  • Debian
  • Red Hat Enterprise Linux
  • Ubuntu

Windows Server

Windows support is available via Docker deployment methods.


Software Requirements

PHP

Version

PHP version 8.1.0 - 8.2.x is supported.

For assistance on installing a new version of PHP, please contact your hosting provider or server administrator.

Extensions

Required Optional
  • BCMath
  • Ctype
  • cURL
  • DOM
  • FileInfo
  • GD (requires libpng and libjpeg)
  • Hash
  • Iconv
  • ionCube Loaders - 12.0.5 and above
  • JSON
  • Mbstring
  • OpenSSL
  • PDO (with MySQL Client Driver 5.6.0+ or MySQLnd 5.0.9)
  • Tokenizer
  • XML (with libxml2 version 2.7.0 or above)

PHP extensions differ depending on your server, your host and other system variable. For assistance on installing missing extensions, please contact your hosting provider or server administrator.

Settings

Your PHP configuration must adhere to the following settings:

  • zlib.output_compression Disabled
    Gzip output compression is handled by the web server. PHP’s zlib output compression should be disabled to prevent files from being compressed multiple times.
  • allow_url_fopen Enabled
    To use Gravatar and other SupportPro features, allow_url_fopen must be enabled in your PHP configuration.
  • IPv6 Support
    If your server has IPv6 networking support, this should be enabled by default. However, if not please ensure you have the php-sockets extension enabled and PHP has been compiled with the --enable-ipv6 flag.
  • PNG & JPG Support
    If the PHP GD extension has been manually compiled, please ensure the --with-png-dir and --with-jpeg-dir flags are provided.
  • Disabled functions
    If you’re running under a particularly strict environment, please ensure that the following functions are not listed under the disable_functions directive: ini_set
  • Memory Limit
    A minimum of 128 MB addressable memory is required to install and use SupportPro. We recommend at least 256 MB.

For assistance on modifying your PHP configuration, please contact your hosting provider or server administrator.

File Permissions

The following directories (and directories within recursively) must be writable by the PHP/Web Server process.

  • addons/
  • bootstrap/cache/
  • config/
  • storage/

Linux

We recommend setting the above directories to 755 permissions.

chmod 755 /path/to/directory

You may also need to adjust the owner and group of the directories to be the web server user, for example:

chown -R www-data:www-data /path/to/directory

IIS (Windows)

Right click on the folder containing the SupportPro files, click Properties and then the Security tab. Click Edit... and then Add..., enter IUSRS and click Check Names. Click OK, and check the Full Control checkbox in the permissions. Do the same for the IIS_IUSRS group too.

Database

Version

MySQL Server 5.7 and 8.0 supported. MariaDB 10.2 - 10.11 also supported.

User Privileges

For day to day use, the following database privileges are required.

  • DELETE
  • FLUSH TABLES
  • INSERT
  • LOCK TABLES
  • SELECT
  • UPDATE

For installing and upgrading the system, as well as activation and deactivation of plugins, the following additional privileges are required.

  • ALTER
  • CREATE
  • DROP
  • INDEX

Settings

We recommend the following MySQL configuration directives are changed:

  • max_allowed_packet - we recommend greater than 20 MB to ensure large emails and embedded images are correctly handled.

For assistance on modifying your MySQL configuration, please contact your hosting provider or server administrator.

Web Server

SupportPro supports Apache, nginx and IIS web server.

Apache

Apache is supported out of the box.

nginx

On nginx, please create a new virtual host for SupportPro. The below is an example virtual host but will need editing for your specific environment (paths may vary):

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name _;

    # enable gzip
    gzip on;
    gzip_comp_level 6;
    gzip_min_length 500;
    gzip_proxied any;
    gzip_types text/plain text/css text/javascript application/json application/javascript;
    gzip_vary on;

    # add security headers
    add_header X-Frame-Options SAMEORIGIN always;
    add_header X-Content-Type-Options nosniff always;
    add_header X-XSS-Protection "1; mode=block" always;
    add_header Referrer-Policy strict-origin-when-cross-origin always;
    add_header Strict-Transport-Security max-age=31536000 always;

    # disable request entity max size.
    # https://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size
    client_max_body_size 0;

    root /var/www/supportpal;
    index index.php;

    # Hide Nginx version
    server_tokens off;

    # Remove index.php from GET requests.
    set $user_request 0;
    if ($request_method = GET) {
        set $user_request "GET";
    }
    if ($request_uri ~* "^(.*/)index\.php/?(.*)$") {
        set $user_request "${user_request}-index.php";
    }
    if ($user_request = "GET-index.php") {
        return 301 $1$2;
    }

    # Send all requests to SupportPal.
    location / {
        try_files /notexistent @backend;
    }

    # Allow direct access to asset files, if they don't exist show SupportPal 404 error page.
    location ~* \.(css|gif|ico|je?pg|js|png|swf|txt|eot|ttf|woff|woff2|svg|map)$ {
        try_files $uri $uri/ @backend;
    }

    # Allow direct access to resources/assets files, if they don't exist show SupportPal 404 error page.
    location resources/assets/ {
        try_files $uri $uri/ @backend;
    }

    # All SupportPal requests must be sent through index.php.
    location @backend {
        rewrite ^(.*)$ /index.php last;
    }

    location ~ \.php($|/) {
        include snippets/fastcgi-php.conf;

        # With php-fpm:
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
    }
}

IIS

On IIS, please create a web.config file in the root of your installation directory with the below contents:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <staticContent>
            <remove fileExtension=".woff" />
            <remove fileExtension=".woff2" />
            <remove fileExtension=".json" />
            <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
            <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
            <mimeMap fileExtension=".json" mimeType="application/json" />
        </staticContent>
        <rewrite>
            <rules>
                <rule name="Add trailing slash to base" stopProcessing="true">
                    <match url="^$" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{URL}" pattern="[^\/]$" />
                    </conditions>
                    <action type="Redirect" url="<supportpal_base_url>/" />
                </rule>
                <rule name="Remove index.php" stopProcessing="true">
                    <match url="^index.php/?(.*)$" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_METHOD}" pattern="GET" />
                        <add input="{URL}" pattern="^.*/index\.php" />
                    </conditions>
                    <action type="Redirect" redirectType="Permanent" url="<supportpal_base_url>/{R:1}" appendQueryString="true" />
                </rule>
                <rule name="Allow assets" stopProcessing="true">
                    <match url="^" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" />
                        <add input="{URL}" pattern="(resources/assets/|\.(css|gif|ico|je?pg|js|png|swf|txt|eot|ttf|woff|woff2|svg|map)$)" />
                    </conditions>
                    <action type="None" />
                </rule>
                <rule name="Rewrite all else to index.php" stopProcessing="true">
                    <match url="^" ignoreCase="false" />
                    <action type="Rewrite" url="index.php" />
                </rule>
            </rules>
            <outboundRules>
                <rule name="fix content-type" preCondition="PHPRequest">
                    <match serverVariable="RESPONSE_CONTENT_TYPE" pattern="text/html; charset=UTF-8,([^\/]+\/.+$)" ignoreCase="true" />
                    <action type="Rewrite" value="{R:1}" />
                </rule>
                <preConditions>
                    <preCondition name="PHPRequest">
                        <add input="{REQUEST_URI}" pattern=".*\.php" />
                    </preCondition>
                    <preCondition name="ResponseIsHtml1">
                        <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
                    </preCondition>
                </preConditions>
            </outboundRules>
        </rewrite>
        <handlers>
            <remove name="WebDAV" />
            <remove name="PHP-php" />
            <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
            <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="DEBUG,DELETE,GET,HEAD,OPTIONS,POST,PUT" type="System.Web.Handlers.TransferRequestHandler" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,runtimeVersionv4.0" responseBufferLimit="0" />
            <add name="PHP-php" path="*.php" verb="DEBUG,DELETE,GET,HEAD,OPTIONS,POST,PUT" modules="FastCgiModule" scriptProcessor="<absolute_path_to_php_cgi.exe>" resourceType="Either" requireAccess="Script" />
        </handlers>
        <httpErrors errorMode="Detailed" />
        <modules>
            <remove name="WebDAVModule" />
        </modules>
    </system.webServer>
    <system.web>
        <authentication mode="Forms" />
    </system.web>
</configuration>

Firewall

Outbound port 443 access to licensing.SupportPro.com and marketplace.SupportPro.com


Hardware Requirements

Hardware requirements are dependent on the number of users and expected workload. Your exact needs may be more or less, depending on your workload. Your workload is influenced by factors such as - but not limited to - how many active users and operators there are and the frequency of tickets and replies.

For deployments with a lot of active users, or a large database (several hundred thousand records), we recommend to use separate servers for your web server and database; this ensures the database has dedicated resources and can ensure consistent performance.

Storage

In a fresh installation, SupportPro uses minimal space (approximately 100 MB). The database and storage/ directory is where you’ll see most growth. The storage/ directory includes things like caches, attachments, and log files.

We recommend using solid state drives for all deployments, particularly database servers, as this dramatically improves the responsiveness of SQL queries.

CPU

We recommend a minimum of 4 vCPU on all servers.

Memory

The following is the recommended minimum memory hardware guidance:

  • Web server: 2 GB RAM - allows up to 50 concurrent staff
  • Database server: 4 GB RAM

We also recommend having at least 2 GB of swap on your server, even if you currently have enough available RAM. Having swap will help reduce the chance of errors occurring if your available memory changes. We also recommend configuring the kernel’s swappiness setting to a low value like 10 to make the most of your RAM while still having the swap available when needed.


Browser Support

SupportPro is tested against the browsers listed below. Other browsers and older browser versions may still work, but we will not provide support or fixes for these products.

JavaScript must be enabled in the web browser for the most feature rich experience. If JavaScript is disabled some functionality will not work correctly.

Supported Browsers & Versions

Browser Supported Version(s)
Chrome latest 2 versions
Edge latest 2 versions
Firefox latest 2 versions
Safari latest 2 versions

Mobile Device Support

The interface is designed with mobile first in mind. We recommend a device width of 360px or above, any device with a width smaller than this will still work but may have visual defects and won’t offer the best user experience.

System Requirements