SugarCRM White Screen of Death

I recently installed Sugar CRM CE 6.5 on a clients dedicated server only to be greeted by the infamous WSOD. Apparently this is a common issue with Sugar CRM but unfortunately this was a special case so none of my google searches yielded a solution for my conundrum. Which is why I am posting this here :) My clients server is running php under mod_suphp so this post was helpful in solving some sugarcrm permissions issues when running under this configuration. http://ma.juii.net/blog/install-sugarcrm-ce5-5-with-mod-suphp. The important bits being:
  • Edit /etc/suphp/suphp.conf and change “umask=0022″ there instead of originally “umask=0077″ and then restart apache. This does not help on its own, but is necessary because else umask will subtract permissions when SugarCRM has the right intentions with permissions.
  • Edit config.php in your SugarCRM httpdocs directory: change 'default_permissions' => array ('dir_mode' => 1528, 'file_mode' => 432, 'user' => '', 'group' => '',), to: 'default_permissions' => array ('dir_mode' => 493, 'file_mode' => 420, 'user' => '', 'group' => '',),
  • In SugarCRM httpdocs directory run chmod -R u=rwX,g=rX,o=rX * or chmod -R a+r,o+X *
  • After modifying the file permissions I was still getting the WSOD. I Noticed in my sugarcrm.log located in the root sugar directory that I was getting this error:
    [FATAL] Exception in Controller: DateTimeZone::__construct(): Unknown or bad timezone (Africa/Juba)
    
    I also looked at the supported platform docs for sugar located here http://support.sugarcrm.com/05_Resources/03_Supported_Platforms/Sugar_6.4.x_Supported_Platforms. After upgrading php and mysql to the recommended versions I was still getting the WSOD. I installed the APC pecl module as recommended and noticed the timezone.db pecl module. I uninstalled the timezone.db module and after logging and and logging back in to sugar everything worked. I rebuilt and re-installed the timezone.db module and everything continued to work. It seems the error was occurring when sugar tries to compile the timezone selection list. Hope this saves someone else from the same headache I experienced.