activeCollab is designed to be simply dropped in a subfolder and installed. On the other hand, you can have a more advanced setup where only the content of the /public folder is publicly available while everything else is behind the document root and inaccessible (ie. inaccessible).

To show you how this other type of setup works, we'll define a virtual host that maps http://intranet to the public folder of our activeCollab setup:

<VirtualHost *>
  ServerName intranet
  DocumentRoot /Library/WebServer/Documents/intranet/public
</VirtualHost>

The content of the /intranet folder should look like this:

In order to install activeCollab, we'll run http://intranet/installer. Note that the installer will not let us use http://installer as an absolute URL. Instead, we'll use http://intranet.site and change that value when the installation was successful in config/config.php.

When the installer shows us that activeCollab is successfully installed, we should delete the /installer folder from the /public folder and then check our setup. Everything should be working fine, even if only the /public folder is publicly available.

When you're applying this method, please note that:

  1. Sometimes the document root folders are not named public (frequently it is public_html, web etc). In that case, place the content of /public folder in your document root, run the installer and when you're done open config/config.php and make sure that PUBLIC_FOLDER_NAME is set to the correct value.
  2. If you are using .htaccess fix to have 100% clean URLs, then you'll need to put it in the /public folder and make appropriate changes to the re-write rules.
  3. Folders like /cache, /upload, /logs, and so on, are protected by .htaccess file with rules that restrict direct access to files located in these folders. Your server will need to be configured so it allows overriding using .htaccess files. Read more in Apache documentation.