Build/install doc for noobs

SuiteCRM appears in the current copy of Admin magazine. Sweet. The install instructions are a bit off. Here are some ammended docs. If some brainiacs see flaws, tell me and I’ll correct it. Since I had to type everything I figured I’d save it for our wiki instructions. There are some other (faster) ways to install. A number of virtual pre-builts exist on the download page. This is more of a step by step for new people who want a big picture understanding of how this app works (and general LAMP apps).

This is for a virtual Ubuntu 18.04.2 server. I set it up for 2 cores and 2GB of memory. Our use case is 1-4 concurrent people using it.

sudo apt install mysql-server libapache2-mod-php7.2 apache2 php7.2-zip php7.2-mysql php7.2-mbstring php7.2-json php7.2-imap php7.2-gd php7.2-curl php7.2-xml php7.2-common php7.2-cli php7.2 unzip
cd /var/www/
sudo wget https://suitecrm.com/files/162/SuiteCRM-7.11/411/SuiteCRM-7.11.3.zip >>> peak at http://suitecrm.com/downloads/ for the current release
sudo unzip SuiteCRM-7.11.3.zip
sudo mv SuiteCRM-7.11.3 ./suitecrm
sudo chown -R www-data:www-data ./suitecrm
cd /etc/apache2/sites-available
sudo touch suitecrm.conf
sudo nano -w suitecrm.conf

—start the contents of suitecrm.conf—
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName localhost

DocumentRoot /var/www/suitecrm/

Options FollowSymLinks
AllowOverride None

<Directory /var/www/suitecrm>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

ScriptAlias /cgi-bin/ /usr/lib/cgi-gin/
<Directory “usr/lib/cgi-bin”>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all

ErrorLog ${APACHE_LOG_DIR}/error.log

Possible values include: debug, info, notice, warn, error, crit,

alert, emerg.

LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

—end the contents of suitecrm.conf—

sudo nano -w /etc/php/7.2/apache2/php.ini
    search (^w) for upload_max_filesize  >>> instructions not commands
    change size form 2M to 25M  >>> instructions not commands
sudo mysql_secure_installation >>> take defaults, will this stop remote access?
sudo mysql -u root -p

—start inside of MySQL—
mysql> CREATE DATABASE suitecrm;
mysql> CREATE USER ‘username’@‘localhost’ IDENTIFIED BY ‘password’;
mysql> GRANT ALL PRIVILEGES ON . TO ‘username’@‘localhost’ WITH GRANT OPTION;
mysql> CREATE USER ‘username’@’%’ IDENTIFIED BY ‘password’;
mysql> GRANT ALL PRIVILEGES ON . TO ‘username’@’%’ WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> exit;
—end inside of MySQL—

sudo nano -w /etc/mysql/mysql.conf.d/mysqld.cnf
    change bind-address 127.0.0.1 to 0.0.0.0 >>> instructions not commands, gives remote people access to your MySQL
    sudo systemctl restart mysql
sudo a2dissite 000-default >.> to disable the default web site
sudo a2ensite suitecrm >>> to enable SuiteCRM as the only/default web site
sudo systemctl reload apache2

Blarg, I missed the code /code on the conf file. There is some formatting/indents lost. Does this matter?

In the MySQL section the ‘username’ and ‘password’ should be something you make up. It will be needed on the initial start/setup of SuiteCRM where it needs a user/pass.