New Installation
Downloading SupportPal
A license with valid support and upgrade coverage is required to download SupportPal. Owned licenses include 6 months from date of purchase and leased licenses include lifetime support & upgrades. Once you have a valid license please login to the members area at http://www.supportpal.com/manage/ select an active license and choose the latest version you wish to download.
Checking Requirements
In order for SupportPal to function correctly a number of System Requirements need to be met. Before attempting an installation, please ensure these are in place.
Installation Steps
The SupportPal installation process is fairly simple, follow the following steps to get started:
- Download a copy of SupportPal from our members area at http://www.supportpal.com/manage/.
- Unzip the contents of the downloaded zip file.
- Upload the entire contents of the SupportPal folder to your web server (If you are using FTP use Binary Mode).
-
Start the install process by visiting the URL where you have uploaded SupportPal, e.g. http://yourdomain.com/support.
- If you are receiving an IonCube encoder error please check theSystem Requirements.
- Follow the instructions provided by the installer.
- Enjoy SupportPal!
Post Installation Steps
Please ensure your server is configured to allow HTTP GET, POST, PUT and DELETE requests. If using IIS web server, our web.config below should configure this for you.
Cron Job
The cron job must run as the web server user in order to avoid file permission conflicts.
The cron job is used to perform background tasks such as sending emails and closing inactive tickets. To setup the cronjob please create the below cron entry, replacing <supportpal_base_path>
with your own path:
cPanel
Select Cron Jobs from the dashboard, browse down the page to Add New Cron Job. Then, select Once per minute from the Common Settings dropdown, and input the following into the Command box:
php -q /<supportpal_base_path>/cron
Linux
To ensure that the cron job runs as the web server user, please add the following entry to the /etc/crontab
file replacing <web_server_user>
and <supportpal_base_path>
with your servers details:
* * * * * <web_server_user> php -q /<supportpal_base_path>/cron
Windows
The cron should be setup through the Windows Task Scheduler, using a command similar to the below (you may need to change the file paths):
C:\Program Files (x86)\PHP\v7.0\php-cgi.exe -q c:\inetpub\wwwroot\cron
Pretty URLs
SupportPal ships with a .htaccess
file that is used to allow URLs without index.php
.
Apache
If you use Apache please ensure that the mod_rewrite
module is enabled.
nginx
On nginx, please create a new virtual host for SupportPal. The below is an example virtual host but will need editing for your specific environment (paths may vary):
server {
listen 80;
listen [::]:80;
server_name supportpal.app;
root /var/www/supportpal;
index index.php;
# 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:
The URL Rewrite extension is required for the below web.config file to function correctly, otherwise a 500.19 error is likely to be shown when visiting SupportPal (see Understanding HTTP Error 500.19).
<supportpal_base_url>
with your installation base URL<absolute_path_to_php_cgi.exe>
with the absolute path to your PHP cgi executable
<?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="GET,HEAD,POST,DEBUG,PUT,DELETE" type="System.Web.Handlers.TransferRequestHandler" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,runtimeVersionv4.0" responseBufferLimit="0" />
<add name="PHP-php" path="*.php" verb="GET,HEAD,POST,PUT,DELETE" 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>
Rename the Admin Folder
From a security point of view, it is a good idea to change the default operator URL prefix from admin to something that only your staff know. The prefix can be updated in the operator General Settings area under Admin Folder.
Common Issues
For common issues please see our Frequently Asked Questions.