Howto‎ > ‎

CentOS SugarCRM install

I'm basing this on a CentOS 6.5 install.

Base system only, no additional peripherals.

Network configuration is in /etc/sysconfig/network-scripts/ifcfg-$INTERFACE . Generally you want ONBOOT=yes. Beyond that RTFM.

yum -y install openssh-clients lsof vim screen nmap links lynx sudo curl wget zsh unzip zip net-snmp mlocate traceroute bind-utils man w3m pciutils rsync wireshark ntpdate ntp mailx cpan telnet
/etc/cron.daily/mlocate.cron                         # build the locate database in advance of needing it
adduser $USER && passwd $USER                        # 
vigr                                                 # add $USER to wheel group 
visudo                                               # let %wheel run anything they want.

That will get you a good base system with a non-privileged $USER which you can use for non-admin tasks.

You can set up a basic firewall like this in /etc/sysconfig/iptables:

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -m tcp -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

Essentially keep state on connections, allow ICMP through, allow localhost to do whatever it wants, allow TCP 22/80/443 (SSH/HTTP/HTTPS) through, reject anything else nicely.

yum -y install mysql mysql-server
rpm -ivh epel-release*
yum -y install phpmyadmin openssl mod_ssl

Go to http://localhost/phpmyadmin/setup/ and configure phpmyadmin. Personally I like to set up a phpmadmin database, a pma user, and import the tables in /usr/share/phpMyAdmin/examples/create_tables.sql . It enables some sweet features within phpmyadmin.

Review /usr/share/doc/mysql-server-*/my-*.cnf to see how to configure mysqld at /etc/my.cnf . At minimum, set server-id (e.g. use last octet of IP) and log-bin (for transactional logs).

Within Apache configuration, I like to modify the SSLCipherSuite directive to include "!LOW:!RC2", KeepAlive On, and 

<filesMatch ".(js|css|png|jpeg|jpg|gif|ico|swf|flv|pdf|zip)$">
Header set Cache-Control "max-age=31536000, public"

For SugarCRM install:

yum -y install php-imap
Within /etc/php.ini set date.timezone and session.gc_maxlifetime .
Edit /etc/php.ini and set display_errors=0, max_execution_time=120, memory_limit=512M, post_max_size=30M, upload_max_filesize=30M

If you use SugarCRM to send emails then you want to:
semanage boolean -m --on httpd_can_sendmail