System Requirements

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

  • A web server capable of running PHP scripts (Apache, IIS, nginx, etc) with mod_rewrite enabled.
  • HTTP methods (POST, GET, PUT, DELETE) have to be allowed and enabled.
  • PHP 5.6 or newer, with the following extensions: MySQLi, PCRE, tokenizer, CType, session, JSON, XML, DOM, phar, OpenSSL, GD, mbstring, cURL, zlib, and fileinfo.
  • MySQL 5.5.3 or newer, with InnoDB and UTF8MB4 support. One empty database is required.
  • ElasticSearch 1.7.4 and Java are required for search - but Active Collab can still work without them. ElasticSearch version 2.x and up aren't supported.

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

Opcode Cache Compatibility

Active Collab doesn't work under eAccelerator or XCache. Disable them before installing Active Collab and use OPcache (on PHP 5.5+), or WinCache (if you're using IIS) instead.

Active Collab is a PHP application and can run on any OS/server which meets the requirements, but is easier to install on Debian or Ubuntu as the OS and Apache or nginx as the web server. CentOS is also good choice, if you are comfortable working with SELinux (which is installed by default on CentOS).

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 #

If you have PHP 5.6, change the always_populate_raw_post_data to -1 in your php.ini. This directive is usually already there, it just needs to be uncommented (remove the “;”). If you have PHP 7 you don’t have to do anything.

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.0.4-7ubuntu2.1 (cli) ( 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. Active Collab is compatible with MariaDB 10.x.

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 Active Collab. You can check if it's enabled by opening http://example.com/verify-existence 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/ac.access.log;
  error_log /var/log/nginx/ac.error.log;

  set $root_path /var/www/html/ac;
  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.0-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.

IIS #

For IIS servers you'll have to import .htaccess files from the root of AC installation and from the public/ folder. You will need the URL Rewrite Module for this to work.

By default, PUT and DELETE HTTP methods (called “verbs” in IIS) are not enabled, so you'll have to enable them yourself:

Select Website --> Handler Mappings --> phpHandler currently being used --> Right Click and Edit --> Request Restrictions --> Verbs --> All Verbs need to be selected --> OK --> OK --> If there is an error make sure the path to the php.exe file is wrapped in quotes. 

You might also have to disable the WebDAV module.