SugarCRM, IIS7, PHP and configuring php.ini

Seems that every time I look at a SugarCRM on Windows installation it is a case of the devil being in the details.

Windows 2008 server can be painful at times. Granted it is locked down by default to protect us from the more informed black hats that may get into our systems, but sometimes it just makes it hard to do work.

This time the Sugar install was done by others and it worked except that the Sugar pages were blank. That is the login page worked and the headers and menu bars in the pages were ok, but the Home page, Accounts, etc did not display anything, i.e blank pages.

So I started at the basics and checked the PHP configuration:

  • Set post_max_size to at least 60MB
  • Set upload_max_filesize settings to at least 60MB
  • Set max_input_time to a large number
  • Set memory_limit to 256MB

Then check for PHP in the path environment variable and the PHPRC variable set. I have written up the details of that in another post on IIS7 and PHP 5.3.x

The Sugar installer can be re-run to use it’s System Check to confirm the write permissions without losing anything. Change the sugar config.php file setting ‘installer_locked’ => true to ‘installer_locked’ => false and run the install.php file. This will prompt for some settings but the system check comes before anything else.

In this case the System Check page identified that most directories were not writeable. So I made some changes as per below and clicked the ReCheck option on the System Check page to confirm that the directory was fixed.

Setting write permissions to the various directories within a Sugar install on a linux server is pretty straight forward with assigning Apache or the account that Apache runs as the write permissions. Windows is similar except that it can be obscured depending on how detailed the sysadmin was when configuring the server accounts.

By default granting permissions to the local machine IUSR account should get it working. Start by adding the IUSR account as default Read type permissions to the entire Sugar directory. Access this from the directory Properties -> Security tab.

Then add specific Modify (Full control is not needed) access to the cache, custom, modules, and upload directories level which should automatically include the subdirectories and files by default.

Check each of the directories that the Read-Only flag is unchecked on the General Tab of the properties window.

Once you have the write permissions correct and the systemcheck gives the go ahead, just edit the config.php and set ‘installer_locked’ => true again. Close the install script without proceeding and run Sugar again. In this case I had been successful and Sugar was doing exactly as it should.

3 replies on “SugarCRM, IIS7, PHP and configuring php.ini”

  1. RR says:

    Hello Tony

    Can we install the sugarcrm community edition (stacked) on a Windowx XP machine ?
    What are steps here? Do we need to have the pre-requisites like MySQL , PHP to be present before installation of SugarCRM or will they installed using the Stacked version ?

    Appreciate your response on this.

    • thowden says:

      I’d not install it on XP. Windows XP is not appropriate for a server stack even if it appears to install ok, it is probably going to struggle with performance issues.

      If you have an older PC run up a Linux / LAMP stack instead. It is far less demanding and has no licencing issues. If you only have one machine then look at using virtualisation to get your server stack up and running.

      Tony

  2. Derek Greene says:

    After a lot of headaches with permissions issues on Windows Server 2008 and IIS 7, i finally stumbled upon this: IS uses application pool identities (virtual users) to run the application pool. IIS_usr isn’t the user that needs permissions, its the application pool (unless you defined a specific user for IIS under your SugarCRM application pool). See: http://www.iis.net/learn/manage/configuring-security/application-pool-identities

Leave a Reply

Your email address will not be published.