IndexCookbook

Cookbook: Setting up SugarCRM

For this recipe we will be using link:http://www.sugarforge.org/frs/download.php/4870/SugarCE-5.1.0c.zip Sugar Community Edition 5.1.0c], which was the latest freely distributable edition available at the download site when this was written.

The Full installation package will be enough. No need to use the bulky complete stacks. We just need PHP support correctly configured in Cherokee, and PHP with the MySQL module installed. The default configuration already provides a valid PHP configuration for Cherokee if you have php-cgi installed, but you can follow the appropriate recipe about setting up PHP in case you don't have it available for any reason.

Adjusting Cherokee

First, we Create the directory you that will be used when installing SugarCRM.

Example: Create installation path
# mkdir /var/www/sugar

Then launch Cherokee-Admin on your system, and set the created path as Document web root of your default virtual server. This is done through the Basics tab of the mentioned virtual server.

The only other thing to do with Cherokee is recreate the SugarCRM restrictions coded in the .htaccess file. Those are mere redirections put in place to avoid users from accessing certain files. If it is not yet populated, it will after the installation. You should check it out to account for cases not covered in the following rules.

We will have to create several rules in our virtual server to cover the whole list of banned files. This list is loosely based on the one provided by .htaccess.

Type Regular Expression Substitution
Internal ^/(.*\.log.*|not_imported_.*txt) /log_file_restricted.html
External emailmandelivery.php /index.php
External ^/.*/.*\.php /index.php

These need to be created as Regular Expression type rules matching the expressions of the list. The rules must be managed by the Redirection handler, and you will need to specify only the type and substitution to perform. The regular expression is inherited, so no need to re-type it.

Of course you can also add as many rewriting rules as you wish to beautify your URLs, but those will have to be analyzed on an individual base.

Package installation

Uncompress SugarCRM to your web document root and rename the directory to whatever you like. We will choose /var/www/sugar as installation directory for this recipe.

Then remember setting up file permissions. Some files and directories need to be writable by the user that runs Cherokee. Those are:

  • cache

  • custom

  • data

  • modules

  • config.php

By simply accessing the configured virtual host, the installer will start. Since we have modified our default virtualhost, we can access visiting http://localhost.

Installation
Figure: Commencing installation

You'll need to Accept the license agreement before you can go on, and once you've done this the installer will run the compatibility checks.

Select Typicall installation, choose the MySQL database, fill in the required data and if everything went smoothly, the installer should create the database and go through with the whole process.

Here is where you will see which requirements are not met. Most probably you will have to make some minor adjustments.

In this case we had to modify some values in the php.ini file to provide higher memory limits and allow bigger files to be uploaded. Remember that it is likely you will have several of those in your system, each one for its own PHP: the CGI version, the CLI, etc. Cherokee uses PHP through FastCGI, so edit that one with your favorite editor.

Example: Editing with Emacs
# emacs /etc/php5/cgi/php.ini

To see the changes reflected in the installer you would have to respawn the php instances. Simply kill them and Cherokee will do the rest.

If something is still not supported, it will prompt you so you can change it before you proceed.

Installation warnings
Figure: Warnings

For this example we will not be needing IMAP, so we will disregard the warning. After proceeding with the process we should be presented with the login page.

Login
Figure: Login
Working
Figure: Working
Can you improve this entry?