System Requirements

System Requirements

The system requirements are checked when you run the installer. You'll need:

  • Nginx or Apache web server capable of running PHP scripts. mod_rewrite needs to be enabled under Apache, Apache needs to be configured to respond in UTF-8, and have mod_rewrite enabled.
  • HTTP methods (POST, GET, PUT, DELETE) have to be allowed and enabled.
  • PHP 7.1 or newer, with the following extensions: MySQLi, PCRE, tokenizer, CType, session, JSON, XML, DOM, phar, OpenSSL, GD, mbstring, cURL, zlib, IMAP and fileinfo. cURL and IMAP extensions need to be compiled with SSL support. Both PHP serving web pages, as well as command line PHP need to meet these requirements.
  • MySQL 5.7.x, or MariaDB 10.2.x, with InnoDB and UTF8MB4 support. One empty database is required.
  • ElasticSearch 6.x and Java are required for search - but ActiveCollab can still work without them. (An OS running under x64 architecture is required)

We recommend using the latest stable PHP and MySQL. To speed things up, use opcode and memory caching.

Opcode Cache Compatibility

ActiveCollab doesn't work under eAccelerator or XCache. Disable them before installing ActiveCollab and use OPcache instead.

ActiveCollab is a PHP application and can run on any OS/server which meets the requirements. While it runs fine on Windows, it feels most at home at Unix flavour operating systems, mostly Linux.

ActiveCollab Probe


The fastest way to check if your environment can run ActiveCollab is ActiveCollab Probe. This script runs a similar set of tests that ActiveCollab installer does, and can point issues with compatibility early not, prior to upload of the whole ActiveCollab:


You can learn more about ActiveCollab Probe on the project's GitHub page.

Folder Permissions 

Make sure the following folders are writable by the web server:

  • cache/
  • compile/
  • config/
  • logs/
  • thumbnails/
  • upload/
  • work/
  • activecollab/
  • public/assets/

Please note that you should use the -R option when setting the permissions to set them recursively.

PHP 

You will need CLI PHP if you want to send emails or use search. You can check this on your server with the php -v command, and the output should be something like this:

PHP 7.1.10-1+0~20170929170818.9+stretch~1.gbp501135 (cli) (built: Sep 29 2017 17:08:20) ( NTS )

Also, make sure it says “cli”, instead of “cgi”.

MySQL 

You can check the MySQL version with the following command:

mysql --version

The MySQL user needs permissions for creating TRIGGERs.

The thread_stack will have to be set to 256K. On many servers it is set to 192K by default. This is usually set in the my.cnf file.

Rewriting

URL Rewriting is required by ActiveCollab. You can check if it's enabled by opening http://example.com/public/verify.php in your browser. You should see:

{"ok":false}

On Apache servers, this should work out of the box if mod_rewrite is enabled and .htaccess files are allowed. For other servers, see the instructions below.

nginx 

This is a template for the nginx configuration file:

server {

listen *:80;

server_name projects.example.org;

access_log /var/log/nginx/activecollab.access.log;

error_log /var/log/nginx/activecollab.error.log;

set $root_path /var/www/html/activecollab/public;

root $root_path;

index index.html index.htm index.php router.php;

charset utf-8;

if (!-e $request_filename) {

rewrite ^/assets/(.*)$ /assets/$1 last;

rewrite ^/avatars/(.*)$ /avatars/$1 last;

rewrite ^/wallpapers/(.*)$ /wallpapers/$1 last;

rewrite ^/verify-existence$ /verify.php last;

rewrite ^/proxy.php$ /proxy.php last;

rewrite ^/api/v([0-9]*)/(.*)$ /api.php?path_info=$2&api_version=$1 last;

rewrite ^$ /router.php last;

rewrite ^(.*) /router.php?path_info=$1 last;

}

location / {

rewrite ^/verify-existence$ /verify.php last;

rewrite ^/proxy.php$ /proxy.php last;

rewrite ^/api/v([0-9]*)/(.*)$ /api.php?path_info=$2&api_version=$1 last;

rewrite ^/$ /router.php last;

try_files $uri $uri/ /router.php?path_info=$uri&$args;

}

location ~ ^/(assets|avatars|wallpapers)/ {

root $root_path;

}

location ~* \.php$ {

fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

}

After editing this file, reload the configuration by running nginx -s reload.

memcached 

By default, ActiveCollab caches data in the /cache directory. While faster than no cache at all, it is still not optimal cache mechanism. Caching into memory is recommended, and ActiveCollab ships with an option to cache using memcached.

Required Extensions

ActiveCollab requires that Memcached or Memcache PHP extension is installed. To check if one or both are available, run this command:

php -m | grep memcache

This command will output the names of these extensions if any of the two is present, and an empty output if they are not available. You should also check phpinfo() page that runs on the same server where ActiveCollab runs to check if they are available in PHP that serves web requests as well.

To configure ActiveCollab to use memcached, open config/config.php and add these lines prior to require calls:

const CACHE_BACKEND = 'memcached';

const CACHE_MEMCACHED_SERVERS = '127.0.0.1:11211';

Replace 127.0.0.1:11211 value with your actual memcached server address. If you are using a cluster of Memcached servers, you can specify a comma-separated list of servers.

System Requirements of Historical Releases 

This table shows currently supported historical releases and their system requirements:

 


Historical releases are available for download license page of your activecollab.com/profile:


Close