There are a number of ways to approach this. Do you have a domain name for your server? If so, the best way to serve both FreePBX and SugarCRM on port 80 would be to use subdomains. pbx.yourdomain.com could point to your FreePBX instance while yourdomain.com can point to SugarCRM. This article should point you in the right direction.
If that’s not an option, you can edit your Apache VirtualHost to simply listen on a different port. In your FreePBX’s VirtualHost, just change 80 to 8081
Listen *:8081
<VirtualHost *:8081>
ServerName pbx.yourdomain.com
ServerAdmin yourname@yourdomain.com
ErrorLog /var/log/apache2/freepbx.error.log
CustomLog /var/log/apache2/freepbx.access.log combined
DocumentRoot /var/www/freepbx
<Directory /var/www/freepbx>
Options Indexes FollowSymLinks MultiViews
Order allow,deny
AllowOverride All
Allow from all
</Directory>
</VirtualHost>
FreePBX’s will now be available at your.ip.address:8081
As far as firewalling goes, csf and ufw are actually both just wrappers around IP Tables. You just need to open port 8081. With ufw, that would be:
sudo ufw allow 8081/tcp

by Justin Ellingwood
The Apache web server is the most popular way to serve web content on the internet. Apache has the ability to serve multiple domains from a single server by using a mechanism called "virtual hosts". If a virtual host is configured correctly for each domain, the web server can correctly route traffic to the appropriate files based on the domain name requested. In this guide, we'll demonstrate how to configure Apache virtual hosts on an Ubuntu 14.04 VPS.